数据包是什么-数据包的实例

时间:2022-06-23 14:01:28 生活常识 我要投稿
  • 相关推荐

数据包是什么-数据包的实例

当时为兰德公司工作的Paul Baran总结出,如果数据被分解成块,而不是采用连续流的形式,它就可以支持更加稳定的系统,通过通用网络连接更远更多的设备。下面是pincai小编为您整理关于数据包,欢迎阅读!

数据包的实例

到了传输层,也会有一个最大值的限制,当然,对于只管发,其它都不管的UDP来说,不在我们讨论之列。这里说的是TCP协议。说到大小,或许会让人想到TCP著名的滑动窗口的窗口大小,它跟收发两端的缓存有关,这里讨论的是传输的最大数据包大小,所以,它也不在讨论之列。

TCP的选项字段中,有一个最大报文段长度(MSS),表示了TCP传往另一端的最大数据的长度,当一个连接建立时,连接的双方都要通告各自的MSS,也就是说,它是与TCP的SYN标志在一起的。当然,对于传输来讲,总是希望MSS越大越好,超载这么严重,谁家不希望多拉点货……但是,MSS总是有个限制的,也就是它的值=MTU-IP头长度-TCP头长度,对于以太网来讲它通常是1500-20-20=1460,虽然总是希望它能很大(如1460),但是大多数BSD实现,它都是512的倍数,如1024……

回到分片上来,例如,在Win2000下执行如下命令:

"ping 192.168.0.1 -l 1473

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

这个数据包会被怎么样分法?

可以猜想,第一个包是

以太头+IP头+ICMP头+1472的数据;

那第二个分片包呢?

它可以是:

以太头+IP头+ICMP头+1个字节的数据

或者是:

以太头+IP头+1个字节的数据"(引号内的内容可否在这里不详细阐述,对于1473的'数据如何被分为1472和1不是很清楚2010.01.15 13:50)也就是省去ICMP头的封装,当然,IP头是不可以省的,否则怎么传输了……

事实上,TCP/IP协议采用的是后一种封装方式,这样,一次可以节约8个字节的空间。IP包头中,用了三个标志来描述一个分片包:

1、分片标志:如果一个包被分片了,分片标志这个字段被置于1,最后一个分片除外;——这样,对于接收端来讲,可以根据这个标志位做为重组的重要依据之一;

2、分片偏移标志:光有一个标志位说明“自己是不是分片包”是不够的,偏移标志位说明了自己这个分片位于原始数据报的什么位置。很明显,这两个标志一结合,就很容易重组分片包了。

3、不允许分片标志:如果数据包强行设置了这个标志,那么在应该分片的时候,…… err,刚才已经说过了。

数据包是什么

让我们回到流水的比喻,如果不是采用水管,而是把水装到瓶子里,你就可以把它送到任何地方。我们还可以把数据包比作信件,信写在纸上装在信封里然后送到邮局。

数据包就是一个具有特殊尺寸和结构的框架。它在开始和结尾的地方有抬头和尾注,用来识别是谁发送的数据、发送到哪里等等。中间是消息本身,或者载荷。对于给定类型的网络,载荷会有一个长度限制,因此太长的消息必须要分割成几个数据包。如果消息很短,那么数据包的`其他部分也并不会因此缩短。不同的网络协议在细节处理方面会有所不同,但是基本的概念都是一致的。从发送到接收的传递过程中数据被压缩在数据包当中,到达之后再解压缩。

联网协议可以按照效率进行排名,或者也可以按照信息载荷量与总体数据包大小的比例。如果包含抬头、尾注和其他管理字符的数据包尺寸太大,这种协议就会被认为是无效的。有些人对以太网现场仪表通讯持有异议,就是因为管理字符太多,而设备生成的数据量又很少。

将较大数据分割成较小单元的一个好处,就是可以使用错误检查协议(例如循环冗余校验)来验证消息的准确性。基本上,给定数据包中消息内的所有信息都拥有附带的数值。协议将所有这些值相加,再除以另外一个数值的和,将计算的余数赋给这个消息。接收者会进行同样的计算,确认得到相同的余数值。如果没有,就可以知道数据包中包含消息的一部分数据遭到了破坏,然后将该数据包标注出来。


【数据包是什么-数据包的实例】相关文章:

拦截数据包分析数据,用什么工具07-10

英语面试实例06-29

LOGO字体设计实例07-14

面试英语问题实例06-29

员工节后离职实例07-12

育儿励志实例故事06-27

作文教学实例07-02

自我评价实例及点评07-03

数学建模论文实例06-22

国际经济与贸易就业前景是什么? 我想知道具体实例07-14