2024年3月25日发(作者:)
数据包 “包”Packet是TCP/IP协议通信传输中的数据单位一般也称“数据包”。有人说
局域网中传输的不是“帧”Frame吗没错但是TCP/IP协议是工作在OSI模型第三层网
络层、第四层传输层上的而帧是工作在第二层数据链路层。上一层的内容由下一层
的内容来传输所以在局域网中“包”是包含在“帧”里的。 名词解释OSIOpen System
Interconnection开放系统互联模型是由国际标准化组织ISO定义的标准它定义了一种
分层体系结构在其中的每一层定义了针对不同通信级别的协议。OSI模型有7层层分
别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。OSI模型
在逻辑上可分为两个部分低层的层关注的是原始数据的传输高层的层关注的是网络
下的应用程序。 我们可以用一个形象一些的例子对数据包的概念加以说明我们在邮
局邮寄产品时虽然产品本身带有自己的包装盒但是在邮寄的时候只用产品原包装盒
来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专用纸箱里这
样才能够邮寄。这里产品包装盒相当于数据包里面放着的产品相当于可用的数据而
专用纸箱就相当于帧且一个帧中只有一个数据包。 “包”听起来非常抽象那么是不是
不可见的呢通过一定技术手段是可以感知到数据包的存在的。比如在Windows 2000
Server中把鼠标移动到任务栏右下角的网卡图标上网卡需要接好双绞线、连入网络
就可以看到“发送××包收到××包”的提示。通过数据包捕获软件也可以将数据包捕获
并加以分析。 就是用数据包捕获软件Iris捕获到的数据包的界面图在此大家可以很
清楚地看到捕获到的数据包的MAC地址、IP地址、协议类型端口号等细节。通过分
析这些数据网管员就可以知道网络中到底有什么样的数据包在活动了。 附 数据包
的结构 数据包的结构非常复杂不是三言两语能够说清的在这里主要了解一下它的
关键构成就可以了这对于理解TCP/IP协议的通信原理是非常重要的。数据包主要由
“目的IP地址”、“源IP地址”、“净载数据”等部分构成。 数据包的结构与我们平常写
信非常类似目的IP地址是说明这个数据包是要发给谁的相当于收信人地址源IP地址
是说明这个数据包是发自哪里的相当于发信人地址而净载数据相当于信件的内容。
正是因为数据包具有这样的结构安装了TCP/IP协议的计算机之间才能相互通信。我
们在使用基于TCP/IP协议的网络时网络中其实传递的就是数据包。理解数据包对于
网络管理的网络安全具有至关重要的意义。 数据帧 “帧”数据由两部分组成帧头和
帧数据。帧头包括接收方主机物理地址的定位以及其它网络信息。帧数据区含有一
个数据体。为确保计算机能够解释数据帧中的数据这两台计算机使用一种公用的通
讯协议。互联网使用的通讯协议简称IP即互联网协议。IP数据体由两部分组成数据
体头部和数据体的数据区。数据体头部包括IP源地址和IP目标地址以及其它信息。
数据体的数据区包括用户数据协议UDP传输控制协议TCP还有数据包的其他信息。
这些数据包都含有附加的进程信息以及实际数据。 副 报文 message用于比网络层
更高的协议在低层协议中以如下形式出现 1. 帧 frame 一般位于数链层也有的位
于物理层奇怪的是Wireshark界面上把每个包称为Frame单数形式但是我记得一个包
是由多个frames拼成的啊我认为这里的frame并不是指数据链路层那个frame。 2. 包
数据包分组封包packet 网络层所以有“IP包”的说法 我们老师总是把packet读成
package因为念起来比较顺口由此可以推测package和packet是一样的。 3. 数据报
datagram 网络层或之上的层。例如传输层有UDPUser Datagram Protocol就是基于数
据报。一般来说datagram和packet是同一个意思 4. 信元 cell 定长数链层或物理层
5. 段报文段segment TCP协议特有术语位于传输层而因为传输层又有个datagram就
出现了“segmentdatagram”的说法但是更准确也是更让人混淆的说法是segment位于
传输层IP datagram和packet位于网络层 由于没有权威地统一用法在很多的资料中
“报文”“数据包”和“数据报”以及它们的英文所有这些词语混用得很厉害。读者只能
根据上下文来确定到底指的是哪个概念。 这已经很容易混淆了但是在组合词中又出
现了新花样 分组交换 Packet Switching 报文交换 Message Switching 又称为存储
转发交换 电路交换 Circuit Switching 其实在Packet Switching里的传输单位也可以
叫做message而且有些时候只能叫message不能叫packet。然而它的名字叫做packet
switching。足可见这些名字的误导性有多么强。 v 对于新手来说记住一个等式足矣
messagepacketpackagedatagram报文分组数据包数据报段报文段封包........懒得写了自
己补全吧 报文分段、IP数据包、帧的长度约束转自网络 2011-02-12 15:59:29 转载
标签 杂谈 分类 计算机网络 1、数据链路层对数据帧的长度都有一个限制也就是链
路层所能承受的最大数据长度这个值称为最大传输单元即MTU。以以太网为例这个
值通常是1500字节。 2、对于IP数据包来讲也有一个长度在IP包头中以16位来描述
IP包的长度也就是说一个IP包最长可能是65535字节多数网络设备将其限制在576字
节以内。 3、结合以上两个概念第一个重要的结论就出来了如果IP包的大小超过了
MTU值那么就需要分片也就是把一个IP包分为多个这个概念非常容易理解一个载
重5T的卡车要拉10T的货它当然就得分几次来拉了。 4、IP分片是很多资料常讲的
内容但是我倒是觉得分不分片其实不重要重要的是另一个东西。一个数据包穿过一
个大的网络它其间会穿过多个网络每个网络的MTU值是不同的。我们可以设想如果
接受/发送端都是以太网它们的MTU都是1500我们假设发送的时候IP数据包会以
1500来封装然而不幸的是传输中有一段X.25网它的MTU是576这会发生什么呢我想
这个才是我们所关心的。 当然结论是显而易见的这个数据包会被再次分片咱开始用
火车拉到了半路不通火车只通汽车那一车货会被分为很多车……仅此而已更重要的
是这种情况下如果IP包被设置了“不允许分片标志”那会发生些什么呢对数据包将被
丢弃然事收到一份ICMPInternet Control Message ProtocolInternet控制报文协议不可
达差错告诉你需要分片 这个网络中最小的MTU值被称为路径MTU我们应该有一种
有效的手段来发现这个值最笨的方法或许是先用traceroute查看所有节点然后一个个
ping…… 5、到了传输层也会有一个最大值的限制当然对于只管发其它都不管的
UDP来说不再我们讨论之列。这里说的是TCP协议。说到大小或许会让人想到TCP
著名的滑动窗口的窗口大小它跟收发两端的缓存有关这里讨论的是传输的最大数据
包大小所以它也不在讨论之列。 TCP的选项字段中有一个最大报文段长度
MSSMaximum Segment Size表示了TCP传往另一端的最大数据的长度当一个连接立
时连接的双方都要通告各自的MSS也就是说它说是与TCP的SYN标志在一起的。当
然对于传输来讲总是希望MSS越大越好现在超载这么严重谁家不希望多拉点货
但是MSS总是有个限制的也就是MTU-IP头长度-TCP头长度对于以太网来讲 它通
常是1500-20-201460虽然总是希望它能很大如1460但是大多数BSD实现它都是512
的倍数如1024…… 6、回到分片上来例如在Win2000下执行如下命令 ping
192.168.0.1 -l 1473 按刚才的说法147320ip头8icmp头1501则好大于1500它会被分
片。


发布评论