(1)最大传输单元MTU
以太网和IEEE 802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作M T U,最大传输单元。不同类型的网络大多数都有一个上限。
如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片(fragmentation),把数据报分成若干片,这样每一片都小于MTU。
路径MTU
当在同一个网络上的两台主机互相进行通信时,该网络的MTU是非常重要的。但是如果两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的MTU。重要的不是两台主机所在网络的MTU的值,重要的是两台通信主机路径中的最小MTU。它被称作路径MTU。
路径MTU其实和TCP一个数据报的数据字段的最大长度有很大关系,如果TCP头部IP头部都没有选项时,一般路径MTU最大为576,则最大数据字段MSS=576-20-20.
(2)以太网协议
说到以太网协议,其实链路层在上一文中其实有所提及,其中包含ARP协议,RARP协议和以太网协议
以太网的头部14个字节,分别是6个字节的目的地址(MAC),6个字节的源地址(MAC),以及2个字节的协议类型,来表示以太网协议(0800),ARP协议(0806),RARP协议(8035)
ARP在不知道对方MAC地址也就是缺省表里没有对应目的IP的MAC地址时,会在以太网中发出广播,如果目的IP地址的主机收到的时候,就会做出响应,其他机器会忽视这个报文.
如果说根本没有这个IP地址的话,那就需要ICMP协议来告诉发起者出现差错
I C M P经常被认为是 I P层的一个组成部分。它传递差错报文以及其他需要注意的信息。I C M P报文通常被I P层或更高层协议( T C P或U D P)使用。一些I C M P报文把差错报文返回给用户进程。
I C M P报文是在I P数据报内部被传输的
接下来我们就可以看看Ping怎么在网络里面进行传输,也就是数据的传输
首先如果我们直接给出IP地址,那么直接就开始发送ICMP包,如果给出主机名那就进行DNS解析,获得IP地址,再进行操作,发送ICMP包的时候,先通过ARP广播寻找到目的主机,如果没有则ICMP返回报错信息,如果有,则对面主机返回ARP响应,则把ICMP包填充以太网目的地址,通过以太网发送过去,到对面主机上,进行分用,在IP层得到ICMP,然后返回响应.