1.TCP协议段格式
源端口号/目的端口号:知道数据从哪进程中来,要到哪个进程中去
32位序号/32位确认序号:传输数据时按字节进行编号,序号保证数据按序到达,而双方都需要确认,所以有序号和确认序号
4位首部长度:将报头与有效载荷进行分离。4位表示的最大数据是15,则头部最大长度=15*4=60。
6位标志位:
URG:紧急指针标志位
ACK:确认标志位。ACK=1,确认报文。
PSH:提示接收端立即将数据从缓冲区中读走
RST:对方要求重新建立连接,将携带RST标识的称为“复位报文段”
SYN:建立连接请求,用于三次握手,将携带FIN标识的称为“同步报文段”
FIN:断开连接请求,用于四次挥手,将携带FIN标识的称为“结束报文段”
16位窗口大小:发送数据方的接收缓冲区大小
16位校验和:校验数据是否正确
16位紧急指针:标识紧急数据,表名有些数据需要优先被上层处理
2.TCP特点
(1)连接
(2)可靠
(3)面向字节流
3.TCP如何保证可靠性
3.1 序号、确认应答
(1)TCP将每个字节的数据进行了编号,这个编号就是序列号
(2)当一端给另一端发送带有序号的数据,另一端接收后,会返回一个携带一个确认序号的应答报文,表示这个序号之前的数据我已经接受,下一个你要发送的数据序号从确认序号开始。
3.2 连接管理
TCP的在正常情况下,三次握手建立连接,四次挥手断开连接(在上一篇博客中有详解)