计算机网络笔记——第三章、数据链路层
1、数据链路层使用的信道:
(1)点对点信道:
A:这种信道使用一对一的点对点通信方式。
(2)广播信道:
A:使用一对多的广播通信方式。
B:因此必须使用专用的共享信道协议来协调这些主机的数据发送。
2、数据链路和帧
(1)链路(Link):是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
(2)数据链路(data Link):除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加道链路上,就构成了数据链路。
A:现在常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。
B:一般的适配器都包括了数据链路层和物理层这两层的功能。
3、链路分为物理链路和逻辑链路
(1)物理链路就是上面所说的链路
(2)逻辑链路就是上面的数据链路,是物理链路加上必要的通信协议。
(3)早期的数据通信协议曾叫做通信规程。因此在数据链路层,规程和协议是同义语。
4、透明传输:如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地“找到帧地边界”。
(1)解决方法:字节填充 或 字符填充
A:发送端地数据链路层在数据中出现控制字符“SOH”或“EOT”地前面插入一个转移字符“ESC”(其十六进制编码是1B)。
B:接收端地数据链路层在将数据送忘网络层之前删除插入地转义字符。
C:如果转义字符也出现在数据当中,那么就在转义字符钱买你插入一个转义字符ESC。当接收端收到连续地两个转义字符时,久删除其中前面的一个。
5、循环冗余检验的原理
(1)在发送端,,先把数据划分为组。假定每组k个比特。
(2)在每组M后面再添加供差错检查用的n位冗余码,然后一起发送出去。
6、冗余码的计算
(1)用二进制的模2运算进行2n成M的运算,这相当于再M后面添加n个0.
(2)得到的(k+n)位的数除以事先选定好的长度位(n+1)位的除数P,得出商事Q而余数是R,余数R比除数P少1位,即R是n位。
(3)将余数R作为冗余码拼接在数据M后i按,一起发送出去。
7、接收端对收到的每一帧进行CRC检验
(1)若得出的余数R=0,则判定这个帧没有差错,就接受。
(2)若余数R!=0,则判定这个帧有差错,就丢弃。
8、PPP协议
(1)特点:对于点对点的链路,米钱使用最广泛的数据链路层协议是点对点协议ppp。
(2)PPP协议是在1994年就已成为互联网的正式标准。
(3)组成:
A:一个将IP数据报封装到串行链路的方法。
B:链路控制协议LCP
C:网络控制协议NCP
9、PPP协议的帧格式
(1)PPP帧的首部和尾部分别位4个字段和2个字段
(2)标志字符 F = 0x7E(符号“0x”表示后面的字符是用十六进制表示。十六进制的7E的二进制表示是01111110)。
(3)地址字段A只置位0xFF。地址字段实际上并不起作用。
(4)控制地段C通常置为0x03
(5)PPP是面向字节的,所有的PPP帧的长度都是整数字节
10、透明传输问题
(1)当PPP用在异步传输时,就使用一种特殊的字符填充法。
字符填充:
A:将信息字段中的出现的每一个0x7D字节转变成位2字节序列(0x7D,0x5E)
B:若信息字段中出现一个0x7D的字节,则将其转变成位2字节序列(0x7D,0x5E)。
C:若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加一个0x7D字节,同时将该字符的编码加以改变。
11、零比特填充
(1)PPP协议用在SONET/SDH链路时,使用同步传输(一连串的比特连续传送)。这时PPP协议采用零比特填充方法实现透明传输。
(2)在发送端,只要发现有5个连续1,则立即填入一个0
(3)接收端对帧中的比特流进行扫描。每当发现5个连续1时,就把这5个连续1后的一个0删除。
(2)当PPP用在同步传输链路时,协议规定采用硬件来完成比特填充(和HDLC的做法一样)。