计算机网络基础-1-概述
计算机网络基础-2-物理层
数据链路层
一、数据链路层概述
数据链路层使用的信道主要有以下两种类型:
点对点信道:这种信道使用一对一的点对点通信方式
广播信道:这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
数据链路层模型:
链路:是一条无源的点到点的物理线路段,中间没有任何其他的交换结点,又称为“物理链路”。一条链路只是一条通路的一个组成部分。
数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上就构成了数据链路。又称为“逻辑链路”。现在最常用
的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理这两层的功能。
数据链路层传送的是帧:
常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。数据链路层不必考虑物理层如何实现比特传输细节。甚至
还可以更简单地设想好像是沿着两个数据链路层之间的水平方向把帧直接发送到对方。
二、三个基本问题
数据链路层协议有许多种,但有三个基本问题是共同的,这三个基本问题是:封装成帧,透明传输,差错控制。
1.封装成帧:在一段数据的前后分别添加首部和尾部,然后构成了一个帧,确定帧的界线。首部和尾部的一个重要作用就是进行帧定界。
当数据是由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的帧定界符。控制字符SOH(Start Of Header)放在一帧的最前面,表示帧的首部
开始。另一个控制字符EOT(End Of Transmission)表示帧的结束。
2.透明传输:如果数据中的某个字节的二进制代码恰好和SOH或EOT一样,数据链路层就会错误地"找到帧的边界"
解决办法:字节填充或字符填充。发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(其十六进制编码是1B)。接收
端的数据链路层在将数据送往网络层之前删除插入的转义字符。如果转义字符也出现在数据当中,那么应在转义字符前面插入一个转义字符ESC。当
接收端收到两个连续的转义字符时,就删除其中前面的一个。
3.差错检测:在传输过程中可能会产生比特差错,就是1可能变成0,0可能变成1。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate),