首先看看以下这段话:
路由器把需到达的网络的网络号保存在路由表中,当一个IP数据报被路由器接收到时,路由器先从该IP数据报中取出目的站点的IP地址,根据IP地址计算出目的站点所在网络的网络号,然后用网络号去查找路由表以决定通过哪一个接口(线路)转发该IP数据报。
根据TCP/IP协议,路由器的数据包转发具体过程是:网络接口接收数据包,这一步由网络物理层处理,即把经编码调制后的数据信号还原为数据。根据网络物理接口,路由器调用相应的链路层功能模块,以解释处理此数据包的链路协议报头。这一步处理比较简单,主要是对完整性的验证,如CRC校验、帧长度检查。在链路导层完成对数据帧的完整性验证后,路由器开始处理此数据帧的IP层。这一过程是路由器功能的核心。根据数据帧IP包头的目的的IP地址,路由器在路由表中查找下一跳的IP地址,IP数据包头的TTL域开始减数,并计算新校验和(Check-sum)。根据路由表中所查到的下一跳IP地址,将IP数据包送往相应的输出链路层,封装上相应的链路层包头,最后经输出网络物理接口发送出去。
现在来理解:
ip包----网络层的包,有自己的格式
ip数据包-------即ip包
包-------即数据包.通常我们说什么包转发率,掉包等概念,也就是网络设备(如路由器,网卡等)就是针对它来说,也以说是数据包(包含了MAC地址等帧有的信息)
数据包--------这个概念就有时挺模糊了,所以一般不说.即不能说它一定就是ip数据包或帧。
以下结合两个命令例子来说明上面的概念理解:
(1)win2003server里的网络监视器是对网络数据进行分析,可以从网络中获取帧,这些网络数据就可以叫包(包含帧信息),而非ip数据包。
(2)ping命令中参数l英文意思是send buffer size(默认是32即32bytes),也就是改变发送的数据分组的字节数。例如ping -l 24
www.163.com
,其中24就是发送的ip数据包的长度,而非帧长度。这条命令用于测试与MTU相关的网络故障。(大多数设备为1500,单位是byte,本机MTU小于等于网关的MTU,数据才不会分拆。)