认识报文
TCP报文可以归纳为五种
(1)SYN
(2)Data(唯一携带用户数据的报文)
(3)FIN
(4)Reset
(5)ACK
其中的1、2、3分别是建立连接、数据传输、断开连接,这三种报文对方在接收到的时候要传输ACK确认,为什么要确认,是因为保证传输的可靠性(简单来说就是确保对方是对方,而不是其他人)。如果对方在超出时间内不确认,发送方会一直重传,直到对方确认为止,或者到达重传次数,重新进行连接(Reset连接)。
4、5是重置连接报文、确认ACK报文,这两种报文对方在接收到之后不需要发送ACK确认,自然发送方也不会重传这两种报文。
认识序号
这是tcp的报文头部,我们要关注几个点
(1)seq number
(2)ack number
由于tcp的可靠连接,所有tcp会为字节流的每一个字节都会加上一个编号,而本字段的值就代表说我们本次发送数据的第一个字节的序号