链路层的作用
(1)为IP模块发送和接收IP数据报;
(2)为ARP模块发送ARP请求和接收ARP应答;
(3)为RARP发送RARP请求和接收RARP应答。
以太网和IEEE 802封装
以太网标准:是当今 TCP/IP采用的主要的局域网技术。它采用一种称作 CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with Collision Detection)。它的速率为10 Mb/s,地址为48 bit。
IEEE 802标准: 802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络。这三者的共同特性由802.2标准来定义,那就是802网络共有的逻辑链路控制(LLC)。不幸的是,802.2和802.3定义了一个与以太网不同的帧格式。
以太网I P数据报的封装是在RFC 894[Hornig 1984]中定义的,IEEE 802网络的I P数据报封装是在RFC 1042[Postel and Reynolds 1988]中定义的。
最常使用的封装格式是 RFC 894定义的格式。图中显示了两种不同形式的封装格式。
IEEE 802.2/802.3(RFC 1042)和以太网的封装格式(RFC 894)
两种帧格式都采用48 bit(6字节)的目的地址和源地址(802.3允许使用16 bit的地址,但一般是48 bit地址)。
SLIP:串行线路IP
SLIP是一种在串行线路上对IP数据报进行封装的简单形式。
SLIP协议定义的帧格式:
1:IP数据报以一个称作END(0xc0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个 END字符。
2: 若IP报文中某个字符为END,那么就要连续传输两个字节 0xdb和0xdc来取代它。0xdb这个特殊字符被称作SLIP的ESC字符,但是它的值与ASCII码的ESC字符(0x1b)不同。
3:如果IP报文中某个字符为SLIP的E S C字符,那么就要连续传输两个字节0xdb和0xdd来取代它。
SLIP是一种简单的帧封装方法,还有一些值得一提的缺陷:
1:每一端必须知道对方的IP地址,没有办法把本端的IP地址通知给另一端。
2:数据帧中没有类型字段。如果一条串行线路用于SLIP,那么它不能同时使用其它的协议。
3:SLIP没有在数据帧中加上检验和。如果SLIP传输的报文被线路噪声影响而发生错误,只能通过上层协议来发现。这样,上层协议提供某种形式的 CRC就显得很重要。
压缩的SLIP
由于串行线路的速率通常较低(19200b/s或更低),而且通信经常是交互式的,因此在SLIP线路上有许多小的TCP分组进行交换。为了传送1个字节的数据需要20个字节的IP首部和20个字节的TCP首部,总数超过40个字节。于是提出了一个称为CSSLP的新协议。
CSLIP一般能把上面的40个字节压缩为3或5个字节。它能维持多达16个TCP连接。这些压缩的字段大大减少了交互的响应时间。
PPP:点对点协议
PPP,点对点协议修改了SLIP协议中的所有缺陷。ppp包括以下三个部分:
1:在串行链路上封装IP数据报的方法。PPP既支持数据为8位和无奇偶检验的异步模式,还支持面向比特的同步连接。
2:建立、配置及测试数据链路的链路控制协议。它允许通信双方进行协商,以确定不同的选项。针对不同网络层协议的网络控制协议体系。当前RFC定义的网络层有IP、OSI网络层、DECn t以及AppleTalk。
RFC 1548[Simpson 1993]描述了报文封装的方法和链路控制协议。 RFC 1332[McGregor1992]描述了针对IP的网络控制协议。
PPP数据帧的格式
由于标志为是0x7e,当该字符出现在信息字段中时,PPP需要对它进行转义。在同步链路中,该过程是通过一种称作比特填充的硬件技术完成的。在异步链路中,特殊字符0x7d用做转义字符。当她出现在PPP数据帧中时,那么仅接着的第6个比特要取其补码。具体过程如下
1: 当遇到字符0x7e时,需连续传送两个字符:0x7d和0x5e,以实现标志字符的转义。
2:当遇到转义字符0x7d时,需连续传送两个字符:0x7d和0x5d,以实现转义字符的转义。
3 :默认情况下,如果字符的值小于0x20,一般都要进行转义。例如,遇到字符0x01时需连续传送0x7d和0x21两个字符。
2:当遇到转义字符0x7d时,需连续传送两个字符:0x7d和0x5d,以实现转义字符的转义。
3 :默认情况下,如果字符的值小于0x20,一般都要进行转义。例如,遇到字符0x01时需连续传送0x7d和0x21两个字符。
PPP比SLIP具有下面这些优点:
1:PPP支持在单根串行线路上运行多种协议,不只是IP协议;
2: 每一帧都有循环冗余检验;
3:通信双方可以进行I P地址的动态协商(使用IP网络控制协议);
4: 与CSLIP类似,对TCP和IP报文首部进行压缩;
5: 链路控制协议可以对多个数据链路选项进行设置。
环回接口
大多数的产品支持环回接口,以允许运行在同一台主机上的客户程序和服务程序通过TCP/IP进行通信。A类网络号127就是环形接口预留的。
环回接口处理IP数据的过程
图中需要指出的关键点是:
1) 传给环回地址(一般是127.0.0.
1) 传给环回地址(一般是127.0.0.
1)的任何数据均作为I P输入。
2) 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身。
3 ) 任何传给该主机IP地址的数据均送到环回接口。
3 ) 任何传给该主机IP地址的数据均送到环回接口。