TCP协议-----传输控制协议
一种面向连接的、可靠的、基于字节流的传输层通信协议
TCP协议建立的连接是双向连接。
1.面向连接:在数据传输之前,收发双方需要预先建立一条逻辑通路。
2.无面向连接.。
【1】32位序号:该条TCP数据所携带的起始序号。
【2】32位确认序号:期望对方发送数据从哪一个序号开始发送。
【3】4位首部长度:最大是0xF(15),指的是TCP头部的长度。
首部长度 = 4位首部长度(DEC) * 4 ,单位为Byte。
注:DEC:表示十进制的数字。
【4】6个标志位:(6个比特位)
URG:紧急标志位(直接越过发送缓冲区等待的数据优先传输到网络层,
一般配合底下的16位紧急指针使用)
ACK:确认标志位---当该标记位置为1时,确认序列号有意义
PSH:发送数据标志位
RST:重置连接标志位(当无法识别对方发来的连接请求时,就会使用RST标志位),
换句话说当连接双方X、Y要断开连接时,X方认为连接已经断开了,
Y方却认为连接还没有断开,这个时候,当Y给X发送数据包时,
X就会回复带有RST标志位的数据包给Y
SYN:发起连接标志位--同步位--是在TCP三次握手建立通道时的标记
FIN:断开连接标志位---代表释放TCP连接
【5】16位窗口大小:告知消息发送方,自己对消息的接收能力时多少,这个值是动态变化的。
【6】16位检验和:校验数据在传输过程中是否失真。
【7】16位紧急指针:配合URG标志位发送带外数据。(紧急的数据)
TCP分段:因为IP分片后,TCP协议无法保证数据的可靠性传输;故而使用TCP协议进行封装的文件不允 许进行IP分片,而又因为MTU存在,需要将大文件分为小文件,该操作由TCP协议完成
【8】MSS---最大传输段===MTU-IP
头部
-TCP
头部
在TCP协议中,每一个报文都需要有序列号信息。
可靠性
1.确认机制----每收到一个
TCP
数据段,都需要发送一次确认报文。
![](https://i-blog.csdnimg.cn/direct/f0860e278166472586bfedbeb7df9a60.png)
2.重传机制----超时重传,当一个数据段中的某个报文丢失,发送端会主动重新发送一次该报文。
![](https://i-blog.csdnimg.cn/direct/03c574b190904836bde2e4f2a847f1ce.png)
3.排序机制----传输数据段时,被分为多个报文,从不同路径传输,最终达到目的地的顺序会被打乱, 需要根据序列号字段进行重新排序。
4.流控机制(滑动窗口机制):可以通过调节窗口大小(Windows)来对流量进行控制
![](https://i-blog.csdnimg.cn/direct/1f065f50fbfb44c29a782885677c2700.png)
面向连接
三次握手
四次挥手