计算机网络第五章阅读笔记
概述
节点(node):运行链路层协议的设备(主机、路由器、交换机、wifi接入点)
链路(link):连接相邻节点的通信信道
链路层协议可能提供的服务
- 成帧:将网络层数据包用链路层帧封装起来
- 链路接入:媒体访问控制(Medium Access Control, MAC)协议规定了帧在链路上传输的规则
- 可靠交付:保证无差错地经链路层移动每个网络层数据报
- 差错检测和纠正
两种链路类型:点对点链路、广播链路
差错检测和纠正技术
差错检测和纠正比特(Error-Detection and Correction, EDC)
三种技术:奇偶校验、检验和、循环冗余检测
奇偶校验
奇偶校验位(parity bit)
方法:附加一个比特,选择值使得初始信息加上校验比特后1的总数为偶数(偶校验方案)
二维奇偶校验(two-dimensional parity)
方法:将初始信息中的d个比特划分为i行j列,对每行每列计算奇偶值,共有i+j+1个奇偶比特
前向纠错(Forward Error Correction, FEC):接收方检测和纠正差错
校验和(Check sum)
将数据的字节作为16比特的整数进行求和,和的反码即为检验和。接收方对所有数据(包括校验和)求和,得到结果全为1比特
循环冗余检测(Cyclic Redundancy Check, CRC)
生成多项式(generator):发送方和接收方协商的r+1位比特串,表示为G
方法:发送方在被发送的数据比特d后面添加r个附加比特,使得最终的d+r个比特可以被G整除
注:在计算过程中,加法和减法都采用XOR操作
多路访问链路和协议
多路访问问题:如何协调多个发送和接收节点对一个共享广播信道的访问,相关协议称为多路访问协议
多路访问协议应有特性:
- 当仅有一个结点有数据要发送时,结点应具有R bps的吞吐量
- 当有M个结点要发送数据时,在一定时间间隔内结点应有R/M 的平均传输速率
- 协议是分散的,不会因为主节点故障而崩溃
- 协议简单易实现
信道划分协议(channel partitioning protocol)
时分多路复用(time-division multiplexing)将时间划分为时间帧(time frame),每个时间帧再划分为N个时隙(slot),把每个时隙分配给N个结点中的一个
缺陷:
- 节点被限制于R/N bps的平均速率
- 节点必须等待它在传输序列中的轮次
频分多路复用(frequency-division multiplexing)将R bps信道划分为不同频段,并把每个频率分配给N个节点中的一个,其优缺点与TDM相同
码分多址(code division multiple access, CDMA):见第6章
随机接入协议(random access protocol)
方式:
- 传输结点总是以信道的全部速率发送
- 涉及碰撞的结点反复重发它的帧,直到该帧无碰撞通过
- 重发帧之前等待一个随机时延
时隙ALOHA协议
- 必须在时隙起点开始传输帧
- 以概率p重传
- 最大效率为1/e
ALOHA
- 不限定开始传输的时刻
- 以概率p立刻重传,1-p概率等待一个帧传输时间再重新判定
- 最大效率为1/2e
载波侦听多路访问(Carrier Sense Multiple Access, CSMA)
载波监听(Carrier sensing):一个结点在传输前先检测信道是否正在传输帧(如何实现?)
碰撞检测(collision detection):结点在传输过程中监听信道,如果检测到另一个结点正在传输则停止传输 (CSMA with Collision Detection, CSMA/CD)
在碰撞检测中停止传输后,适配器等待一个随机时间量(二进制指数后退),然后继续监听信道是否空闲。
二进制指数后退(binary exponential backoff):假设该帧经历了n次碰撞,则从{0, 1, 2 … 2^n-1}中选择K,等待K*512比特时间,当 时,,当 时,停止传输
轮流协议(taking-turns protocol)
轮询协议(polling protocol)
方式:指定一个主节点,由主节点以循环的方式轮询每个节点
缺陷:
- 引入了轮询时延
- 如果主节点故障,则整个信道也会停止工作
令牌传递协议(token-passing protocol)
方式:一个称为令牌的小的特殊帧在节点之间以固定的次序进行交换,只有当节点收到令牌并且有帧要传输时才发送最大数目的帧数,然后将令牌传递给下一个节点
缺陷:固定次序中的任意节点故障或是令牌操作不当都会引起信道崩溃
DOCSIS(Data-Over-Cable Service Interface Specifications)
关键词:数据经电缆服务接口(DOCSIS), 电缆调制解调器端接系统(cable modem termination system, CMTS)
交换局域网
MAC地址(LAN地址/物理地址)
- 主机或路由器网络接口的链路层地址
- 长度为6字节
- 广播地址是48个连续的1组成的字串
MAC与IP的区别与联系
- 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址永远唯一且不能由用户改变。
- 长度不同。IP地址为32位,MAC地址为48位。
- 分配依据不同。IP地址的分配是基于网络拓朴,MAC地址的分配是基于制造商。
- 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传递到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上(ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。
https://blog.csdn.net/yang_best/article/details/41643589
地址解析协议(Address Resolution Protocol, ARP)
- ARP只为在同一个子网上的主机和路由器接口解析IP地址
- 每台主机或路由器内存中维护一个ARP表
IP地址 | MAC地址 | TTL |
---|---|---|
222.222.222.221 | 88-B2-2F-54-1A-0F | 13:45:00 |
222.222.222.223 | 5C-66-AB-90-75-B1 | 13:52:00 |
- 当对应表项不存在时,发送方构造一个ARP分组(ARP packet),用MAC广播地址发送这个分组。分组中包含发送和接收IP地址和MAC地址
发送数据报到子网外:
每台路由器有N个接口(对应N个IP地址),一个ARP模块,一个适配器(对应一个MAC地址)
发送适配器首先通过ARP发送帧到第一跳路由器,然后该帧被传递给网络层进而移动到目的地。
以太网
以太网帧结构
名称 | 作用 | 大小 |
---|---|---|
前同步码(Preamble) | 用于同步时钟 | 8字节 |
目的地址 | 目的适配器的MAC地址 | 6字节 |
源地址 | 源适配器MAC地址 | 6字节 |
类型字段 | 网络层协议编号 | 2字节 |
数据字段 | 46-1500字节 | |
循环冗余检测(CRC) | 4字节 |
链路层交换机
过滤:决定转发或是丢弃某个帧
转发:决定一个帧被导向哪个接口,并将该帧移动到那个接口
交换机表:对应3种转发情况(没有对应项,x=x,y!=x)
地址 | 接口 | 时间 |
---|---|---|
62-FE-F7-11-89-A3 | 1 | 9:32 |
7C-BA-B2-B4-91-10 | 3 | 9:36 |
自学习:
- 交换机表初始为空
- 在表中存储每个接口接收到的入帧
- 在老化期后删除表项
性质:
- 消除碰撞:不会因碰撞而浪费带宽
- 异质的链路:将链路隔离从而允许不同链路运行在不同媒体上
- 管理:更强的安全性
- ex即插即用:不需要管理员或用户干预,而路由器需要用户配置IP
交换机和路由器
交换机
- 即插即用
- 分组过滤和转发速率高
- 广播需要采用生成树
- 大型网络需要维护大的ARP表
- 没有对于网络风暴的保护措施
路由器
- 分组传输可采用最佳路径
- 为广播风暴提供防火墙包含
- 不是即插即用
虚拟局域网(Virtula Local Network, VLAN)
单一物理局域网基础设施定义多个局域网
交换机维护端口到VLAN的映射表