计算机网络自顶向下方法第6章-链路层和局域网.1
6.1 链路层概述
沿着通信路径连接相邻节点的通信信道称为链路(link)。为了将一个数据报从源主机传输到目的主机,数据报必须通过沿端到端路径上的每段链路传输。在通过特定的链路时,传输节点将此数据报封装在链路层的帧中,并将该帧发送到链路上;接受节点然后接收该帧并提取出数据报。
类比:一个游客好比一个数据报,每个运输区段好比一条链路,每种运输方式好比一种链路层协议,而该旅行社好比一个路由选择协议。
6.1.1 链路层提供的服务
1、成帧(framing),几乎所有的链路层协议都在经过链路传送之前,将每个网络层数据报用链路层帧封装起来。
2、链路接入(link access),媒体访问控制(Medium Access Control,MAC)协议规定了帧在链路上传输的规则。
3、可靠交付(reliable delivery),当链路层协议提供可靠交付服务时,它保证无差错地经链路层移动每个网络层数据报。
5、差错检测和纠正(error detection),当帧中的一个比特作为1传输时,接收方节点可能错误地判断为0,反之亦然。
6.1.2 链路层在何处实现
链路层的主体部分是在网络适配器中实现的,网络适配器有时也称为网络接口卡。
6.2 差错检测和纠正技术
- 奇偶校验(描述差错检测和纠正背后的思想)
- 检验和方法(应用于运输层)
- 循环冗余检测(应用在适配器中的链路层)
6.3 多路访问链路和协议
有两种类型的网络链路
- 点对点链路
- 点对点协议PPP
- 高级数据链路控制协议HDLC
- 广播链路
- 让多个发送和接收结点都连接到相同的、单一的、共享的广播信道上
- 当任何一个结点传输一个帧时,信道广播该帧,其他结点都收到一个副本
- 如以太网和无线局域网
6.3.1 信道划分协议
- 时分多路复用TDM、频分多路复用FDM,缺点较大
- 码分多址CDMA
- TDM和FDM分别为结点分配时隙和频率,CDMA对每个结点分配不同的编码
- 每个结点用其唯一编码对发送数据进行编码,使得不同结点能同时传输,接收方仍能正确而接收
- 抗干扰,军用系统,民用蜂窝电话
6.3.2 随机接入协议
- 传输结点总是以信道全部速率R bps进行发送
- 有碰撞时,涉及碰撞的每个节点反复重发它的帧(等待一个随机时延),直到该帧无碰撞的通过
常用随机接入协议:
-
时隙ALOHA
- 当结点有新帧发送时,等到下一个时隙开始传输整个帧(设一个时隙传一个帧)
- 如果有碰撞,结点在时隙结束之前检测到这次碰撞,以p的概率在后序的每个时隙重传它的帧,直到无碰撞
- 效率:当活跃结点数量趋向无穷大时,最大效率37%
-
(纯)ALOHA
- 碰撞时,立即以概率p重传该帧,否则等待一个帧传输时间
- 效率:仅为时隙ALOHA的一半
-
载波侦听多路访问CSMA
- 在时隙和纯ALOHA种,一个结点传输的决定独立于其他结点,不关心自己传输时别人是不是在传输
- 举例:有礼貌的人类谈话有两个重要规则
- 说话之前先听。如果在说话,等他们说完话再说,网络中称为载波侦听 ,结点等待直到一小段时间没有传输,然后开始传输
- 如果与他人同时开始说话,停止说话。称为碰撞检测,当一个传输结点在传输时一直侦听此信道,如果检测到另一个结点正在传输,它就停止,等待一段随机事件,重复『侦听=当空闲时传输』动作
- 这两个规则包含在CSMA和具有碰撞检测的CSMA/CD协议族中
- 所有结点都载波侦听了,为何当初会发生碰撞?
- B的比特沿着广播媒体传播所实际需要的时间不是0(即使2*10^8),在还没到D时,尽管B正在发,但D侦听的信道空闲,D就开始传输,于是发生了碰撞
- 广播信道端到端信道传播时延决定了性能,时延越大,不能侦听到已传输结点的可能就越大,碰撞越多,性能越差
-
具有碰撞检测的载波侦听多路访问CSMA/CD
- 与广播信道相连的适配器:
- 适配器从网络层一条获得一条数据报,准备链路层帧,并将其放入帧适配器缓存中
- 如果适配器侦听到信道空闲,开始传输帧;如果侦听到信道在忙,等待,直到空闲
- 传输过程中,适配器监视信道
- 如果适配器传输整个帧而未检测到其他信号,该适配器完成了该帧,否则停止传输帧
- 中止传输后,适配器等待一个随机时间量,继续侦听
- 选择随机回退时间间隔太大,信道会空闲,太小会再次碰撞。当碰撞结点数量较少时时间应该间隔较短,否则较长。二进制指数后退算法解决这个问题
- 帧经历一连串n次碰撞,结点随机从{0,1,2,…,2^n-1}选择一个K值
- 一个帧经历碰撞越多,K选择的间隔越大
- 以太网中,一个结点等待的实际时间量是K*512bit的时间
- 效率
- 信道在大多数时间都会有效地工作
- 与广播信道相连的适配器:
-
- 信道在大多数时间都会有效地工作
6.3.4 轮流协议
- 轮询协议
- 指定一个主结点,以循环的方式轮询每个结点
- 主结点首先向结点A发送一个报文,告知A能传输帧的最大数量,A传完后主结点告诉B能传帧的最多数量,如此循环
- 缺点:有轮询时延;主结点故障,整个信道就GG
- 令牌传递协议
- 没有主结点,一个叫令牌token的特殊帧在结点之间以固定次序交换,如1发给2,2发给3,N发给1,就像网络拓扑结构中的环状网络令牌
- 当一个结点收到令牌时,有帧发送,则发送最大数量的帧,然后转发令牌;没帧发送,直接把令牌转发
6.3.5 DOCSIS:用于电缆因特网接入的链路层协议
6.4 交换局域网
6.4.1 链路层寻址和ARP
1.MAC地址
- 并不是主机或路由器具有链路层地址,而是它们的适配器(网络接口)具有链路层地址。具有多个网络接口的主机或路由器也有多个链路层地址,就像它也有多个IP地址一样
- 链路层交换机并没有链路层地址,交换机透明地执行在主机与路由器之间承载数据报的任务
- 链路层地址也叫LAN地址、物理地址、MAC地址
- MAC地址长度6字节,2^48个可能的MAC地址,通常用十六进制表示法,如5C-66-AB-90-75-B1
- MAC地址一般是固定的(也有软件改变适配器MAC地址的可能)
- 没有两块适配器有相同的MAC地址,MAC地址空间由IEEE管理,IEEE给公司固定前24个比特,后面24个比特让公司自己去生成
- MAC地址具有扁平接口。比如具有802.11接口的手机总是有相同mac地址,而当主机移动时,IP地址会改变(IP地址是层次结构)
- MAC地址像身份证号,IP地址像邮政地址,有层次,会改变
- 当某适配器要向目的适配器发送一个帧时,发送适配器将目的适配器的MAC地址插入该帧,发送到局域网上,适配器可以接受一个并非向它寻址的帧,当适配器接受一个帧时,检查帧中的目的MAC地址与自己的MAC地址是否匹配,若匹配则取出数据报,向上传递,否则丢弃
- 适配器通过MAC广播地址FF-FF-FF-FF-FF-FF来广播
- 转换网络层地址和链路层地址,如IP地址和MAC地址的转换
- DNS为因特网中任何地方的主机解析主机名,而ARP只为在同一个子网上的主机和路由器接口解析IP地址
- 每台主机和路由器在内存中有一个ARP表,包含IP地址到MAC地址的映射关系,过期时间20分钟
- 若发送方的ARP表没有目的主机的表项,发送反公用ARP协议来解析这个地址
- 首先发送方构造一个ARP分组,字段包括发送和接受IP地址和MAC地址,ARP查询分组和响应分组格式相同
- 适配器用MAC广播地址发送该ARP查询分组,每个适配器都把ARP分组向上传递给ARP模块,检查自己的IP地址和分组中的目的IP地址是否一致
- 匹配的主机发送回一个ARP响应分组,然后查询主机更新它的ARP表,并发送它的IP数据报
- ARP协议是一个跨越链路层和网络层的协议
![](https://img2018.cnblogs.com/blog/226988/201906/226988-20190630221938045-1701438053.png)
- 路由器有几个接口,就有几个IP地址、ARP模块和适配器,假设一个路由器连着两个子网A、B
- 子网A中的适配器要发往子网B中的适配器,先通过子网A的ARP把数据报发到子网A跟子网B相连的路由器,路由器通过子网B的ARP将该数据报转发给目的适配器
6.4.2 以太网
- 以太网占领了现有的有线局域网市场,就像因特网之于全球联网的地位
- 集线器是一种物理层设备,作用于比特而不是帧。当0或1的比特到达一个接口时,集线器只是重新生成这个比特,将其能量强度放大,并将该比特向其他所有接口传输出去
- 早期基于集线器星形拓扑以太网,现在位于中心的集线器被交换机所取代。交换机是无碰撞的存储转发分组交换机,运行在链路层
![](https://img2018.cnblogs.com/blog/226988/201907/226988-20190701213748088-182012022.png)
- 数据字段(46~1500字节):承载了IP数据报,超过1500字节的数据报需要分片;若小于46字节,需要填充到46字节
- 目的地址(6字节):目的适配器的MAC地址。当目的适配器收到一个以太网帧,若目的地址是自己的MAC地址或广播地址,将数据字段传给网络层,其他则丢弃
- 源地址
- 类型字段:允许以太网复用多种网络层协议
- CRC(4字节):差错检测
- 前同步码(8字节):以太网帧以前同步码开始,前7个字节用于唤醒接收适配器,同步发送方接收方时钟,第8个字节最后两个比特(11)警告目的适配器,重要内容来了
- 以太网技术向网络层提供不可靠服务
- 交换机的任务:接收入链路层帧,转发到出链路
- 交换机自身对子网中的主机和路由器是透明的,主机/路由器向另一个主机/路由器寻址一个帧,顺利将帧发送进局域网,并不知道交换机干嘛
- 交换机是即插即用设备,管理员无需配置
- 交换机是双工的,任何交换机接口能同时发送和接收
6.4.3 链路层交换机
1.交换机转发和过滤
- 借助于交换机表,包含局域网上某些主机和路由器的表项(MAC地址,通向该地址的交换机接口,表项放置的时间)
- 假定目的地址为DD-DD-DD-DD-DD-DD的帧从交换机接口x到达,交换机用该MAC地址索引交换机表,有三种可能:
- 表中没有该地址,交换机广播该帧
- 表中有表项将该地址与接口x联系起来,过滤掉,因为该帧从x来,DD也通过x去,说明该帧跟DD适配器在同一个局域网段,该帧已经在包含目的地的局域网网段广播过了
- 表中有表象将该地址与接口y≠x联系起来,该帧需要被转发到与接口y相连的局域网段,放到接口y前的输出缓存,完成转发功能
2.自学习
- 交换机表初始为空
- 对于每个接口接收到的每个入帧,交换机在其表中存储
- 该帧源MAC地址
- 帧到达的接口
- 当前时间
- 一段时间后,交换机没有接受到以该地址作为源地址的帧,在表中删除该地址。如果一台PC被另一台PC代替,原来PC的MAC地址将被清除
3.链路层交换机的性质
4.交换机和路由器的比较
![](https://img2018.cnblogs.com/blog/226988/201907/226988-20190701214548619-1517678309.png)
- 路由器是第三层的分组交换机,交换机是第二层的分组交换机
- 交换机:
- 交换机即插即用,相对高的分钟过滤和转发速率
- 防止广播帧循环,交换网络的活跃拓扑限制为一颗生成树
- 大型交换网络要求在主机和路由器中有大的ARP表,生成大量ARP流量和处理量
- 对广播风暴不提供任何保护,使得以太网崩溃
- 路由器:
- 分组不会被限制到生成树上,可以使用源到目的地的最佳路径,拓扑结构更加丰富
- 对第二层的广播风暴提供了防火墙保护
- 不是即插即用,需要人为配置IP地址
- 对分组处理时间较长,因为必须处理第三层字段
- 通常,几百台主机组成的小网络有几个局域网网段,交换机足够了,不要求IP地址任何配置就能使流量局部化并增加总计吞吐量
- 几千台主机组成的更大网络,网络中除了交换机还要路由器,提供更健壮的流量隔离和对广播风暴的控制,主机之间路由更智能
6.4.4 虚拟局域网
- 现代机构的局域网常常配置为等级结构,每个工作组有自己的交换局域网,经过一个交换机等级结构与其他工作组的交换局域网互联
- 支持虚拟局域网VLAN的交换机允许一个单一的物理局域网基础设施定义多个虚拟局域网
- 在一个基于接口的VLAN中,交换机的接口由网络管理员划分为组,每个组构成一个VLAN,每个VLAN中的端口形成一个广播域,即来自一个端口的广播流量仅能到达该组的其他端口
- 两个组之间如何交换?需要将VLAN交换机的一个端口与一台外部路由器相连,并且该端口配置为属于两个组。现在有包含一台VLAN交换机和一台路由器的单一设备,不需要分离的外部路由器
- 扩展互联VLAN的方法:VLAN干线连接
- 每台交换机上的一个特殊端口配置为干线端口,互联两台VLAN交换机
- 标准以太网帧首部再加4字节VLAN标签,用于指示帧属于哪个特定VLAN
参考
牛富贵儿 https://www.jianshu.com/p/16c716ec06b7