计算机网络学习笔记2:数据链路层

1  数据链路层使用的信道

点对点信道。这种信道使用一对一的点对点通信方式。
广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
链路(link)是一条点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。
数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。

2  数据链路层需要解决的三个问题

封装成帧(framing):就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧。确定帧的界限。首部和尾部的一个重要作用就是进行帧定界。
透明传输:如果数据里面恰好有和“开始”、“结束”符相等的字符,则采用字节填充法或0比特填充法来实现透明传输。
字节填充(byte stuffing)或字符填充(character stuffing):发送端在数据中出现控制字符“SOH”或“EOT”时,在其前面插入一个转义字符“ESC”(其十六进制编码是1B)。接收端在将数据送往网络层之前删除插入的转义字符。如果转义字符也出现数据当中,那么应在转义字符前插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
差错检测:传输过程中可能会产生比特差错:1可能会变成0而0也可能变成1。在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)。常用检错技术有循环冗余检验 CRC检错技术。在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。
仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受。
“无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错”。也就是说:“凡是接收端数据链路层接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。
要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。考虑帧重复、帧丢失、帧乱序的情况。
可以说“CRC是一种无比特差错,而不是无传输差错的检测机制”。

3  使用点对点信道的数据链路层

现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。(是广域网)
PPP 协议有三个组成部分:
数据链路控制协议(HDLC)可以用于异步串行或同步串行介质。
链路控制协议(LCP)建立并维护数据链路连接。具有身份验证、计费功能。
网络控制协议(NCP)允许在点到点连接上使用多种网络层协议。


计算机网络学习笔记2:数据链路层_第1张图片

点对点传输不需要写地址。PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。PPP协议帧格式:


计算机网络学习笔记2:数据链路层_第2张图片

4  使用广播信道的数据链路层

局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限。
局域网具有如下的一些主要优点:
具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
便于系统的扩展和逐渐地演变,各设备的位置可灵活调整和改变。
提高了系统的可靠性、可用性和生存性。
局域网的拓扑:星形、环形、总线、树形。
局域网共享通信媒体的方法有:静态划分信道(频分复用、时分复用、波分复用、码分复用),较麻烦,不用;动态媒体接入控制(以太网使用随机接入)。
CSMA/CD协议:载波监听多点接入/碰撞检测,以太网使用CSMA/CD协议。
“多点接入”表示许多计算机以多点接入的方式连接在一根总线上。
“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送(二进制指数退避算法)。
简言之,就是“先听后发、边听边发、冲突停发、随机重发”。
用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行半双工通信。
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
最先发送数据帧的站,在发送数据帧后至多经过时间 2τ(两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
以太网的争用期:以太网的端到端往返时延 2τ称为争用期,或碰撞窗口。通常,取51.2μs为争用期的长度。对于10 Mb/s以太网,在争用期内可发送512 bit,即64字节。以太网在发送数据时,若前64字节未发生冲突,则后续的数据就不会发生冲突。如果发生冲突,就一定是在发送的前 64 字节之内。
最短有效帧长: 由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。 以太网规定了最短有效帧长为 64 字节,凡长度小于64字节的帧都是由于冲突而异常中止的无效帧。

5  MAC地址

MAC地址:在局域网中,硬件地址又称为物理地址,或MAC地址。MAC地址实际上就是适配器地址或适配器标识符。一个网卡对应一个MAC地址(出厂时固定到芯片上的)。MAC地址可以自己手动更改(可以设置计算机不使用芯片上的MAC而使用自己后设置的)。(查看MAC地址命令:ipconfig /all)
MAC地址由48位二进制组成。IEEE的注册管理机构RA负责向厂家分配地址字段的前三个字节(即高位24位)。地址字段中的后三个字节(即低位24位)由厂家自行指派,称为扩展标识符,必须保证没有重复地址。

6  以太网的MAC帧

适配器从网络上每收到一个MAC帧就首先用硬件检查MAC帧中的MAC地址。
如果是发往本站的帧则收下,然后再进行其他的处理。否则就将此帧丢弃,不再进行其他的处理。
“发往本站的帧”包括以下三种帧: 单播帧(一对一);广播帧(一对全体);多播帧(一对多)。


计算机网络学习笔记2:数据链路层_第3张图片

类型字段:用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议。
数据字段:以太网帧最小长度64字节,64-18=46,数据字段的最小长度是46字节。当数据字段的长度小于46字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的MAC帧长不小于64字节。
在帧的前面插入的8字节中的第一个字段共7个字节,是前同步码,用来迅速实现MAC帧的比特同步。第二个字段是帧开始定界符,表示后面的信息就是MAC 帧。
无效的MAC帧:帧的长度不是整数个字节;用收到的帧检验序列FCS查出有差错;数据字段的长度不在46 ~ 1500字节之间。有效的MAC帧长度为64 ~ 1518 字节之间。对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。
帧间最小间隔为9.6 μs,相当于96 bit的发送时间。一个站在检测到总线开始空闲后,还要等待9.6μs 才能再次发送数据。这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。

7  扩展以太网

7.1  物理层上扩展

距离上:由于双绞线连接的计算机不能超过100米,而光纤允许连接的距离达几千米,因此主机使用光纤和一对光纤调制解调器连接到集线器来扩展距离。
数量上:使用集线器。所有用集线器连到一起的计算机都属于一个冲突域(即碰撞域)。如图所示,以下12台计算机,同一时间只能有两台计算机通信(它们两个的信号会扩散至整个网络)。


计算机网络学习笔记2:数据链路层_第4张图片

7.2  数据链路层上扩展

在数据链路层扩展局域网是使用网桥(交换机是一种多端口网桥,现在用的比较多的是交换机。交换机的一个口就是一个冲突域,每个口各接一台计算机。每个口有缓存,存储转发。因此交换机可以隔离冲突域。每个口的带宽独享;全双工通信不使用CSMA/CD;较安全)。
网桥工作在数据链路层,它根据 MAC帧的目的地址对收到的帧进行转发。网桥内部存有转发表(自学习),记录了哪个接口对应着哪个MAC地址。它具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口。


计算机网络学习笔记2:数据链路层_第5张图片

你可能感兴趣的:(计算机网络学习笔记2:数据链路层)