数据链路层和局域网
WAN:网络形式采用点到点链路
- 带宽大,距离远(延迟大)
- 贷款延迟积大
- 如果采用多点连接方式
- 竞争方式:一旦冲突代价大
- 令牌等协调方式:在其中协调节点的发送代价大
点到点链路的链路层服务实现非常简单,封装和解封装
LAN一般采用多点连接方式
- 连接节点非常方便
- 接到共享型介质上(或网络交换机),就可以连接所有其他节点
多点连接方式网络的链路层功能实现相当复杂
- 多点接入:协调各节点对共享型介质的访问和使用
- 竞争方式:冲突之后的协调
- 令牌方式:令牌产生,占有和释放等
一些术语
- nodes:主机和路由器是节点(网桥和交换机也是)
- links:沿着通信路径,连接各个相邻节点通信信道的是链路
- 有线链路
- 无线链路
- 局域网、共享性链路
- frame:第二层协议数据单元帧,封装数据报
数据链路层负责从一个节点通过链路将(帧中的)数据报发送到物理相邻节点
链路层:上下文
数据报(分组)在不同的链路上以不同的链路协议传送:
- 第一跳链路:以太网
- 中间链路:帧中继链路
- 最后一跳:802.11 (无线局域网通用的标准)
不同的链路协议提供不同 的服务(比如在链路层上提供( 或没有)可靠数据传送)
传输类比
- 从Princeton到Lausanne
- 轿车: Princeton to JFK
- 飞机: JFK to Geneva
- 火车: Geneva to Lausanne
- 旅行者=数据报datagram
- 交通段=通信链路 communication link
- 交通模式=链路层协议 : 数据链路层和局域网 protocol
- 票务代理=路由算法 routing algorithm
链路层服务
成帧,链路接入
- 将数据报封装在帧中,加上帧头、尾部
- 如果采用的是共享性介质,信道接入获得信道访问权
- 在帧头部使用"MAC"(物理)地址来标示源和目的
- 不同于IP地址
在相邻两个节点完成可靠数据传递
- 第三章内容
- 在低出错率的链路上(光纤和双绞线电缆)很少使用
- 在无线链路经常使用:出错率高
- Q:为什么在链路层和传输层都实现了可靠性
- 一般化的链路服务,不是所有的链路层都提供这些服务,一个特定的链路层只是提供其中一部分的服务
在相邻节点间进行可靠的转发
- 第一章内容
- 在低差错链路上很少使用(光纤,一些双绞线)
- 出错率低,没有必要每一个帧中做差错控制的工作,协议复杂
- 发送端对每一帧进行差错控制编码,根据反馈做相应的动作
- 接收端进行差错控制编码,反馈给发送端(ACK,NAK)
- 在本层放弃可靠控制的工作,在网络层或者是传输层做可靠控制的工作,或者根本就不做可靠控制的工作
- 出错率低,没有必要每一个帧中做差错控制的工作,协议复杂
- 在高差错链路上需要进行可靠的数据传送
- 高差错链路:无线链路
- Q:为什么要在采用无线链路的网络上,链路层做可靠数据传输工作;还要在传输层做端到端的可靠性工作?
- 原因:出错率高,如果在链路层不做无差别控制工作,漏出去的错误比较高;到了上层如果需要可靠控制的数据传输代价会很大
- 不做local recovery工作,总体代价大
流量控制
- 使得相邻的发送和接收方节点的速度匹配
错误检测
- 差错由信号衰减和噪声引起
- 接收方检测出的错误:
- 通知发送端进行重传或丢弃帧
差错纠正
- 接收端检查和纠正bit错误,不通过重传来纠正错误
半双工和全双工
- 半双工:链路可以双向传输,但一次只有一个方向
链路层在哪里实现
在每一个主机上
- 也在每一个路由器上
- 交换器的每个端口上
链路层功能在"适配器"上实现(aka network interface card NIC)或者在一个芯片组上
- 以太网卡,802.11网卡;以太网芯片组
- 实现链路层和相应的物理层功能
接到主机的系统总线上
硬件、软件和固件的综合体
适配器通信
发送方:
- 在帧中封装数据报
- 加上差错控制编码,实现RDT和流量控制功能
接收方
- 检查有无差错,执行rdt和流量控制功能等
- 解封装数据报,将之交给上层