目录
报头结构
TCP的可靠传输机制
核心机制一:确认应答
TCP的序号和确认序号
核心机制二:丢包重传
核心机制三:连接管理
建立连接-三次握手
断开连接-四次挥手
核心机制四:滑动窗口
数据包已经抵达, ACK被丢了
数据包就直接丢了编辑
报头结构
4位TCP报头⻓度: 表⽰该TCP头部有多少个32位bit(有多少个4字节); 所以TCP头部最⼤⻓度是15 *4 = 60
UDP协议报头固定就是8个字节.
对于TCP来说,报头长度是可变长的,4个比特位,表示的数据范围是多少?
0000->1111
0x0->0xF(0->15)
此处的长度单位是4字节,不是字节.
保留(6位):
其他属性都要根据下面所有的机制来理解......
TCP的可靠传输机制
TCP基本特点:有连接、可靠传输、面向字节流、全双工
核心机制一:确认应答
TCP的序号和确认序号
核心机制二:丢包重传
主机A发送数据给B之后, 可能因为⽹络拥堵等原因, 数据⽆法到达主机B;
如果主机A在⼀个特定时间间隔内没有收到B发来的确认应答, 就会进⾏重发;但是, 主机A未收到B发来的确认应答, 也可能是因为ACK丢失了;
主机B会收到很多重复数据. 那么TCP协议需要能够识别出那些包是重复的包, 并且把重复的丢弃掉.
那么, 如果超时的时间如何确定?
确认应答和超时重传,相互补充,共同构建了TCP"可靠传输机制”网上很多资料,包括很多程序员的理解都是错误的,网上有人说:TCP的可靠传输,是通过"三次握手,和四次挥手保证的"(连接管理)。对于可靠传输,是有一点点作用的,但不是核心作用,核心作用,还是确认应答+超时重传。
核心机制三:连接管理
次数指的就是网络通信的次数。
三次握手/四次挥手,就是网络这个模块中,最高频的面试题,没有之一。
建立连接-三次握手
建⽴连接的意义:
1. 投⽯问路, 确认当前通信路径是否畅通.2.确认通信双方各自的发送能力和接收能力是否都正常
3. 协商参数, 通信双⽅共同确认⼀些通信中的必备参数数值,比如TCP连接中的起始序号
断开连接-四次挥手
上述四个状态是比较重要的,尤其是后两个,是面试考过并难以应对的。
如果你面试中,被问到这个,你给面试官画图,你画哪个图?一定是画简图,不要画详细的图,水太深,你容易把握不住。画详图,画对了,不算加分项;画错了,可就没分了!试回答问题,一定是求稳,不要炫技。
核心机制四:滑动窗口
那么如果出现了丢包, 如何进⾏重传? 这⾥分两种情况讨论
数据包已经抵达, ACK被丢了
数据包就直接丢了
上篇关于UDP协议可以查看计算机网络-传输层 UDP协议-CSDN博客
TCP协议还有六个核心机制的详解请关注下篇文章⭐⭐⭐