一个数据包的大小是好多?

如题所述

1、数据链路层对数据帧的长度都有一个限制,也就是链路层所能承受的最大数据长度,这个值
称为最大传输单元,即MTU。以以太网为例,这个值通常是1500字节。

2、对于IP数据包来讲,也有一个长度,在IP包头中,以16位来描述IP包的长度,也就是说,
一个IP包,最长可能是65535字节。

3、结合以上两个概念,第一个重要的结论就出来了,如果IP包的大小,起过了MTU值,那么就需要
分片,也就是把一个IP包分为多个,这个概念非常容易理解,一个载重5T的卡车,要拉10T的货,它
当然就得分几次来拉了。

4、IP分片是很多资料常讲的内容,但是我倒是觉得分不分片其实不重要,重要的是另一个东西。一个
数据包穿过一个大的网络,它其间会穿过多个网络,每个网络的MTU值是不同的。我们可以设想,如果
接受/发送端都是以太网,它们的MTU都是1500,我们假设发送的时候,数据包会以1500来封装,然而,
不幸的是,传输中有一段X.25网,它的MTU是576,这会发生什么呢?我想,这个才是我们所关心的。
当然,结论是显而易见的,这个数据包会被再次分片,咱开始用火车拉,到了半路,不通火车,只通汽车,
那一车货会被分为很多车……仅此而已,更重要的是,这种情况下,如果IP包被设置了“不允许分片标志”,那
会发生些什么呢?对,数据包将被丢弃,然事收到一份ICMP不可达差错,告诉你,需要分片!
这个网络中最小的MTU值,被称为路径MTU,我们应该有一种有效的手段,来发现这个值,最笨的方法或许是先
用traceroute查看所有节点,然后一个个ping……

5、到了传输层,也会有一个最大值的限制,当然,对于只管发,其它都不管的UDP来说,不再我们讨论之列。这里
说的是TCP协议。说到大小,或许会让人想到TCP著名的滑动窗口的窗口大小,它跟收发两端的缓存有关,这里讨论
的是传输的最大数据包大小,所以,它也不在讨论之列。
TCP的选项字段中,有一个最大报文段长度(MSS),表示了TCP传往另一端的最大数据的长度,当一个连接立时,连接
的双方都要通告各自的MSS,也就是说,它说是与TCP的SYN标志在一起的。当然,对于传输来讲,总是希望MSS越大越好,
现在超载这么严重,谁家不希望多拉点货……但是,MSS总是有个限制的,也就是MTU-IP头长度-TCP头长度,对于以太网来讲
它通常是1500-20-20=1460,虽然总是希望它能很大(如1460),但是大多数BSD实现,它都是512的倍数,如1024……

6、回到分片上来,例如,在Win2000下执行如下命令:
ping 192.168.0.1 -l 1473

按刚才的说法,1473+20(ip头)+8(icmp头)=1501,则好大于1500,它会被分片,但是,我们关心的是:

这个数据包会被怎么样分法?
可以猜想,第一个包是
以太头+IP头+ICMP头+1427的数据;
那第二个分片包呢?
它可以是:
以太头+IP头+ICMP头+1个字节的数据
或者是:
以太头+IP头+1个字节的数据
也就是省去ICMP头的封装,当然,IP头是不可以省的,否则怎么传输了……

事实上,TCP/IP协议采用的是后一种封装方式,这样,一次可以节约8个字节的空间。IP包头中,用了三个标志来描述一个分片包:
1、分片标志:如果一个包被分片了,被置于1,最后一个分片除外;——这样,对于接收端来讲,可以根据这个标志位做为重组的重
要依据之一;
2、分片偏移标志:光有一个标志位说明“自己是不是分片包”是不够的,偏移标志位说明了自己这个分片拉于原始数据报的什么位置,
很明显,这两个标志一结合,就很容易重组分片包了。
3、不允许分片标志:如果数据包强行设置了这个标志,那么在应该分片的时候,…… err,刚才已经说过了
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-22
在以太网中,数据包的大小范围是在64—1518字节之间,如果除去头部开销,则实际的数据大小为46—1500字节之间。 一般情况下,数据包的大小都是在这个范围内,如果数据包小于64字节,称为碎片;而如果大于1518字节,称为特大数据包。这两种类型的数据包都是非正常的以太网数据包,它们将影响网络的正常运行。无论是碎片或特大数据包,都会增加网络的负载,导致网络故障的发生。所以,我们在对网络进行分析的时候,对数据包大小的判断也是不可缺少的一个环节。
第2个回答  2013-08-22
1500字节

一个数据包的大小是好多?
2、对于IP数据包来讲,也有一个长度,在IP包头中,以16位来描述IP包的长度,也就是说,一个IP包,最长可能是65535字节。3、结合以上两个概念,第一个重要的结论就出来了,如果IP包的大小,起过了MTU值,那么就需要 分片,也就是把一个IP包分为多个,这个概念非常容易理解,一个载重5T的卡车,要...

一个数据包是几个字节?
1GB=1024MB 1TB=1024GB

tcp ip协议中,一个数据包长度的范围是多少?
TCP\/IP协议中,一个数据包长度的范围通常在64字节到65535字节之间。然而,实际上,由于网络层(IP层)和传输层(TCP\/UDP层)的头部开销,以及可能的MTU(最大传输单元)限制,实际可用的数据载荷(payload)大小通常会小于这个最大值。首先,我们需要理解TCP\/IP协议栈中的不同层级及其对应的数据包格式。...

1个单位的数据包等于多少字节?
数据包大小是不一定的,一般以太网数据包大小从64字节到1513字节。

上网时,发送或接收的一个数据包是多大啊??
2、对于IP数据包来讲,也有一个长度,在IP包头中,以16位来描述IP包的长度,也就是说,一个IP包,最长可能是65535字节。3、结合以上两个概念,第一个重要的结论就出来了,如果IP包的大小,起过了MTU值,那么就需要 分片,也就是把一个IP包分为多个,这个概念非常容易理解,一个载重5T的卡车,要...

数据包大小的问题,请教!
以太网的数据包大小范围正常情况下是64—1518字节之间。处于正常通讯的网络中,数据包大小应该是在几百字节。你的网络中1518字节的数据包占到了92%,说明说明网络中肯定有下载行为,你可以看一下主机的流量是否偏大。或者你可以参考一下这篇文章,网络中的超大帧:(http:\/\/www.csna.cn\/viewthread....

在互联网中1个数据包到底是几个字节啊?
数据包大小是不一定的,一般以太网数据包大小从64字节到1513字节

UDP数据包大小
应用程序层中,UDP数据包的最大长度为1472字节。当数据大于此值时,IP层需分片传输,接收方需重组数据包。UDP是不可靠协议,丢失碎片会导致数据包被丢弃。在普通局域网中,使用UDP传输时,建议将数据控制在1472字节以下。IP数据包的最大长度为65535字节,由IP报头中的两个字节表示数据包长度。使用UDP协议...

互联网上的数据包一般多少个字节?
数据包大小是不一定的,一般以太网数据包大小从64字节到1513字节

求助:捕获到的数据包基本是大于等于1518字节的,请问这正常吗?
我们都知道以太网数据包的大小范围是在64—1518字节,如果网络中大部分数据包是小于等于64字节的话,那可能是有病毒或是有扫描之类的;如果是大于等于1518字节的话,这种情况一般都是网络中有大文件的上传下载所产生的。

相似回答