数据链路层 [1]

有三个目的:

为IP模块发送和 接收IP数据报
为ARP模块发送ARP请求和接收ARP应答
为RARP发送RARP请 求和接收RARP应答

数据链路层的协议还是很多的:

最常用的以太网(就是平时我们用的网卡)协议
令牌环,还有FDDI
PPP协议(点对点协议)(就是adsl宽带):是从SLIP的替代品
loopback协议:

% 执行ifconfig -a命令中
eth0就是以太网接口,而lo则是loopback接口
这也说明这个主机在网络链路层上至少支持loopback协议和以太网协议

以太网(Ether-net):

1.数字设备公司(Digital Equipment Corp.)、英特尔公司Intel Corp.)和Xerox公司在1982年联合公布的一个标准
这个标准里面使用了一种称作CSMA/CD的接入方法
2.IEEE802提供的标准集802.3(还有一部分定义到了802.2中)也提供了一个CSMA/CD的标准

这两个标准稍有不同,TCP/IP协议对这种情况的处理方式如下:

以太网的IP数据报封装在RFC894中定义,而IEEE802网络的IP数据报封装在RFC1042中定义
一台主机一定要能发送和接收RFC894定义的数据报
一台主机可以接收RFC894和RFC1042的封装格式的混合数据报
一台主机也许能够发送RFC1042数据报
如主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是RFC 894分组
% RFC1042在TCP/IP里面处于一个配角的地位

MTU:

每一种数据链路层协议,都有一个MTU(最大传输单元)定义
在这个定义下面,如果IP数据报过大,则要进行分片(fragmentation),使得每片都小于MTU
注意PPP的MTU并不是一个物理定义,而是指一个逻辑定义(个人认为就是用程序控制)
可以用netstat来打印出MTU的结果,比如: netstat -in

loopback协议:

% 3点注意
1.传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入
2.传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上
  这是因为广播传送和多播传送的定义包含主机本身
3.任何传给该主机IP地址的数据均送到环回接口
[1]https://blog.csdn.net/goodboy1881/article/list/2?t=1