Chapter6 链路层¶
- 说明:这一章节内容量过于庞大,很多细节点需要注意,推荐去看原书
- 我这一章整理的并不细致,因为我整理的《RDMA...》那篇论文涵盖了很多这方面的知识,基本已经整理过一遍了,减少低效的重复劳动
一、链路层¶
点对点链路: 链路一端的单个发送方和链路另一端的单个接收方组成。
1、分类:
①广播型信道:通常用在局域网、无线LAN(WIFI)、卫星网和混合光纤电缆。
②点对点通信链路
节点: 将运行链路层协议的任何设备称为节点,包括主机,路由器,交换机和WiFi接入点。
链路: 将沿着通信路径连接相邻节点的通信信道称为链路。
2、服务:
①成帧:把数据报用链路层帧封装起来。
链路层的主体部分是在网络适配器中实现的,也网络接口卡(Network Interface Card, NIC)。网络适配器的核心是链路层控制器,该控制器通常是一个实现了许多链路层服务(成帧、链路接入、差错检测等)的专用芯片。链路层控制器的许多功能是用硬件实现的
以太网帧的结构:
(1) 数据字段:承载IP数据报。以太网最大传输单元1500字节。数据字段最小长度是46字节。如果数据报比这个小,就填充。去除填充是靠网络层首部的数据长度字段。
(2) 地址:原地址和目的地址(MAC地址)。
(3) 类型字段:上层协议(网络层)类型。ARP协议的帧有自己的类编号。
(4) 循环冗余检测:两边提前约定好一个除数(n+1位)。发送方计算n位的冗余码:待发送数据末尾填加n个0(假设待发送数据为10010,n=3,则此时变成10010000),然后除以之前约定好的除数,得到一个余数放到待发送帧的末尾(假设得到的余数为110,则最后发送10010110).接收方将得到的数据除以除数,能整除就说明没出现差错。
(5) 前同步码:前七个字段用于唤醒接收适配器,让它们的时钟和发送方一致。前同步码第八个字节最后两个比特警告适配器“重要的内容来了”。
(6) 许多以太网技术用曼彻斯特编码:每个比特含一次跳变,1是从高电平跳到低电平,0相反。为的是发送适配器和接受适配器能精确同步。
②可靠交付:常用于易产生差错的链路,比如无线链路。而对于不易产生差错的链路这是不必要的开销。
③流量控制:链路层协议提供流量控制。
④差错检测与修正:循环冗余检测(CRC);TCP和UDP用检验和方法;奇偶校验思想(二维奇偶校验)。
⑤链路接入(要解决多路访问问题):通常碰撞(两个以上的节点同时传帧)使接收点都不能获得有效的传输帧。解决办法:
(1) 信道划分协议:时分多路复用、频分多路复用以及码分多址(给每个节点分配不同 编码,实现不同节点能同时传输,不会相互干扰)。
缺点:传输速率只能是R / M;而且即时只有一个节点要传输,也只轮到它才能传输。
(2) 随机接入协议:发生碰撞后等一段时间(随机值)重传。
ALOHA和时隙ALOHA:后者把时间划分为一段段时隙,所有传输都得开始于时隙开始;前者的帧首次到达时立即传输,后者需要等待到最近的时隙开始。后者效率更高。实现如果只有一个信道传输帧可以全速传输。
载波侦听多路访问:
载波侦听:侦听信道,如果信道被占用就等待。
碰撞检测:检测到碰撞立即停止。
(3) 轮流协议:同一条广播链路上的节点以传递令牌的形式轮流获得传输的权利。如果得到令牌的节点没有东西要传,迅速传给下一个。
轮询协议:一个主节点一次把令牌发下去,询问其它节点,并给出最大数量帧(防止一个节点占用时间过长)。缺点是有轮询延迟:即使只有一个节点在传输,不能全速传输,因为主节点要在其传输完最大数量帧后轮询;而且一旦主节点出问题,整个信道不能用。
令牌传递协议:没有主节点,令牌互相传。缺点:一旦某个节点出了问题,信道将不能用。
⑥半双工和全双工:采用全双工传输时,链路两端节点可以同时传输分组;采用半双工时,一个节点不可以同时传输和接收分组。
3、编址(MAC地址):
①原因:保持隔层独立,而且链路层并不是只为IP协议服务的。
②MAC地址详情:它是扁平结构而不是IP地址那样的层次结构;带有以太网网卡的便携机总有相同MAC地址,无论在哪里;
③发送过程:发送适配器将目的适配器的MAC地址放到目的地址字段中,将该帧发到局域网上。如果局域网是广播局域网,则该广播局域网所有适配器接收:如果目的MAC地址是自己,就接受,否则丢弃。也有广播MAC地址:FFFFFFFFFFFF。局域网的每个适配器都会接收。
④地址解析协议(ARP):
(1) ARP表:每个主机或路由器的ARP模块RAM都有ARP表记录IP地址、MAC地址和时间。不用记录所有子网上的节点。传帧的时候查ARP表,如果里面有映射就发到相应的MAC地址。如果通过路由器发到别的子网,ARP表里存储的是目的IP地址和需要通过的路由器接口适配器地址(路由器每个接口都有IP地址、适配器、MAC地址!),帧会传到路由器,然后路由器根据帧的目的IP地址,查自己的ARP表,找到目的地的MAC地址进行传输。
(2) 目的地址ARP表里没有目的地MAC地址:发送ARP分组(进行广播),目的地适配器会返回一个响应ARP分组。然后发送适配器更新ARP表。ARP表是即插即用的,即自动建立,不需人为插入。
4、链路层交换机:任务是接收入链路层帧并把它们转发到出链路。交换机是透明的。交换机输出接口有缓存。
①转发和过滤:借助交换机表(记录了某局域网上某些节点而不一定是全部节点的MAC地址和到达该节点的交换机接口以及时间)。如果交换机表中没有目的地址,广播。如果收到的帧目的地址和源地址相同,说明是其它交换机广播过来的,过滤。
②交换机表自学习(即插即用):每收到一个帧,都会存储它的源地址、接口和时间。过了一定时间没收到该地址的帧就会删除。
③交换机优点:
(1) 消除碰撞:交换机缓存帧且不会同时传输多于一帧。
(2) 异质链路:交换机将链路彼此隔离,所以不同链路能以不同速率运行而且可以在不同媒体运行。
(3) 管理:如果一个适配器异常发送,交换机会将它短开;如果一个节点短开了,交换机会收集数据供分析。
④和路由器比较:
交换机是第二层的,交换机表存储地址为MAC地址;路由器是第三层的,转发表存储IP地址。两者都是分组交换机。
交换机即插即用,且效率较高。
路由器对第二层广播风暴提供防火墙保护,安全性更高。
几百个主机组成的小网络通常有几个局域网网段,这种小网络用交换机;几千台主机组成的大网络用路由器。
偶校验: 假设发送方要发送的信息中含有d比特,发送方只需要包含一个附加比特,选择它的值,使得这d+1比特中1的个数是偶数。
奇校验:假设发送方要发送的信息中含有d比特,发送方只需要包含一个附加比特,选择它的值,使得这d+1比特中1的个数是奇数。
二、局域网(主要以太网)¶
1、以太网帧
2、多路访问协议:载波侦听协议(没有时隙)。
指数后退:碰撞检测过程中检测出碰撞会发送阻塞信号,受到n次碰撞后随机等待
(0~ 2 ^ m - 1) * 512(m = min(10,n))比特时间重传。
3、以太网使用链路交换机。
4、以太网链路层差错检验发现错误立即丢弃,发送方不会知道。全靠运输层保障。