网络的协议封装,主要涉及以下几个报文段:

先来说下TCP(传输控制协议)报文段:
看书是看了,但过一段时间就什么都想不起来了,看书时觉得是都明白了,但要清晰叙述出来,还要重复……,努力!
其实是很基础的东西,这里再细化一下,加强记忆。
什么是MMS??
![]()

![]()
简单来说,MSS是指数据的最大长度。


TCP首部固定为20字节+选项最大为40字节
16位端口号:标示该段报文来自哪里(源端口)以及要传给哪个上层协议或应用程序(目的端口)。进行tcp通信时,一般client是通过系统自动选择的临时端口号,而服务器一般是使用知名服务端口号或者自己指定的端口号。
16位端口号:标示该段报文来自哪里(源端口)以及要传给哪个上层协议或应用程序(目的端口)。进行tcp通信时,一般client是通过系统自动选择的临时端口号,而服务器一般是使用知名服务端口号或者自己指定的端口号。
32位序号:表示一次tcp通信过程(从建立连接到断开)过程中某一次传输方向上的字节流的每个字节的编号。假定主机A和B进行tcp通信,A传送给B一个tcp报文段中,序号值被系统初始化为某一个随机值ISN,那么在该传输方向上(从A到B),后续的所有tcp报文断中的序号值都会被设定为ISN加上该报文段所携带数据的第一个字节在整个字节流中的偏移。例如某个TCP报文段传送的数据是字节流中的第1025~2048字节,那么该报文段的序号值就是ISN+1025。
32位确认号:用作对另一方发送的tcp报文段的响应。其值是收到对方的tcp报文段的序号值+1。假定主机A和B进行tcp通信,那么A发出的tcp报文段不但带有自己的序号,也包含了对B发送来的tcp报文段的确认号。反之也一样。
(首部长度)数据偏移 占4位,表示报文段的数据部分的起始位置,距离整个报文段的起始位置的距离。间接的指出首部的长度。表示tcp头部有多少个32bit字(4字节),因为4位最大值是15,所以最多有15个32bit(四个字节),也就是60个字节是最大的tcp头部长度。
6位标志位:
URG:紧急指针是否有效,当URG=1,表明紧急指针字段有效,该报文段有紧急数据,应尽快发送。
ACK:表示确认好是否有效,携带ack标志的报文段也称确认报文段,仅当ACK=1时,确认号才有效,连接建立后,所有的报文段ACK都为1。
PSH:提示接收端应用程序应该立即从tcp接受缓冲区中读走数据,为后续接收的数据让出空间
RST:表示要求对方重建连接。带RST标志的tcp报文段也叫复位报文段,RST=1时,表明TCP连接中出现严重差错
SYN:表示建立一个连接,携带SYN的tcp报文段为同步报文段,在建立连接时用来同步序号。当SYN=1,ACK=0,则表明是一个连接请求报文段。SYN=1,ACK=1则表示对方同意连接。TCP建立连接用到。
FIN(终止)标志:表示告知对方本端要关闭连接了。用来释放一个连接窗口。当FIN=1时,表明此报文段的发送方不再发送数据,请求释放单向连接。TCP断开连接用到。
16位窗口大小:是TCP流量控制的一个手段,这里说的窗口是指接收通告窗口,它告诉对方本端的tcp接收缓冲区还能容纳多少字节的数据,这样对方就可以控制发送数据的速度。
16为校验和:由发送端填充,校验和字段检验的范围和方法类似于UDP,包括TCP伪首部,TCP首部和应用层数据3部分。
16位紧急指针:是一个正的偏移量。它和序号字段的值相加表示最后一个紧急数据的

最低0.47元/天 解锁文章
5558

被折叠的 条评论
为什么被折叠?



