计算机网络 - 链路层

Overveiw

链路层主要解决了一个两个nodes之间的传输问题. 比如一段路程中, 从火车的一端到另外一端.

链路层的实现

链路层的功能在适配器上实现(Network interface card NIC). 比如802.11网卡

多点访问协议

单个共享的广播型链路, 会有冲突collision, 解决collision大概有三种方案

  1. channel partition
  2. random access
  3. taking turns

Channel partition

有频分以及时分,但是二者都有相同的问题, 就是每个node只有R/N bps. 对于时分来说, 每个node还必须等待.

还有这用叫码分, 就是通过assign a differnet code to each node, 就像不同人使用不同语言说话一样解决collision的问题

Random Access Protocols

这个Protocol之下, each node transmits at the full rate, 当有冲突, 随机重传

Slotted ALOHA

所有的frame都是等长的, 时间被划分成相等的时隙, 每个时隙可以发送一帧, 如果两个或者多个节点在一个时隙传输, 所有站点都能检测到冲突, 会重新随机选择一个时间重传

最好的情况: 信道的利用率为37%

ALOHA

没有时隙的概念, 当有frame需要传输, 马上传输, 这样简单, 但是会导致冲突概率的增加

最好的情况: 信道的利用率为17.5%

CSMA/CD

在传输前先侦听信道, 如果侦听到信道空闲, 传送增高帧, 如果侦听信道忙, 推迟传送. 如果推迟发送, 适配器会进入指数退避状态, 在第m次失败后,适配器随 机选择一个{0,1,2,… 2^m-1}中K,等待K*512位时 ,然后发送

最好的情况: 信道的利用率为100%

Taking-Turns

一种是需要专门的master去分配turn, 这种会带来single point of failure的问题; 另外一种就是分布式的, 通过token-passing Protocol, 但是如果一个node出错了, 也会影响这个channel

Cable Internet Access 线缆接入

线缆接入使用了多点访问协议, 也就是上面讲到的Protocol

这个system是CMTS cable modem termination system

Downstream 下行使用的是广播, 没有collision的问题

Upstream 上行使用的是多路访问

这里, 上行channel被分为多个时隙TDM-like, CMTS会通过MAP的message告诉每个channel什么时候可以用这些时隙. 那么, CMTS怎么知道cable modems有数据需要传输呢? 这个通过cable modems send mini-slot-request frames to the CMTS实现的, 这些mini-slot-request是transmitted in a random access manner so may collide with each other, 然后通过csma/ca类似的方法, 指数退避, 再重新发送

Switched Local Area Network (LAN) 局域网

这里的局域网就不需要用到上面讲的多路访问的技术了, 而是用到更加好的switch交换机实现多路通信

在局域网上, 每个适配器都有一个唯一的MAC地址 (switch不需要MAC地址), 如果是广播, 地址是FF-FF-FF-FF-FF-FF

MAC地址是IEEE管理分配的, 就像social security nubmer一样; 这个跟IP不同, mac地址是跟着适配器不变的

Address Resolution Protocol (ARP)

ARP是IP和MAC地址的对应的表格, 通过IP地址可以找到MAC地址. 一开始这个表格是空的, 所以通过IP地址, 找不到对应的MAC地址, 这时候需要广播, 问这个IP的地址MAC地址是什么, 对应的IP收到之后, 把自己的MAC地址返回.

这个表格跟DNS类似, 不过ARP运行在subnet子网上

这个协议是网络层以及链路层之间的协议

Sending a Datagram off the Subnet

在子网中传输是通过MAC地址的, 但是client sends reqeust to host给的不是host的MAC地址, 而是client所在子网的MAC地址, subnet子网会重新把下一个去的子网的route inerface的MAC找到写到data上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s4WZ0tTE-1685654789745)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4fbaa96b-ff98-4c71-899b-a9023ff46573/Untitled.png)]

如图,

  1. A到B的传输, A创建链路的frame的时候, 目标MAC地址是Router, 这个帧包含A到B的IP数据报;
  2. Router收到frame之后, 把目标MAC地址改为B, 包含A到B的IP数据报

Ethernet 以太网

以太网是目前局域网使用最多的技术. 其发展是通过BUS → CSMA/CD → HUB → SWITCH

传输

以太网帧的结构

发送方适配器在以太网帧中封装IP数据报, 或其他网络层协议数据单元

服务类型

无连接不可靠的服务

Link-Layer Switches

作用是转发和过滤, swtich会有一个swtich table, 记录mac地址, interface, time, 通过这个swtich table, swtich实现转发和过滤功能.

记录的mac地址是发过来的mac地址, 也就是src的mac地址, interface也是src的interface, time是到达swtich的时间. 那么怎么找到destination呢, 首先先看看switch table有没有记录destination的mac地址, 如果有就使用, 如果没有就广播 (避免cycling, 只会在生成树上广播)

swtich table是不需要配置的, self-learning; 对比router, router需要配置

虽然router也有转发的功能, 但是swtich是通过mac而router是通过ip, 而且swtich是子网内部的功能

swtich交换机与router路由器的对比

  • 路由器维护路由表, 执行的是路由算法
  • 路由算法可以避免环路, 无需执行生成树算法, 可以各种拓扑构建网络
  • 对广播分钟做限制
  • 不是即插即用的, 需要配置网络地址(子网前缀)
  • 速率比swtich低

VLANS

一个物理的LAN被虚拟成多个LANs, 也就是一个交换机提供多个局域网

总结

这章讲了链路层的功能, 对于多点访问的需要做冲突避免, 技术包括了channel partition, random access (CSMA/CD), taking turns. 然后讲了局域网, 使用了交换机的技术就变成了点到点的传输, 不需要做冲突避免, ARP (Address Resolution Protocol) 可以让client通过ip地址找到mac地址, 然后具体讲了局域网怎么传数据的, 要记住的是mac地址不是src的mac地址, 而是子网subneet路由的mac地址. 之后介绍了局域网使用的技术, 以太网以及还讲了VLANS

你可能感兴趣的:(计算机网络)