链路层的作用:
- 收发IP数据报
- 收发ARP/RARP请求和答复。
TCP/IP中的链路层支持多种形式:以太网,令牌环,FDDI(光线分布数据接口),RS-232串行线等。其中以太网是当前使用得最广泛的局域网技术,它使用了叫做CSMA/CD(带冲突检测的载波监听多路访问)的访问方法,它使用48位的地址,即我们常说的MAC地址,其中前面24位代表网络硬件制造商的编号,由IEEE分配,后24位是制造商自己分配的产品序列号。
以太网的帧格式和三种类型的数据(IP数据报,ARP/RARP报文)封装形式
SLIP 串行线路网际协议
一种在串行线路上封装IP数据报的简单协议,格式如图,
每个报文的前后都有END(oxc0)字节,如果IP数据报中恰好出现了0xc0,则用转义字oxdb,oxdc代替传输;而转移字出现在IP数据报中的oxdb用两个字节oxdb,oxdd代替传输。
SLIP有几个不足:
- 没有类型字段,如果一条串行线路用作了SLIP协议数据传输,那它不能同时用来传输其他协议的数据;
- 通信双方要事先知道对方的IP地址,它不能将本端的IP告知对方;
- 没有提供检验和。
有一种协议叫做压缩的SLIP(CSLIP),其目的就是减少不变的报文首部,提高传输的效率。在CSLIP的每一端最多能维持16个TCP连接,并且知道其中每个连接的TCP首部不会改变。
PPP协议
有三个重要组成:
- 在串行线路上封装封装IP数据报。PPP既支持数据为8位且无奇偶检验的异步模式(如大多数PC上都普遍存在的串行接口),还支持面向比特的同步链接。
- 链路控制协议(LCP),用来建立、配置和测试数据链路连接。两端可以进行某些选项的协商。
- 针对不同网络协议的网络控制协议族。
PPP帧格式如图,
PPP帧以值为0x7e的标志字节开始和结尾,紧接着开头标志字节的是地址字节,值为oxff,再后面是控制字节,值为0x03。两个字节的协议字段区分不同的数据,如图所示。循环冗余检查CRC字段用来检错。
类似于SLIP,PPP也要对特殊字节进行转义:0x7e用0x7d和0x5e两个字节传输;0x7d用0x7d,0x5d两个字节代替;对于小于0x20的字节也要转义,如0x01用0x7d和0x21代替。