第5章 链路层:链路、接入网和局域网(0)
- 假设 均为理想化,抽象的模型;
- 实例 均为已经投入使用的模型;
(结构1)链路层可以向上层提供的服务
向上层提供的服务由链路层根据相关协议实现
- 成帧 链路层将IP数据报插入数据字段,与若干首部字段组合封装成链路层帧。帧的结构由不同的链路层协议决定。
- 链路接入 媒体访问控制协议规定了帧在链路传输的规则。
- 可靠交付 常用于高差错率的链路(例如无线链路),避免在低差错率的链路(例如光纤)上使用。
- 差错检测和纠正 相较于运输层和网络层更加复杂,且用硬件实现。
(结构2)链路层协议分类
地址解析协议(Address Resolution Protocol)- 具体协议(严格来说介于网络层和链路层之间)
点对点协议(Point - to Point Protocol)- 具体协议
多路访问协议(类别)
- 信道划分协议(channel partitioing protocol)时分多路复用协议(TDM) 频分多路复用协议(FDM) 码分多址协议(CDMA)
- 随机接入协议(random access protocol)ALOHA协议 载波侦听多路访问协议(CSMA)
- 轮流协议(taking-turns protocol)轮询协议(polling protocol)令牌传递协议(token-passing protocol)
(结构3)链路层实现位置 - 网络适配器(网卡)
网络适配器 = 控制器 + 物理传输
控制器中的软件(代码)和硬件一同实现了多种链路层协议。链路层是协议栈中软硬件过渡的地方。
(假设1)同一子网内 传递网络层数据报的链路层工作流程
(子网A主机端网络层)根据IP数据报中的目的IP和子网掩码判断目的主机##是否在同一子网。
(子网A主机端链路层)获取由高层协议生成并存储在内存中的IP数据报,将其封装成链路层帧,帧字段未全部完成。
##是在同一子网
(子网A主机端链路层)查找 ARP table 中是否存在(IP数据报)目的IP与其MAC地址映射,若无进行一个ARP更新流程;
(子网A主机端链路层)查找 ARP table ,填写目的MAC,完成其他帧字段。
(子网A主机端链路层)发送链路层帧到达子网中的链路层交换机。
(xxx物理层)...
(子网A链路层交换机链路层)检查新到来的链路层帧,查询 switch table,若没有对应源MAC的 MAC - Port 选项,则更新;
(子网A链路层交换机链路层)查询 switch table 中是否存在对应目的MAC的 MAC - Port 选项,若无则向其他所有端口发送该帧。
(xxx物理层)...
(子网A接收端链路层)子网中的其他所有端都收到了该帧,比对目的MAC若不匹配则丢弃,匹配则上交网络层。
(假设2)不同子网间 传递网络层数据报的链路层工作流程
(子网A主机端网络层)根据IP数据报中的目的IP和子网掩码判断目的主机##是否在同一子网。
(子网A主机端网络适配器控制器)获取由高层协议生成并存储在内存中的IP数据报,将其封装成链路层帧,帧字段未全部完成。
##否在同一子网
(子网A主机端链路层)查找 ARP table 中是否存在(IP数据报)目的IP与其MAC地址映射,若无进行一个ARP更新流程;
(子网A主机端链路层)查找 ARP table ,填写目的MAC,完成其他帧字段。
(子网A主机端链路层)发送链路层帧到达子网中的链路层交换机。
(xxx物理层)...
(子网A链路层交换机链路层)检查新到来的链路层帧,查询 switch table,若没有对应源MAC的 MAC - Port 选项,则更新;
(子网A链路层交换机链路层)查询 switch table 中是否存在对应目的MAC的 MAC - Port 选项,若无则向其他所有端口发送该帧。
(xxx物理层)...
(子网A接收端链路层)子网中的其他所有端都收到了该帧,比对目的MAC若不匹配则丢弃,匹配则上交网络层。
(xxx物理层)...
(xxx物理层)...
(因特网路由器C链路层)比对目的MAC,匹配则上交网络层,不匹配丢弃。
(因特网路由器C网络层)拆解链路层帧,检查IP数据包目的IP,进行一个路由转发流程。
(因特网路由器C链路层)重新封装IP数据报,填写源MAC为本路由器发送端口MAC,填写目的MAC为下一跳路由器接收端口MAC。
(xxx物理层)...
(xxx物理层)...
(xxx链路层)...
(子网B网关路由器网络层)获取链路层帧,拆解帧获取IP数据报,判断目的IP是否在同一子网,若不在则丢弃。
(子网B网关路由器网络适配器物理传输)发送链路层帧到达子网中的链路层交换机。
(实例1)链路层交换机
(实例2)以太网
(实例3)虚拟局域网
(实例4)数据中心网络