论坛风格切换切换到宽版
  • 1089阅读
  • 9回复

[问题求助]数据包的长度 [复制链接]

上一主题 下一主题
离线zhurry.
 
发帖
2077
C币
-521811
威望
325
贡献值
2
银元
-5
铜钱
4492
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
夜来无眠,随手写点,够无.聊吧……           鲜花

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包被设置了“不允许分片标志.”,那           女人
会发生些什么呢?对,数据包将被丢.弃,然事收到一份I.CMP不可达差错,告诉你,需要分片![成人用品]
这个网络中最小的MTU值,被称.为路径MTU,我们.应该有一种有效的手段,来发现这个值,最笨的方法或许是先.
用traceroute查看所有节点.,然后一个个pi.ng……              乙肝

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

6、回到分片上来,例如,在Wi.n200.0下执行如下命令:    外汇
p.ing 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,刚才已经说过了。.

[ 本帖最.后由 .独孤九贱 于 2006-3-21 10:04 编辑 ]    健康

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线zhurry.
发帖
2077
C币
-521811
威望
325
贡献值
2
银元
-5
铜钱
4492
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13


QUOTE:原帖由 独孤九贱 于 2006-3-20 22:47 发表
2、对于IP数据包来讲,也有一个长度,在IP包头中,以16个字节来描述IP包的长度,也就是说,
一个IP包,最长可能是65535字节。

以 16 个字节来描述 IP 包长度?
这个怎么理解呢?
据我所知,IP 首部是通过 ihl 来描述头大小,通过 tot_len 来描述整个三层包大小的

另外我想问一下九贱,真正的网络中需要分片的包多吗?
有的防火墙阻止分片包通过,说这样可以阻止分片攻击,这样做是不是很不科学?

离线areyousure.
发帖
1992
C币
-199332
威望
360
贡献值
1
银元
-1
铜钱
4442
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13


QUOTE:原帖由 platinum 于 2006-3-20 23:24 发表

以 16 个字节来描述 IP 包长度?
这个怎么理解呢?
据我所知,IP 首部是通过 ihl 来描述头大小,通过 tot_len 来描述整个三层包大小的

另外我想问一下九贱,真正的网络中需要分片的包多吗?
有的防火墙阻 ...


有人做过统计,分片数据包占网络流量的0.2%,可以google一下,我记的是这个数量级.
不太科学,但无碍应用

离线pon1pon.
发帖
2175
C币
-313393
威望
404
贡献值
3
银元
-3
铜钱
4936
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
这个单位感觉有点晕乎
字节=bit
那么byte=什么呢?



QUOTE:以 16 个字节来描述 IP 包长度?
这个怎么理解呢?
据我所知,IP 首部是通过 ihl 来描述头大小,通过 tot_len 来描述整个三层包大小的

另外我想问一下九贱,真正的网络中需要分片的包多吗?
有的防火墙阻止分片包通过,说这样可以阻止分片攻击,这样做是不是很不科学?


我如果没有记错的话包头里面是有一个块是16bit用来说明这个包的长度
2^16=65536
狐说的是65535
有1bit的差别
敢问为何?

离线ms1029.
发帖
2173
C币
-234903
威望
422
贡献值
1
银元
-3
铜钱
4955
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
65535是不是应该是从0开始的
1Byte=8bit

离线2006195113.
发帖
2126
C币
-235311
威望
395
贡献值
1
银元
0
铜钱
4650
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13


QUOTE:原帖由 platinum 于 2006-3-20 23:24 发表

以 16 个字节来描述 IP 包长度?
这个怎么理解呢?
据我所知,IP 首部是通过 ihl 来描述头大小,通过 tot_len 来描述整个三层包大小的

另外我想问一下九贱,真正的网络中需要分片的包多吗?
有的防火墙阻 ...


说了夜来无眠嘛,手误,是16位,2 的16次方,65535,笔误,呵呵,马上改!



QUOTE:原帖由 skipjack 于 2006-3-20 23:35 发表


有人做过统计,分片数据包占网络流量的0.2%,可以google一下,我记的是这个数量级.
不太科学,但无碍应用

这个原因就是因为前面说过的MSS,因为传输层协议绝大部份使用了TCP,所以,它会避免分片的!不过有的时候,结合路径MTU,就会出一些怪问题,比如,能上小网站,一些大网站打不开,能收邮件,但是收不了带稍大附件的邮件等等……
我想,了解这些最是基础的东西是非常必要的!

[ 本帖最后由 独孤九贱 于 2006-3-21 10:07 编辑 ]

离线jjpan.
发帖
2081
C币
-198470
威望
399
贡献值
1
银元
-3
铜钱
4820
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
这里的“包”说的是几层的包?从二层开始算?
这个“包”的最小长度是多少?64Bytes 吗?还是说除了二层信息和后面 4Bytes CRC ?

发帖
2021
C币
-132535
威望
366
贡献值
1
银元
-3
铜钱
4503
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13


QUOTE:原帖由 platinum 于 2006-3-21 10:08 发表
这里的“包”说的是几层的包?从二层开始算?
这个“包”的最小长度是多少?64Bytes 吗?还是说除了二层信息和后面 4Bytes CRC ?


我这里题目中的“包”,其实没有准确的定义……
不过在行文当中,我二层的话,一般用的是“帧”,三层用的是“包”,四层TCP用的是“段”……

64bytes?我整个没有讨论最小的话题,所以没有涉及,同时,因为说到二层的“帧”时,说的是MTU,也就是它的“最大载重量”,所以,不包括二层的包头,二层尾巴上的CRC等等东东……

如果要讨论最小的话题:
以以太网封装为例,它要求min帖=46,小于46,它自动充补;那么46+6(src mac)+6(dst mac)+2(protocol)=60,如果再加下尾部的4位CRC,就是64;

对于IP包来讲,好像没有最小的要求吧?至少我平时没有注意过这个问题,已尝试过发送只有20字节的IP头的包;

对于TCP包来讲,是允许没有数据的包,如SYN包等等

[ 本帖最后由 独孤九贱 于 2006-3-21 10:20 编辑 ]

离线304334153.
发帖
1993
C币
-60439
威望
374
贡献值
6
银元
2
铜钱
4456
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13
请教个问题,IP报头的长度是多长?20个字节还是24个字节?

我在思科上看画的IP报头和我自己算的是24个字节,但是都说是20个字节。请九剑帮忙解释一下好吗?

离线wixhpp.
发帖
1927
C币
-132682
威望
347
贡献值
1
银元
-1
铜钱
4184
人人网人气币
0
只看该作者 9楼 发表于: 2010-04-13


QUOTE:原帖由 tony124cft 于 2009-12-22 11:05 发表
请教个问题,IP报头的长度是多长?20个字节还是24个字节?

我在思科上看画的IP报头和我自己算的是24个字节,但是都说是20个字节。请九剑帮忙解释一下好吗?

在没有 IP 选项的情况下,IP 头长度是固定的 20 字节,选项长度不固定,24 字节的 IP 头长度(含选项)是有可能的
TCP 协议也同理
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个