数据链路层不是tcp/ip协议的一部分,只是tcp/ip赖以存在的基础,提供了各种通信网与tcp/ip之间的接口。
各物理网络可以使用自己的数据链路层协议和物理层协议。
在数据链路层使用得最为广泛的就是slip和ppp协议。
一、串行线路网际协议slip(serial line ip)
串行线路网际协议 slip:是一个在串行线路上对ip分组进行封装的简单的面向字符的协议,用以使用户通过电话线和调制解调器接入internet。
slip帧的封装规则:
ip数据报的首尾各加上一个特殊标志字符end,其编码为0xc0(11000000)。
若ip数据报中的某个字节恰与特殊标志字符end的编码(0xc0)一样,则需用2字节序列0xdb(称为slip转义字符)和0xdc替换该字节。
若ip数据报中某个字节恰与slip转义字符一样,则需用2字节序列0xdb和0xdd将它替换。
slip协议的缺点:
没有校验字段,不提供差错检测的功能,只能靠高层检验差错;
不能提供对方的ip地址,对无固定ip地址的拨号入网的用户来说不方便;
无协议类型字段,仅支持ip协议,而不支持其他的协议。
适用:低速串行线路中的交互性业务(附加信息开销大,数据传输效率较低)。
cslip协议(压缩的slip):在连续发送的数据报分组中会有许多相同的首部字节,若某一字段和前一分组中的相应字段相同,则不发送这个字段;若某一字段和前一个分组中的相应字段不同,则只发送改变的部分。
二、点对点的ppp协议(point-to-point protocol)
作用:完成链路的操作、维护和管理功能。
运行条件:只需提供全双工电路(专用的或交换式的)以实现双向的数据传输。
1、ppp协议的构成
在串行链路上封装ip数据报的方法:既支持异步链路(无奇偶校验的8比特数据),也支持面向比特的同步链路。
链路控制协议lcp:用于建立、配置和测试数据链路连接,通信的双方可协商一些选项。
网络控制协议ncp:用于建立、配置多种不同网络层协议, 每种网络层协议需要一个ncp来进行配置,在单个ppp链路上可支持同时运行多种网络协议。
2、 ppp的帧格式
标志字段(f1ag),编码为01111110(0x7e),是帧的定界符,用以标识一帧的开始和结束。
地址字段(address),编码为11111111(0xff),采用标准的广播地址。
控制字段(contro1),编码为00000011(0x03),是一个无编号帧。
协议字段(protocol), 用于标识封装在ppp帧中的信息所用的协议类型。
信息字段(information),包含零个或多个字节,是网络层协议数据报,缺省最大长度为1500个字节。
fcs帧校验序列字段,用16比特的循环冗余校验crc计算校验和。
ppp是面向字符的,帧长度都是整数个字节。
字符填充法:将信息字段中出现的每一个0x7e字符转变成为2字节序列0x7d和0x5e;若信息字段中出现一个0x7d字符则将其转变成为2字节序列0x7d和0x5d;若信息字段中出现ascii码的控制字符(即小于0x20的字符),则在该字符前面要加入一个0x7d字符。
3、ppp的协议族
1)链路控制协议lcp(link control protocol)
作用:用于建立、配置、维护和终止点对点的链路层连接。
工作过程:——通过交换lcp帧来实现
第一阶段:链路的建立和配置协调;
第二阶段:链路质量检查(可选),决定链路是否满足网络层协议的要求;
第三阶段:网络层协议配置;
第四阶段:关闭链路,可随时关闭链路,多因用户要求或发生物理故障。
lcp的三种帧:
链路建立帧:用于建立和配置ppp链路并确定与该链路相关的参数;
链路终止帧:用于终止ppp链路;
链路维护帧:用于管理和调试ppp链路。
2)网络控制协议ncp(network control protocol)
ppp使用一组网络控制协议ncp配置不同的网络层,其中普遍使用的是用于配置ip层的ip控制协议ipcp(internet protocol control protocol)。
使用与lcp相同的报文结构及协商机制完成选项协商的任务。
4、ppp的运行机制
ppp不提供使用序号和确认的可靠传输。
当用户拨号接入isp时,路由器的调制解调器对拨号应答并建立一条物理连接;
pc机向路由器发送一系列lcp分组(封装成多个ppp帧),选择将要使用的一些ppp参数;
进行网络层配置,ncp给新接入的pc机分配一个临时的ip地址。
当用户通信完毕时,ncp释放网络层连接,收回原来分配出去的ip地址;
lcp释放数据链路层连接;
最后释放的是物理层连接。