Linuxword Global
当前位置: 通信协议 > 如何计算TCP的payload数据大小

TCP/IP协议簇每一层协议的PDU有不同的叫法,应用层例如HTTP的PDU叫message、传输层例如TCP的PDU叫segment、网络层例如IP的PDU叫datagram、链路层的PDU叫frame。其中,segment的header结构,从wikipedia截图,如下:

tcp_segment_header

从上图可以看出,header中没有标识TCP的payload数据大小的字段,只有一个用来存储header大小的Data offset。

再来看下IPv4的header结构,从wikipedia截图,如下:

ipv4_header

其中IHL字段的全称是Internet Header Length,存储的是IPv4的header大小,其单位与TCP header的Data offset相同,都是32位的word即4个字节。

tcpip_simple_layer

根据上面各层协议封装关系的简略图可知,只要知道IPv4 datagram的大小,减去两个header,便能得出TCP的payload数据大小。

IPv4 datagram的总字节数保存在Total Length字段中,所以可得最后的计算公式:

TCP payload = IP header Total Length - (IP header IHL + TCP header Data of

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

赞(1) 打赏
一分也是爱

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

博客简介

本站CDN采用VmShell免费提供离中国大陆最近的香港CMI高速网络做支撑,ToToTel打造全球最快速的边沿网络支撑服务,具体详情请见 :https://vmshell.com/ 以及 https://tototel.com/,网站所有的文件和内容禁止大陆网站搬迁复制,谢谢,VPS营销投稿邮箱: admin@linuxxword.com,我们免费帮大家发布,不收取任何费用,请提供完整测试文稿!

精彩评论

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 2350 篇
  • 草稿数目: 13 篇
  • 分类数目: 6 个
  • 独立页面: 0 个
  • 评论总数: 2 条
  • 链接总数: 0 个
  • 标签总数: 6146 个
  • 注册用户: 139 人
  • 访问总量: 8,662,606 次
  • 最近更新: 2024年5月3日