本文共 1328 字,大约阅读时间需要 4 分钟。
以太网和IEEE802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,这个限制称为MTU:最大传输单元,Maximum Transmission Unit。
如果IP层要传数据报,但是数据报长度大于MTU,那么IP层就要分片(Fragmentation)。网络上进行通信的两个主机,会经过多个网络,每个网络的链路层可能有不同的MTU,最小的那个称为路径MTU。
以太网头部:14字节。链路层并不识别逻辑地址(IP地址),只识别物理地址(MAC地址)。
IP->MAC 地址解析(ARP)
MAC->IP 反向地址解析(RARP)以太网三种帧:如上三个,分别是IP协议,ARP协议,RARP协议所规定的三种。
对于应用层的一个应用程序A来讲,它如果想要与另一个应用层的另一个程序B通信,它只知道B的IP地址,想要通信,必须知道实际的物理地址(MAC地址),因为IP地址仅仅是逻辑上的地址,所以需要链路层的ARP把IP地址转化为MAC地址。
但是可能存在IP地址不合理,这样就无法转换,这就需要下面的ICMP协议来解决。将差错信息反馈给源端。
ICMP协议是一个网际协议,工作于IP层,即网络层。
ICMP是一种反馈给源端差错信息,查询信息,ping程序就是把数据封装成ICMP协议来实现的。属于IP层的协议。上面的一个例子,以及下面的例子:比如IP层不分片,使报文超过MTU,则ICMP会把错误反馈给源端应用程序。
下图是ICMP报文中不同的类型,代码,对应的功能描述。
回显应答是一种查询请求,不是差错请求。ARP协议原理:假设A要发送数据给B,那么A肯定会填充一个B的IP地址10.0.0.1,但是到A的下层后,A肯定不知道B的MAC地址,这时,A采用广播机制,发送一个数据包,到网络上面的所有主机,那么IP地址为10.0.0.1的主机会响应A的请求,而其他主机会自动忽略。A的请求是封装成ARP地址解析协议的帧格式进行请求,之后B响应,这个叫做回复ARP请求应答,同时B也做一个操作:将A的MAC地址加入ARP缓冲区。这样A就获得B的MAC地址。 一旦获取B的MAC地址,那么B的IP地址和MAC地址对应关系就会存在A的本地ARP高速缓存中,不用再次广播来获得B的MAC地址。 获得目的MAC地址之后,就可进行链路层数据成帧。
首先是ping+IP地址,或者ping+主机名。注意:如果是ping+主机名的话(会通过DNS服务器把主机名转化为IP地址。怎么转换的呢???) 具体步骤:
一般应用于无盘工作站,无法将IP地址保存在配置文件中。
无盘工作站知道自己的MAC地址,但是不知道自己的IP地址。所以无盘工作站需要向RARP服务器询问自己的IP地址。然后RARP服务器返回无盘工作站的IP地址给无盘工作站。这个过程就叫做RARP。这个就到这,前面都是毛毛雨,下一篇是重点,讲述IP和TCP,包括路由,TCP三次握手,四次分手,以及窗口进行流量控制原理。Excited!