1 导论

  • 节点(nodes):主机和路由器(网桥和交换机也是)
  • 链路(links):沿着通信路径,连接相邻节点通信信道(有线链路、无线链路、局域网共享性链路)
  • 帧(frame):第二层协议数据单元,封装数据报

IP数据报分组在不同的链路上以不同的链路协议传送,路由器根据要打出的端口确定封装的协议,例如从以太网接收的数据报转发到WLan打出

1.1 链路层服务

  • 成帧,链路接入
    • 将数据报封装到帧中,加上帧头帧尾
    • 共享性介质需要首先获得信道访问权再进行传输
    • 帧头使用MAC物理地址来标示源和目标地址
  • 相邻两个节点完成可靠数据传递
    • 传输层完成该工作
    • 在光纤这类低出错率的线路上很少使用(每一帧都来回确认是否有错误,但出错率本身很低,代价太大)
    • 无线链路上链路层和传输层都实现了可靠性(无线链路出错率很高,不做确认上层的代价就会非常大)
  • 流量控制:相邻节点发送和接收方节点的速度匹配
  • 错误检测:信号衰减和噪声引起
  • 差错纠正:接收端不通过重传检查和纠正bit级错误
  • 全双工和半双工:链路可以双向传输,但一次只能传输一个方向

1.2 适配器通信

  每个主机上都有以太网卡或802.11网卡等,实现了链路层和相应的物理层的功能。网络适配器接到主机的总线上

2 CRC循环冗余校验

3 多点访问协议

  • 两种类型的链路
    • 点对点连接的网络:拨号访问PPP,以太网交换机和主机之间的点对点链路
  • 广播式的链路
    • 传统以太网
    • HFC上行链路
    • 802.11无线局域网

多个站点使用同一个信道,如果多个站点同时发送信息会导致冲突,会收到多个信号的叠加,信息将会是错误的

理想的多路访问协议:如果广播信道速率为Rbps,有M个节点发送时,每个节点以R/M的平均速率发送

3.1 媒体访问控制协议

MAC(媒体访问控制协议)不是mac物理地址,基本有3类方式

  • 信道划分:把信道划分成小片(时间、频率、编码)
  • 随机访问:信道不划分,允许冲突,检测冲突后恢复
  • 依次轮流:节点依次轮流,但数据量大的节点使用较长的时间

随机访问 纯ALOHA:有帧立刻发送,冲突就冲突了,信道利用率17.5%,很垃圾

随机访问 CSMA(载波侦听多路访问):侦听到信道空闲就发送整个帧,如果信道忙就推迟发送,也有问题,可能对方已经发了,还没传到我这,我以为没人发我就发了,这也能冲突

随机访问 CSMA/CD(冲突检测,以太网):

  • 发送前侦听信道,如果信道空闲则发送,忙则等待到空闲再发送
  • 发送过程中若没有检测到冲突则成果,检测到冲突放弃发送并尝试重新发送
  • 发生冲突的节点必须发送强化冲突信号,通知所有站点信道发生了冲突
  • 如果放弃,适配器进入指数避退状态,第m次失败,适配器随机选择{0,1,2,…,2m-1}中一个值K,等待K*512位时后再开始侦听并准备发送

随机访问 CAMA/CA(冲突避免,无线局域网):不冲突不一定代表发送成功,例如A和B同时给C发送数据,但A和B有格挡,导致A不知道有冲突,B也不知道有冲突,但C接受失败

  • 发送方侦听信道,如果信道空闲则直接发送,如果收到一个返回值ACK则说明发送成功
  • 发送方侦听信道,如果信道忙,则随机选择一个值,并在信道空闲时递减该值,递减到0后如果信道空闲则发送整个帧,如果没有收到ACK则增加回退值并重新进行递减

4 LANs 局域网

  • 32 bit IP地址
    • 网络层地址
    • 前n-1跳:用于使数据报到达目的IP子网
    • 最后一跳:到达子网中的目标节点
  • LAN(MAC/物理/以太网)地址:
    • 用于帧从一个网卡传递到另一个网卡(物理网络)
    • 48bit MAC地址固化在适配器的ROM,有时也可以通过软件设置
    • 理论上MAC地址全球唯一

4.1 网络地址和mac地址

  • IP地址和MAC地址的作用不同
    • IP地址是分层的,实现路由聚集,减少路由表;IP地址完成网络到网络的交付
    • mac地址是平面的,网卡生产时只给网卡一个唯一标识,用于区分网络内部不同的网卡,可以完成物理网络内部的节点到节点的数据交付
  • IP和MAC分离的好处
    • 网卡坏了IP不变,只需要绑定到另一个网卡的MAC地址
    • 物理网络还可以使用其他上层的网络协议,如IPX
  • MAC地址由IEEE管理和分配,制造商从IEEE购入MAC地址

4.2 LAN和ARP

  • 在LAN上的每个IP节点都有一个ARP(Address Resolution Protocol)表
  • ARP表:包括LAN节点IP/MAC地址的映射 <IP address; MAC address; TTL>

从一个LAN路由到另一个LAN的例子

  • R为网络上的路由器,R上有两个ARP表,分别对应两个LAN的地址映射关系
  • 源主机A发送数据报到目标主机B,网络层:源IP111.111.111.111,目标IP222.222.222.222
  • A->R:第一跳时它的源mac为74-29-9C-E8-FF-55,查ARP目标MAC为E6-E9-00-17-BB-4B
  • R->B:第二跳时它的源mac为1A-23-F9-CD-06-9B,查ARP目标MAC为49-BD-D2-C7-56-2A
  • 每一跳网络层源IP和目标IP都不变,但每一跳mac都在通过查ARP表变化

4.3 以太网

  • 以太网帧的结构
    • 前导码:用来同步接收方和发送方的时钟频率,使接收方调到发送端的时钟,按照发送端的时钟接收发来的帧
    • 地址:6字节源MAC地址,目标MAC地址
    • 类型:指出高层协议(大多数情况下是IP协议)
    • CRC:在接收方校验
  • 以太网:无连接、不可靠的服务,使用二进制退避的CSMA/CD介质访问控制形式

4.4 交换机

  • 链路层设备:扮演主动角色(端口执行以太网协议)
    • 对帧进行存储和转发
    • 对于到来的帧,检查帧头,根据目标MAC地址进行选择性转发
    • 当帧需要向某个网段转发时,使用CSMA/CD进行接入控制
    • 通常一个交换机需要一个独立网段
  • 透明:主机对交换机的存在可以不关心
    • 通过交换机相联的各节点如同直接连接
    • 有MAC地址,无IP地址
  • 交换机(switch)实现多路同时传输,A到A’传输数据,则瞬时开关打开端口1和4
    • 主机有一个专用和直接到交换机的连接
    • 交换机缓存到来的帧
    • 对每个帧进入的链路使用以太网协议,没有碰撞,全双工
      • 每条链路都是独立的碰撞域
      • MAC协议在其中的作用弱化了

4.5 路由器和交换机

  • 都是存储转发设备
    • 交换机:链路层设备(检查链路层头部)
    • 路由器:网络层设备(检查网络层头部)
  • 都有转发表:
    • 交换机:维持交换表,按照MAC地址转发,2层设备
    • 路由器:维护路由表,执行路由算法
      • 拓扑构建网络
      • 对广播分组做限制
      • 需要配置网络地址(子网前缀)
      • 三层设备,速率低