一、引言
1、链路层有三个目的
1)、为IP模块发送和接收IP数据包。
2)、为ARP模块发送ARP请求和接收ARP应答。
3)、为RARP发送RARP请求和接收RARP应答。
二、以太网和IEEE 8.2封装
1、IEEE 802委员会公布了一个稍微不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络。
2、在TCP/IP世界中,以太网IP数据报的封装是在RFC 894中定义的,IEEE 802网络的IP数据报是在RFC 1042中定义的。主机需求RFC要求每台Internet主机都与一个10Mb/s的以太网电缆相连接:
1)、必须能发送和接收采用RFC 894封装格式的分组。
2)、应该能接收与RFC 894混合的RFC 1042封装格式的分组。
3)、也许能够发送采用RFC 1042格式封装的分组。
3、IEEE802.2/802.3(RFC 1042)和以太网的封装格式(RFC 894)
4、IEEE802.2/802.3(RFC 1042)和以太网的封装格式说明
1)、两种帧格式都采用48bit的目的地址和源地址。
2)、在802标准格式的帧定义中,长度字段是指它后续字段的字节长度,但不包括CRC验证码。
3)、以太网的类型字段定义了后续数据的类型,在802标准定义的帧格式中,类型字段则由后续的子网接入协议的首部给出。
4)、在以太网帧格式中,类型字段之后就是数据,而在802帧格式中,跟随在后面的是3字节的802.2 LLC和5字节的802.2 SNAP。
I、目的服务访问点(DSAP)和源服务访问点(SSAP)的值都设为AA。
II、Ctrl字段的设置为3。
III、随后的org code都设置为0。
5)、CRC字段用于帧内后续字节差错的循环冗余吗检验(检验和)。
5、802.3标准定义的帧和以太网的帧都有最小长度要求。
1)、802.3规定数据部分必须至少为38字节。
2)、以太网的数据部分最少要有46字节。
注:为了保证这一点,必须在不足的空间插入填充(pad)字节。
三、尾部封装(已废除略)
四、SLIP:串行线路IP
1、串行线路IP是一种在串行线路上对IP数据包进行封装的简单形式。
2、SLIP协议定义的帧格式
1)、IP数据报以一个称作END(oxc0)的特殊字符串结束。同时,为了防止数据报到来之前的线路噪音被当作数据包内容,大多数实现在数据报的开始处也传一个END字符。
2)、如果IP报文中某个字符为END,那么就要连续传两个字节0xdb和0xdc来取代它。
3)、如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传两个字节0xdb和0xdd来取代它。
3、SLIP的缺陷
1)、每一端必须知道对方的IP地址。没有办法把本端的IP地址通知另一端。
2)、数据帧中没有类型字段。如果一条串行线路用于SLIP,那么它不能同时使用其他协议。
3)、没有在数据帧上加上检验和
五、压缩的SLIP
1、CSLIP即压缩SLIP在RFC1144定义。
2、CSLIP能把传输的字节压缩,能在CSLIP的每一端维持多达16个TCP连接,并且知道其中每个链接的首部中的某些字段一般不会发生变化。
六、PPP:点对点协议
1、点对点协议修改了SLIP的所有缺陷,其包括以下部分:
1)、在串行链路上封装IP数据报的方法。PPP即支持数据为8位和无奇偶检验的异步模式,还支持面向比特的同步链接。
2)、建立、配置及测试数据链路的链路控制协议。它允许通信双方进行协商,以确定不同的选项。
3)、针对不同网络层协议的网络控制协议(NCP)体系。
2、PPP数据帧的格式:
1)、每一帧都以标志字符0x7e开始和结束。紧接着是一个地址字节,值始终是0xff,然后是一个0x03的控制字节。
2)、接下来是协议字段,当它的值为0x0021时,表示信息字段是一个IP数据报;当为0xc021时,表示信息字段是链路控制数据;值为0x8021时,表示信息字段是网络控制数据。
3)、CRC字段(或FCS,帧检验序列)是一个循环冗余检验码,以检测数据帧中的错误。
3、当值为0x7e的标志字符出现在信息字段中时,PPP需要对它进行转义。
1)、在同步链路中,该过程是通过一种称作比特填充的硬件技术来完成的。
2)、在异步链路中,特殊字符0x7e用作转义字符。当它出现在PPP数据帧中时,那么紧接着的字符的第6个字符要取其补码,具体实现过程如下:
I、当遇上字符0x7e时,需连续传送两个字符:0x7d和0x5e,以实现标志字符的转义。
II、当遇上转义字符0x7d时,需连续传送两个字符:0x7d和0x5d,以实现标志字符的转义。
III、默认情况下,如果字符的值小于0x20,一般都要进行转义。
4、PPP比SLIP相比较有以下优点:
1)、PPP支持在单根串行线路上运行多种协议。不只是IP协议。
2)、每一帧都有循环冗余检验。
3)、通信双方可以进行IP地址的动态协商。
4)、与SLIP类似,对TCP和IP报文首部进行压缩。
5)、控制链路协议可以对多个链路选项进行设置。
七、环回接口
1、大多数的产品都支持环回接口,以允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP通信。A类网络号127就是为这个环回接口预留的。
2、大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost。一个传给环回接口的IP数据报不能再任何网络上出现。
3、环回接口处理IP数据报的过程
1)、传给环回接口的任何数据报均作为IP输入。
2)、传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。
3)、任何传给该IP主机的数据均传送到环回接口。
8、最大传输单元MTU
1、以太网和802.3对数据帧的长度都有一个限制,链路层的这个特性称作MTU---最大传输单元。不同的网络大多都有一个上限。
2、几种常见的最大传输单元
3、如果IP层有一个数据要传,而且数据的长度比MTU还大,那么IP层就需要进行分片,把数据报分成若干片,这样每一片都小于MTU。
九、路径MTU
1、如果两个主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的MTU。其中两台通信主机路径中的最小MTU,称作路径MTU。两台主机之间的路径MTU不一定是个常数它取决于当时所选的路由。而选路不一定是对称的。
10、串行线路吞吐量计算(略)