就是指应用层协议的头部(应用层是http协议,指的就是http头部),它应该不需要多说了吧
目的地址
(目的设备mac地址) + 6个字节源地址
(目的设备mac地址) + 2个字节类型
(后面所跟数据包的类型,0x0800代表是IP协议帧)不包含
每次提到三次握手都只是在说TCP协议,慢慢的让我陷入一个误区:三次握手只有TCP协议参与。但后来慢慢接触后才了解,之所以每次提三次握手都只提TCP协议,只不过是因为在三次握手过程中是通过TCP协议的SYN/ACK等字段来判定建立连接的情况,所以会比较关注,其他协议在三次过程中并没有什么特别之处,便没有提及。
带有SYN标志的过程是不可以携带数据的,也就是说三次握手的前两次是不可以携带数据的(逻辑上看,连接还没建立,携带数据好像也有点说不过去),但建立连接的第三次握手允许携带数据。
这两个字段在三次握手过程和数据传输过程赋值逻辑是不一致的。
2. 数据传输过程
数据传输过程用到的初始seq其实就是三次握手结束后的seq,并没有重新生成。接收端对发送端的响应ack不再是seq number+1,而是seq number+数据长度,代表着接收端下次想要数据的起始序号,起始序号仅仅代表着开始,所以接收端还会响应一个window字段,来表示我目前可以接收多的数据,起始序号加上+window,发送端便可以得到此时接收端想要的完整数据。