TCP、UDP数据包大小的问题

标签: TCP、UDP 数据包大小
8人阅读 评论(0) 收藏 举报
分类:

在进行UDP编程的时候,由于发送的内容大小不固定,那么一次发送多少bytes比较好?

        以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的.这个1500字节被称为链路层的MTU(最大传输单元).但这并不是指链路层的长度被限制在1500字节,其实这个MTU指的是链路层的数据区.并不包括链路层的首部和尾部的18个字节.所以,事实上,这个1500字节就是网络层IP数据报的长度限制.因为IP数据报的首部为20字节,所以IP数据报的数据区长度最大为1480字节.而这个1480字节就是用来放TCP传来的TCP报文段或UDP传来的UDP数据报的.又因为UDP数据报的首部8字节,所以UDP数据报的数据区最大长度为1472字节.这个1472字节就是我们可以使用的字节数。
        当我们发送的UDP数据大于1472的时候会怎样呢?这也就是说IP数据报大于1500字节,大于 MTU.这个时候发送方IP层就需要分片(fragmentation).把数据报分成若干片,使每一片都小于MTU.而接收方IP层则需要进行数据报的重组.这样就会多做许多事情,而更严重的是,由于UDP的特性,当某一片数据传送中丢失时,接收方便无法重组数据报.将导致丢弃整个UDP数据报。 

        理论上,IP数据报的最大长度是65535字节,这是由IP首部16比特总长度字段所限制的。去除20字节的IP首部和8个字节的UDP首部,UDP数据报中用户数据的最长长度为65507字节。但是,大多数实现所提供的长度比这个最大值小。 

我们将遇到两个限制因素。

第一,应用程序可能会受到其程序接口的限制。socket API提供了一个可供应用程序调用的函数,以设置接收和发送缓存的长度。

第二限制来自于TCP/IP的内核实现。

参考:

https://blog.csdn.net/caoshangpa/article/details/51530685

https://blog.csdn.net/buptzwp/article/details/5055487

查看评论

TCP、UDP数据包大小的限制

1、概述 首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。    其中以太网(Ethernet)的数据帧在链路层    IP包在网络层    TCP或UDP包在传输层    T...
  • caoshangpa
  • caoshangpa
  • 2016年05月29日 10:27
  • 19425

解读TCP/UDP数据包(三):UDP数据包结构

1、图 UDP数据包由首部和数据组成, 每行4个字节(32位) 首部固定长度为8个字节(2行) 2、首部 1、  第一行:源端口16位,目的端口16位 表示发送方和接收...
  • fzzmouse
  • fzzmouse
  • 2013年06月29日 17:25
  • 1775

tcp与udp数据包的大小

MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制,每个以太网帧都有最小的大小...
  • zhouqingxing
  • zhouqingxing
  • 2013年12月16日 15:56
  • 396

UDP数据包大小的问题

UDP数据包大小问题  转帖自: http://blog.csdn.net/buptzwp/archive/2009/12/22/5055487.aspx 在进行UDP编程的时候,我们最容易想到的问...
  • ayangke
  • ayangke
  • 2011年05月26日 10:38
  • 1229

TCP,UDP数据包的大小以及MTU

TCP、UDP数据包大小的确定     UDP和TCP协议利用端口号实现多项应用同时发送和接收数据。数据通过源端口发送出去,通过目标端口接收。有的网络应用只能使用预留或注册的静态端口;而另外一些...
  • u014805066
  • u014805066
  • 2016年01月20日 10:19
  • 1222

UDP/TCP数据包分析

本文旨在分析使用抓包工具抓取到的数据包。 (一)抓包工具 tcpdump:linux下的抓包利器 wireshark:带GUI的抓包工具,其前身是大名鼎鼎的Ethereal (二)抓包 这里...
  • wirror800
  • wirror800
  • 2011年11月16日 16:04
  • 7283

Tcp/Udp等协议的数据包格式

TCP/IP 协议是一个比较复杂的协议集,有很多专业书籍介绍。在此,我仅介绍其与编程密切相关的部分:以太网上TCP/IP协议的分层结构及其报文格式。我们知道TCP/IP协议采用分层结构,其分层模...
  • BeautifulEncounter
  • BeautifulEncounter
  • 2014年08月11日 11:37
  • 1732

UDP数据包大小问题

在进行UDP编程的时候,我们最容易想到的问题就是,一次发送多少bytes好?        当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,这里仅对像ICQ一类的发...
  • sz_liao
  • sz_liao
  • 2014年05月22日 17:51
  • 365

解读TCP/UDP数据包(五):UDP数据包实例解析

1、一个完整的UDP数据包   20:15:23.534101 IP 38_29_3g.33396 > 10.137.224.115.25550: UDP, length 88     ...
  • fzzmouse
  • fzzmouse
  • 2013年06月29日 17:38
  • 2200

SOCKET通信中TCP、UDP数据包大小的确定

UDP和TCP协议利用端口号实现多项应用同时发送和接收数据。数据通过源端口发送出去,通过目标端口接收。有的网络应用只能使用预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UD...
  • kobejayandy
  • kobejayandy
  • 2014年06月29日 17:59
  • 3987
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 979
    排名: 5万+
    联系方式
    手机 : 13373927673
    邮箱 : 1024445364@qq.com
    文章存档
    最新评论