我们以一个常见的查看IP指令为出发点(ifconfig -a):
1、链路层是什么
链路层是指硬件层协议。也即网络所使用的硬件,比如:以太网(后文主要讨论对象),令牌环网,FDDI已经RS-232串行线路。
在上面的命令(ifconfig -a)结果中,硬件地址(MAC)为08:00:27:00:9c:59 (48bit),链路层主要的作用就是连接不同的两个硬件。
2、链路层的作用
1.为IP模块发送和接收IP数据报
2.为ARP模块发送和接收ARP应答
3.为RARP发送RARP请求和接收RARP应答
注意:
1.TCP/IP支持在不同链路层之间的传输
2.IP、ARP、RARP表示三个协议,后面的三个章节我们将描述这3个协议
3、具体链路层
3.1、RFC标准的链路层以及链路层实例以太网的封装格式:
3.2、对IP数据包的进一步封装SLIP和PPP协议:
在串行线路上对IP数据报进行简单的封装存在多种方式SLIP就是其中一种简单的形式,SLIP对IP数据报的封装形式:
由于SLIP只是对IP数据报进行简单的封装,所以依然存在较多的问题:
1.两端都需要对方的IP地址,不能将本端的IP告知另一端
2.封装格式中不存在类型字段,因此该封装具有特殊性
3.封装格式中不存在校验和
PPP协议是为解决SLIP的问题而提出的另一种对IP数据包封装格式:
3.3、减少逻辑操作的环回接口(Loopback Interface)描述:
环回接口(Loopback Interface)存在原因是为了减少在主机内部的数据传递(省略传输层(TCP,UDP),网络层(IP层))的逻辑操作。其具体的情况见最初命令(ifconfig -a)中的lo。
其判断的逻辑较为简单:
关于lookback interface的几个注意点:
1.传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入
2.传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身
3.任何传给该主机IP地址的数据均送到环回接口
3.4、最大传输单元(MTU)和路径MTU描述:
每一种数据链路层协议,都有一个MTU(最大传输单元)定义,在这个定义下面,如果IP数据报过大,则要进行分片(fragmentation),使得每片都小于MTU。需要注意的是MTU只是逻辑限制(程序限制,一般限制为最优解),而不是固定值,使用netstat –i可以查看MTU(ifconfig –a同样可以)。
注意此处显示的MTU表示的是最大传输单元。路径MTU则是指两台相互通信的主机中路径最小的那个MTU。
Reference:
- TCP/IP详解 卷一