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层设备
- 路由器:维护路由表,执行路由算法
- 拓扑构建网络
- 对广播分组做限制
- 需要配置网络地址(子网前缀)
- 三层设备,速率低