数据链路层的三个目的:
- 为IP模块发送和接收数据报
- 为ARP模块发送ARP请求和ARP应答。(ARP为地址解析协议,用IP地址换MAC地址的一种协议)
- 为RARP发送RARP请求和接收RARP应答。(RARP为逆地址解析协议)
数据链路层的协议也有很多,比如以太网阿,令牌环网阿,FDDI,还有 国内现在相当普及的PPP协议(就是adsl宽带),以及一个loopback协议。
以太网的定义是指数字设备公司、英特尔公司和Xerox公司在1982年联合公布的一个标准,这个标准里面使用了一种称作CSMA/CD的接入方法。而IEEE802提供的标准集802.3(还有一部分定义到了802.2中)也提供了一个CSMA/CD的标准。这两个标准稍有不同。
以太网的IP数据报封装在RFC894中定义,而IEEE802网络的IP数据报封装在RFC1042中定义。
TCP/IP处理方式如下:
- 一台主机一定要能发送和接收RFC894定义的数据报。
- 一台主机可以接收RFC894和RFC1042的封装格式的混合数据报。
- 一套主机也许能够发送采用RFC 1042格式封装的分组。如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的。而且默认条件下必须是RFC894分组即以太网的标准。
SLIP、压缩的SLIP、PPP
SLIP全称Serial Line IP串行线路IP,它是一种串行线路上对IP数据报进行封装的简单形式。
幀封装有如下几种:
- IP数据报以END结束。为防线路噪声干扰大多在开始处也传入一个END。
- 如果IP报文中某个字符为END,用连续两个字节0xdb和0xdc来取代。
- 如果IP报文中某个字符为END,用连续两个字节0xdb和0xdd来取代。
- 缺点:没有办法把本端IP通知给另一端。 数据幀中没有类型字段(类似于以太网的类型字段)。数据幀上没有检验和。
因为串行线路速率通常较低(传送1字节要封装20字节的IP首部和20字节的TCP首部),而且通信是交互式的。CSLIP可以将发送的数据报大小压缩很多。
PPP点对点通信修改了SLIP上的所有缺陷,比SLIP具有以下优点:
- PPP支持在单根串行线路上运行多种协议,不只是IP协议。
- 每一幀都有循环冗余的检验。
- 通信双方可以进行IP地址的动态协商。
- 对TCP和IP报文首部进行压缩。
- 链路控制协议可以对多个数据链路选项进行设置。
而每一种链路层的协议,都有一个MTU(最大传输单元)定义,在这个定义中,如果数据报过大超过它,数据报就要被分片,超1字节都不行。
命令netstat -in 可以用来查看各协议的MTU大小:
在上图中,lo指的是环回接口。在网络设备上可以通过配置命令来创建一个或多个环回接口,它不是物理接口而是一个虚拟的逻辑接口。下图是环回接口处理IP数据报的简单过程。
图中三个关键点:
- 传给环回地址(127.0.0.1)的任何数据均作为IP输入。
- 传给广播或者多播的复制一份给环回接口。
- 任何传给主机的均送到环回接口。即任何送给本身的IP数据报不出现在网络上。恩,大概就这样了。