【计算机网络】链路层和LAN
计算机网络:自顶向下方法(第五版&第七版)学习笔记,第五章链路层和LAN
概述
- 运行链路层协议的设备称节点(node),通信信道称链路(link),信息称链路层帧(frame)
- 服务
- 成帧(framing):封装网络层数据报
- 链路接入(link access):媒体访问控制MAC(Medium Access Control)协议规定帧在链路上的传输规则
- 可靠交付(Reliable delivery):有线一般不提供,高差错线路如无线提供纠错
- 差错检测和纠正(Error Detection & Correction):硬件实现,接收方检测并纠错
- 流量控制:类似运输层的
- 双全工、半全工
- 在网络适配器(network adapter),又称网络接口卡NIC(Network Interface Card),实现,接入主机总线
- 链路类型
- 点对点链路(point-to-point link),单接收方单发送方,如点对点协议PPP(point-to-point protocol)、高级数据链路控制HDLC(high-level data link control)
- 广播链路(broadcast link),多发送方多接收方,共享相同单一的广播信道
差错检测和纠正
- 使用差错检测和纠正比特EDC(Error Detection and Correction bits)来增强数据
奇偶校验(Parity Checking)
- 奇偶校验位(parity bit):加校验比特使得1的个数是偶数(偶校验),检验时如果是奇数个就叫出现了奇数个比特差错(odd number of bit errors)
- 二维奇偶校验:行+列
检验和(checksum)
只在运输层用
循环冗余CRC(Cyclic Redundancy Check)
已知 比特数据 ,协商过的 比特生成多项式(generator) ,构造 比特附加数据 使得:
&G\mid (D<<r \wedge R)\\ \Rightarrow & (D<<r) \equiv R\mod G
(这里混用了计算机的记法和数学的记法)
在竖式计算过程中,乘除法规则不变,加减法变为异或运算
多路访问协议(multiple access protocol)
-
多个信息同时到达接收方会碰撞(collide)
-
希望达到:
- 一个节点发送时有全部吞吐量
- 多个节点发送时具有平均的传输速率
- 协议分散,系统更稳定不会崩溃
- 协议简单
-
分为三种类型的协议
信道划分协议(Channel Partitioning Protocol)
- 时分多路复用(TDM)将时间划分时间帧,进一步时间帧划分时隙(slot)给每个节点,因此在一个时间帧内节点轮流发送
- 频分多路复用同理
- 码分多址CDMA(Code Division Multiple Access):在上述两种复用基础上,给节点编码,编码选择
随机接入协议(Random Access Protocol)
- 节点全速传输
- 碰撞时,节点等待一个随机时延后重发
时隙(slotted)ALOHA
- 时间划分成传输一帧的时隙
- 节点同步,在时隙开始时发送,时隙结束前检测碰撞
- 碰撞后该节点以概率 在每个时隙重传直到发走
- 优点:一个节点发送时有全部吞吐量,高度分散,简单
- 缺点:碰撞及重发都浪费
- 最大效率
ALOHA
- 不同步
- 最大效率
载波侦听多路访问(CSMA/CD)
- 载波侦听(carrier sensing):发送前先听信道
- 碰撞检测CD(collision detection):传输时监听,发现有别人正在传输(收到其他适配器的信号能量)后停止并等待一个随机时间
- 以太网采取二进制指数后退(binary exponential backoff)(见后面)
轮流协议(Taking-Turns Protocol)
轮询协议(polling protocol)
- 蓝牙、计算机外设
- 主节点(master node)观察并逐一询问
- 有轮询时延、询问非活跃节点的时延、不分散
令牌传递协议(token-passing protocol)
- 一个特殊帧:令牌(token),收到令牌有则发送,无则把令牌发给其他节点
- 节点故障/忘记释放令牌可能会导致问题
链路层寻址
-
网络适配器有链路层地址,MAC地址最常用,也叫LAN地址、物理地址,6个字节,十六进制标识
-
IEEE管理,MAC地址均不相同,且是永久的
-
MAC广播地址:FF-FF-FF-FF-FF-FF
-
地址解析协议ARP(Address Resolution Protocol)
- 发送主机给适配器提供IP和MAC,ARP用于从IP获得MAC
- 类比DNS,但ARP只为同一子网的主机和路由器接口解析IP地址
- ARP表:IP、MAC、TTL
- 主机向适配器发送ARP查询分组,指示适配器用广播地址发送,每个适配器都向上传送检查IP是否匹配,匹配的发送响应分组
- 往子网外发MAC是解析第一条路由器IP的MAC,最后一条路由器也通过ARP找目的地的MAC
- 协议跨链路层和网络层
以太网(Ethernet)
- 星形拓扑,古董:集线器(hub),现在:交换机(switch)(仅运行在第二层)
- 第一个广泛部署的高速局域网
- 帧结构
- 前同步码(8字节)(preamble):7个字节的10101010,最后一个字节10101011,用于唤醒接收适配器和完成适配器的时钟同步
- 源、目的地址(6+6字节):MAC,目的地址不匹配LAN里的会被丢弃
- type(2字节):上层协议
- 数据字段(46-1500字节):如果小于46会被填充,网络层通过长度字段去除链路层的填充
- CRC(4字节)
- 以太网采取CSMA/CD,采用二进制指数后退(binary exponential backoff)算法
- 为了适应当前的流量
- 一个经历了 次碰撞的帧,等待 进入以太网所需时间的 倍,其中 ,即对于速度为 的以太网,等待 后发送
- 注意(老师ppt给的习题,但书上没找到更多说法,可能是书版本问题):同时发送,传播时延的时间能检测到碰撞,然后发送拥塞信号(花了48),检测到碰撞后至少有个帧间最小间隔时间(习题里是96?)才能发送
- 为LAN中两个适配器间传播的最大时间, 为传输一个最大长度的以太网帧的时间,则有:
链路层交换机
- 过滤(filtering):决定帧转发还是丢弃
- 转发(forwarding):决定帧被导向哪个接口并移动
- 交换机表:包含MAC、交换机接口、表项放入时间,MAC没有广播找MAC,MAC与来的方向一致就过滤掉
- 对主机和路由器透明:它们不知道会经过交换机
- 自学习:来一个入帧就存储,老化期(aging time)后清除
- 即插即用
- 比广播链路高效(不会碰撞)
- 链路可以不同
- 能够管理,比如适配器发送jabbering时断开这个异常适配器