TCP数据段的首部格式:
源端口号(16)
目的端口号(16)
序列号(32)
确认应答号(32)
数据偏移(4)
保留(6)
代码位(6)
窗口(16)
校验和(16)
紧急指针
选项(长度可变)
填充
数据部份(长度可变)
3.确认号:
4个字节,期待收到对方下一个报文段的第一个数据字节的序号。
若确认号=N,表明到序号N-1为止的所有数据都已经正确收到!
4.数据偏移(即首部长度)——
占4位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位是 32 位字(以 4 字节为计算单位)。
因首部中还有长度不确定的选项字段,故数据偏移字段是必要的
而数据偏移的单位是4字节,则此字段是用来表TCP首部的长度的,最大长度是4*15,60字节,即选项长度不超过40字节.
5.保留字段——
占 6 位,保留为今后使用,但目前应置为 0。
6.紧急URG ——
当 URG ==1 时,表明紧急指针字段有效。
它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
而不是按原来的排队顺序传送。
当URG=1,发送进程就告诉TCP有紧急数据需传送,TCP就会将紧急数据插入到本报文段的最前面,这需要和首部中的紧急指针字段配合使用.
7.确认ACK(ACKnowlegment):
当ACK=1,确认号字段才有效,当ACK=0,确认号字段无效。
TCP规定,在连接建立后所有传送的报文段都必须把ACK置1.
8.推送PSH(PuSH):
当两个进程通信时,有时一端的进程希望键入一个命令后,能立即收到对方的响应,这时TCP就可以将PSH=1,
并立即创建一个报文段发送出去,接收方TCP收到PSH=1,就会尽快交付给接收端进程,而不会再等整个缓存填满后再交付。
9.复位 RST (ReSeT) ——
当 RST=1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接
RST置1可以用来拒绝一个非法的报文段或者拒绝打开一个连接。
10.同步SYN:
在建立连接时用来同步序号,当SYN=1&&ACK=0,表示这是一个请求连接的报文段,
若对方同意建立连接,则在响应报文段中使得SYN=1&&ACK=1。
故SYN=1:表示这是一个连接请求和连接接收报文。
11.终止FIN:
用来释放一个连接,当FIN=1,表示此报文段发送方的数据发送完毕,并要求释放连接。
12.窗口:
13.检验和 ——
占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。
14.紧急指针:
2个字节,当URG=1,紧急指针才有意义,指出本报文段中的紧急数据的字节数。
注意:当窗口值为0,也可以发送紧急数据。
15.选项:
最长为40字节,当没有选项时,TCP首部长度为20字节。
--------------------------------------------------------------------------------------------------------------------------------------
UDP数据段格式:
源端口号(16)
目的端口号(16)
长度(16)
校验和(16)
数据(若有的话)
UDP对应的协议:
(1) DNS:用于域名解析服务,将域名地址转换为IP地址。DNS用的是53号端口。
(2) SNMP:简单网络管理协议,使用161号端口,是用来管理网络设备的。由于网络设备很多,无连接的服务就体现出其优势。
(3) TFTP(Trival File Tran敏感词er Protocal),简单文件传输协议,该协议在熟知端口69上使用UDP服务。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/haskellbc/69007.html