TCP–可靠和效率
【Transmission Control Protocol----TCP】 目标:process to process,保障可靠性(非安全性)
什么是可靠性
1、尽最大努力将数据发送给对方,不保证百分百 2、数据发送失败后会给应用层提示 3、保证收方(应用层)严格按照发送时的数据顺序接收
确认机制 ack – acknowledge确认
Q:如果发送方同时发送很多数据,怎么直到对方收到哪一份? Q:如果没有收到对方的确认,接下来怎么办?
序列号–Sequence Number—SN–发送的数据编号
确认序列号–Acknowledge Sequence Number–ASN–确认的数据编号
编号规则
SN在TCP Segment的Header中如何体现?
重传
【对于发送方来说,1.1和2.1的情况直接重发即可,收到重复的ack和sn都没有关系,直接扔掉重复的了】
超时重传
【不重发了以后:】
TCP有发送缓冲区,UDP没有
为什么ISN(初始序列号)不设置从0开始?
三次握手
握手阶段–双方同步(synchronize)信息
三次握手是否可以携带payload?
三次握手状态变换
四次挥手
标志位:FIN
为什么要设置TIME_WAIT状态?
为什么TIME_WAIT是2SML?
服务器上出现了大量的TIME_WAIT状态的TCP连接,是否合理?如果合理说出理由。不合理请给出修复意见。
TCP中异常情况
【乙在读数据察觉不到甲已经消失怎么办】
net(网络)stat(状态)—命令查询主机上TCP连接情况
流量控制
如何知道对方的接受能力?
【时不时发送ack+window】
如何控制发送量?–滑动窗口机制
拥塞控制
作为发送方如何直到当前网络承载能力?
发送最大流量(发送窗口) = f(拥塞窗口,接收窗口)?
如何进行控制?
仍然是滑动窗口。
【总结】
面试题
协议
|