我是靠谱客的博主 温婉月亮,最近开发中收集的这篇文章主要介绍tcp报文结构,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述

16bit的数据值表示0~65525
第一行:
源端口号16bit+目的端口号16bit
第二行:
(TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。)
序号32bit
第三行:
(期望收到对方的下一个报文段的数据的第一个字节的序号。)
确认号32bit
第四行:
(指出报文数据距TCP报头的起始处有多远(TCP报文头长度)。)
(保留今后使用,目前置0处理。)
(URG:紧急比特,1bit,当 URG=1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据))
(ACK:确认比特,1bit,只有当 ACK=1时确认号字段才有效。当 ACK=0 时,确认号无效)
(PSH:推送比特,1bit,接收方 TCP 收到推送比特置1的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付)
(RST:复位比特,1bit,当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接)
(SYN:同步比特,1bit,同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文)
(FIN:终止比特,1bit,用来释放一个连接。当FIN=1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接)
(窗口大小:窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。)
首部长度4bit+保留6bit+URG1bit+ACK1bit+PSH1bit+RST1bit+SYN1bit+FIN1bit+接收窗口16bit
第五行:
(检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。)
(16bits,紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。)
检验和16bit+紧急数据指针16bit
第六行:
长度可变。TCP首部可以有多达40字节的可选信息,用于把附加信息传递给终点,或用来对齐其它选项。 这部分最多包含40字节,因为TCP头部最长是60字节(其中还包含前面讨论的20字节的固定部分)
选项(变长)
第7行开始:
用户数据部分

最后

以上就是温婉月亮为你收集整理的tcp报文结构的全部内容,希望文章能够帮你解决tcp报文结构所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部