二、链路层和局域网
提供服务:差错检测error detection,correction、共享广播信道sharing a broadcast channel(多路访问multiple access:多通信同时进行同一段链路如何使用)、链路层地址的寻址(十六进制表示)、可靠数据传输,流量控制
1.数据链路层概述及服务
1.术语:
节点node:主机和路由器
链路link:沿着通信的路径上连接相邻两个节点通信的信道,包含有线链路、无线链路。
帧frame:对网络层数据报传下来进行封装
数据链路层传送的数据报从一个节点通过一段链路传到相邻的节点。
不同的链路可能使用不同数据链路层协议。
2.链路层服务:
a.分帧(封装成帧)framing、信道接入(信道访问)link access
链路层收到数据报后会封装成帧,加上帧头(识别从谁到谁)和帧尾(校验)
共享的通信媒介制定一个规则来判断谁进行传输数据
数据链路层传输的地址:MAC(媒体访问控制)地址,位于帧头,识别源节点和目的节点
b.相邻节点间的可靠传输reliable delivery between adjacent nodes
低比特错误链路很少使用(光纤)
高比特链路:无线链路
c.流量控制flow control
相邻的接收节点保持一致(控制发送速率不能高于接收速率)
d.差错检测error detection
由于信号衰减、噪声干扰产生,接收方进行
处理:忽略、发送方重传
e.差错纠正error correction
接收方发现错误并找到发生位置0改1或1改0,不需要发送方
f.半双工和全双工Half-duplex and full-duplex
单工:数据传播固定且单向
双工:同时进行双向传播
半双工:可以双向,但同时只能有一个在传播
链路传输就是半双工的
3.适配器通信adaptors communicating
数据链路层上的通信,就是两个节点的适配器之间进行通信。
链路层所有协议都是在适配器(NIC网络接口卡)中实现的。
a.发送方:
数据报封装成帧,添加帧头、帧尾、差错校验比特、流控制等
b.接收方:
判断帧是否出错、与发送方配合进行可靠数据传输、双方配合进行流控制
对帧进行解封装(去帧头,帧尾,只要数据报),然后向上交互给网络层
适配器是半自治的(主机电源让网卡进行工作),主要负责链路层和物理层

2.差错检测和纠正
1.基本概念
D:被保护的数据部分(数据报),包含帧头
EDC:帧尾(差错检测比特),越大检测效果越好

2.常用方法
a.奇偶校验parity checking
**单比特奇偶校验:**单比特奇校验odd(1的个数是奇数个)偶校验even(1的个数是偶数个)
奇校验:1的个数是奇数parity bit=0 1的个数是偶数p b=1

二维奇偶校验:
既能检错也可能纠错(单比特可以知道奇数位的错误,只有二维才能检测错误的位置)
偶校验:

b.因特网校验和Internet checksum
检测出错误的存在,检测比特翻转(传输层)
发送方:看成16比特的序列(16比特每一段),校验和加上16个比特,并将校验和放到UDP的校验和域里
接收方:计算校验和,将两个校验和对比。
c.CRC循环冗余校验
链路层
将D当成二进制的数,选择r+1比特的G(生成多项式),r是D后面加的位数。
R的选择:(D,R)能被G整除。
使用于ATM、HDCL


进行除法时使用异或(1-1=0,0-1=1,1-0=0),顶头算
2rD÷生成多项式G的余数就是R
生成多项式都是固定的
能检测少于r+1位的比特错误和任意的奇数个比特错误
3.多路访问协议multiple access protocols
1.链路
a.点对点链路point-to-point
通常是有线的,应用于拨号接入电路dial-up access,主要存在于以太网的交换机和主机之间。
b.广播链路broadcast
信道和通信媒介都是共享的,应用于传统的以太网,HFC(混合光纤同轴电缆),802.11无线局域网
2.多路访问协议MAC
1.针对的情况
单一的共享广播信道。
节点间可能同时会有多个传输,就会产生碰撞collision(同时收到难以拆分出来源)。
2.介绍
是一个分布式的算法,解决节点如何共享信道,哪个节点在某个时间如何使用单一的信道。
没有带外信道(控制信息也必须在共享的信道里进行传送)。
3.理想的多利访问协议
假设最大传输速率是R bps。
一个节点可以以速率R进行传送。当有M个节点同时传送,每个的平均速率为R/M。
完全分布式的协议:不需要一个中央控制节点,没有时钟同步。
4.生活中使用的MAC协议
三类:
a.信道划分/分割的channel partitioning
信道分片(按照时隙、频段、码分),将信道资源平均分配,每份是节点专用的(不会因为不使用就增加别的节点的速率)
1.TDMA时分的多路访问:
轮流进行信道访问,每个节点都分配固定长度的时隙(每个时隙就是每个数据包传输的时间),没使用的时隙就是空闲的。

TDM时分复用:信道分成n个时隙,每个用户一个时隙,低占空比(很少发送数据)效率低
2.FDMA频分多路访问:
分配固定宽度的频段,没传输的时候也是空闲的。
b.随机访问random access
允许有碰撞的,让网络能从碰撞的情形下恢复。
随机访问协议:节点之间没有主控制,速率为R。解决碰撞的方式一般使用延时重传(过一会再传)。
例子:时隙slotted的ALOHA协议,ALOHA协议,载波监听的多路访问控制CSMA,CSMA/CD带有碰撞检测的,CSMA/CA带碰撞恢复的
1.时隙的ALOHA协议
假设:网络中帧的大小相同,时间被划分成相等大小的时隙,每个时隙传一帧,节点只能在时隙的开始才能传输数据,所有节点都是时分同步的(没有时差),多个节点出现在一个时隙中所有节点都能检测到碰撞。
操作:当节点要发送帧时,会在下一个时隙发出去,没有碰撞就正常的发送到下一个节点,发生碰撞节点就会对帧进行重传(以概率p)

只有自己的时候就传出去了。
**优点:**单一活跃节点可以全速传送,高度分散(每个节点都各自检测碰撞和重传),结构简单
**缺点:**可能产生碰撞,可能会有空闲时隙,可以在少于时隙的时间内就实现了碰撞的检测,需要时隙同步
**效率:**指的是成功发送的时隙占总时隙的比值(长期占比)
N个节点,概率p进行发送,长时间的效率只有37%
2.纯粹pure(unslotted)的ALOHA协议
不需要时隙同步,节点有数据传就立刻传,碰撞概率会上升
效率:18%
3.载波监听多路访问CSMA
发送帧之前需要监听信道,信道空闲才会发出去。
只能减少碰撞。
信道空闲就传送整个帧,信道忙就延迟推送。
黄白相间就是冲突的地方。

4.CSMA/CD(具有冲突检测)
使用IEEE802.3协议。
首先监听CSMA,然后再没有传完一个帧就能检测到冲突,然后实现信号的终止。
在有限局域网wired LANs容易实现:1.检测信号强度,比较传输与接收的信号是否相同。2.周期的过零点检测。

A的冲突检测:
c.轮流协议“taking turns”
更多的节点会占用更长信道的使用时间。(提高利用率)
轮询polling:主节点master依次访问从节点slaves是否有信息要发
缺点:可靠性(master损坏就完了)

令牌传递token passing:令牌token(各个节点轮转),构成环状,发送数据就要抓住令牌,没数据就路过令牌。令牌原来是1,要发数据就换成0,然后把数据接上。目标节点也可以加入环中,当令牌到目标节点,目标节点把数据copy下来,然后当令牌绕回起始节点被自己吸收。
token-bus协议:IEEE 802.4
token-ring协议:IEEE 802.5

4.以太网Ethernet简介
以太网提供不可靠无连接的服务
1.两个标准
a.DIC Ethernet V2(第一个规约)
b.IEEE的802.3标准
可以将802.3局域网简称为以太网。
802.11是无线局域网。
2.数据链路层的两个子层
1.逻辑链路控制LLC子层(透明的)
有IEEE 802.2协议

作用不大了(TCP/IP使用的是DIC Ethernet V2)。
2.媒体接入控制MAC子层(与接入到传输媒体有关的内容)
5.适配器adapter
网络接口板又称通信适配器adapter或网络接口卡NIC或网卡
**功能:**串行/并行装换,数据缓存,操作系统上安装设备驱动程序,实现以太网协议

6.LAN局域网
1.MAC address
局域网上每个适配器都有独特的地址。

LAN(MAC/物理/以太网)地址:48位,写于适配器的ROM上,目的是实现在一个网络内部网卡和网卡之间帧的传输。
**32bitIP地址:**网络层地址,前n-1跳使数据报到达目的IP子网,最后一跳到达子网的目标节点。
MAC地址由IEEE管理和分配。
MAC地址是平面地址,可以进行移动(网卡连接到其他网络)
IP地址有层次,不能移动,依赖于子点连接,(前缀与子网相同)
2.ARP地址解析协议Address resolution protocol:
LAN的每个IP节点都有一个ARP表(包含节点的IP、MAC地址、TTL(地址映射失效的时间,通常20min))
同一个网络中:当A要发送给B(IP已知)帧时,但B的MAC地址不在:
A会广播(broadcast)含有B的IP的ARP查询包,LAN中的所有节点都会收到查询包
B接收到ARP查询包后,回复A自己的IP地址(通过A的MAC地址),以帧的形式
A在自己的ARP表中缓存IP-to-MAC地址映射关系,直到信息超时
软状态soft state:定期刷新维持系统状态。但是定期刷新周期之间维护的状态和原有系统不一致。
ARP是自己创建的表现,无需管理员干预。
3.路由到其他LAN
A->R->B
R有两个ARP表,对应两个LAN。
源主机的路由表中发现下一跳是111.111.111.110,APR表中发现MAC地址是E6-E9-00-17-BB-4B
A创建数据报datagram,源IP:A,目的IP:B
A创建一个链路层的帧,目的MAC地址是R,帧中包含A到B的IP数据报
A的适配器发送帧,R的适配器接收帧,R提取出IP数据报,发现目的地是B
R通过ARP获得B的MAC地址,然后R创建帧包含从A到B的IP数据报发送到B
7.以太网
1.星型拓扑
目前最主流。
连接选择:hub或switch

2.以太帧Ethernet Frame结构
以太网的帧结构和PPP的帧结构是两种。
发送方的适配器在以太网帧中封装IP数据报(或其他网络层协议数据单元)

前导码Preamble:7byte 10101010 (7个10101010)+ 1byte 10101011,用来同步接收方和发送方的时钟频率,使接收方的始终可以调节到发送端的时钟,从而按照发送端的始终接收帧
地址:12byte(目标MAC地址+源地址),若适配器接收到具有匹配上目标地址(=本站MAC地址)或广播地址(ARP数据包)的帧,然后将帧中的数据传递给网络层协议,否则适配器就忽略该帧。
类型Type:指出更高层的协议(大多数是IP、也支持Novell IPX、AppleTalk)
CRC:接收方校验,如果校验错误,丢弃错误帧。
3.以太网帧的格式
1.以太网V2的MAC帧格式

数据字段:MAC客户数据字段,46(最小长度64-首尾18)~1500字节
当传输媒体的误码率为 1×108 时,MAC 子层可使未检测到的差错小于 1×1014。
当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。
无效的MAC帧:数据字段的长度与长度字段不一致、帧的长度不是整数字节、FSC查出有差错、数据字段长度不在46~1500之间。
MAC帧:64~1518。对于无效的MAC帧就直接丢弃。
4.无连接不可靠的服务
无连接:帧传输前,发送方和接收方没有握手handshaking。
不可靠:接收方适配器不发送ACK或NACK给发送方
递交给网络层的数据报流可能会有gap
如果app使用TCP协议,gap就会被补上,否则就会看到gap
5.以太网的CSMA/CD算法
没有时隙。NIC(网卡)如果监听到其他NIC在发送就不发送:载波监听carrier sense。
发送时,适配器监听到其他适配器在发送就放弃当前帧的发送:冲突检测collision 。
冲突后尝试重传,重传前适配器等待一个随机时间:随机访问random access
过程:适配器获取数据报,创建帧,发送前监听信道,发送中冲突检测,发送方检测到冲突,放弃并发送一个Jam信号,所有听到冲突的适配器也是如此。如果放弃,适配器进入指数退避状态。
Jam Signal:使其他发送方明确知道碰撞,48bit
Bit time:以太网10Mbps/ms,对K=1023,大约等50ms
指数退避Exponential Backoff:目标:适配器试图适应当前负载,在一个变化的碰撞窗口中随机选择时间点尝试重发。首次碰撞在(0,1)选择K,延迟K*512位时。第m次失败,在(0,1,…,2m-1)选K,延迟K×512,多次碰撞后K在0~1023中选择一个数,16次不成功就丢弃帧并报告。
高负载:重传窗口时间大,减少冲突,但等待时间长
低负载:站点等待时间少,但冲突概率大


特性:使用CSMA/CD协议的以太网不能进行全双工通信只能进行双向交替通信(半双工通信)。
每个站在发送数据后的一小段时间内都可能碰撞。
发送的不稳定性使以太网的平均通信量小于最高数据率。
争用期:最先发送数据帧的站,发送后2τ(争用期或碰撞窗口)时间就知道是否碰撞,过了时间没有碰撞就不会发生。
以太网取51.2μs为争用期长度,对于10Mb/s的以太网,争用期可发512bit(64字节),若前64字节无冲突就不会有冲突。
最短有效帧长:以太网规定最短有效帧长为64字节,凡长度小于64字节的帧都是无效帧。
二进制指数类型退避算法:发生碰撞的站在停止发送数据后要推迟一个随机时间才能再发送数据。一般取争用期2τ。定义重传次数K,K<=10,从**(0~2k-1)中选一个数r,重传所需时延就是r倍的基本退避时间**。当重传16次仍不成功就丢弃帧,并向高层报告。
强化碰撞:发数据的站发现碰撞后就立即停止发送数据,再发送若干比特的人为干扰信号,让所有用户都知道已经发生碰撞。

帧间最小间隔:9.6μs,一个站检测到总线开始空闲后,需等待9.6μs才可以发送数据,目的是为了让接收到数据的站的接收缓存清理,做好下一帧接收准备。
CSMA/CD效率:tprop:LAN最远两个节点传播时间 ttrans:最大帧传输时间

6.10 Base T 和100 Base T
10/100Mbps速率也被称为“fast ethernet”
T表示双绞线twisted pair
星型拓扑:节点连接到HUB上
节点和hub之间最大距离是100m
circuit
hub本质上是物理层的中继器。
从一个端口收,转发到所有其他端口。速率一致。没有帧的缓存。hub端口上没有CSMA/CD机制:适配器检测冲突。提供网络管理功能。
工作原理:
a.peer to peer
b.点到多点通信
功能:整形放大Forwarding

8.Manchester编码(物理层)

在10Base T中使用。每一个bit的位时中间有一个信号跳变。允许在接收方和发送方节点进行时钟同步(不需要同步全局的时钟)。10Mbps使用20M带宽,效率50%。
9.Gbit Ethernet千兆以太网
采用标准的以太帧格式。允许点对点链路和共享广播信道。物理编码:8b10b编码。在共享模式,继续使用CSMA/CD MAC技术,节点间需要较短距离来提高利用率。全双工千兆可用于点对点链路。
8.hubs和switches
1.互联局域网设备:
中继器repeater(物理层)、转换器(信号转换的中继器)、集线器(物理层):中继器的一种形式,也称多端口中继器、交换机(链路层):网桥的一种形式,也称多端口网桥
2.hub集线器
主干backbone集线器互联多个网段LAN segment(允许一个站点发送的网络范围)。
集线器可以扩展节点之间的最大距离。
单个片段碰撞域(segment collision domain)形成大的片段碰撞域(以广播的形式传播,使每个局域网就是一个碰撞域)。
不能将10BaseT和100BaseT网络连接到一起。
5-4-3-2-1规则:
5:最多允许5个网段(最多五段链路),每个网段长度最大100m
4:最长的信道上允许连接4个集线器或中继器(最长链路上最多4个中继器)
3:5个网段中最多有三个网段连接用户设备
2:最高层的中继器上的两个网段不能连接用户
1:上述组建一个大型冲突域,最大站点数1024,网络直径2500m
3.交换机switch
hub是收到帧后向所有出口转发出去(广播),switch是根据帧的MAC地址进行转发。
1.链路层设备
对帧进行存储和转发。
检查到来的帧头并根据目标MAC地址进行选择性转发。
当帧需要网段进行转发,需要CSMA/CD进行接入控制。
2.透明transparent
主机不会感知到交换机的存在
3.即插即用plug and play,自学习self-learning
自动运行,交换机无需配置,自动更新表
4.自学习
交换机有交换表判断每条链路去往每个主机(含有主机MAC、到MAC的接口、时戳TTL)
可以在60min删除表中过时的条目(倒计时)。
交换机通过学习得到哪个主机对应哪个端口(网段)
记录发送方MAC和进入的端口的关系,添加到转发表
5.过滤filtering/转发forwarding
过滤:网段内主机之间的交互,交换机不会接收帧
转发:网段之间主机的交互,交换机转发到对应端口
交换机收到帧:
1.记录进入的链路和主机的MAC地址
2.使用目标MAC地址对交换表进行索引
3.
如果表中已知转发的地点,就直接转发到对应接口。
如果未知位置,就撒送到除自己以外的所有接口(广播)。

6.专用dedicated通道
交换机有许多接口。主机有直连到交换机的路径。全双工运行时没有碰撞。(hub实现不了)
交换switching:A到A‘、B到B’可以同时传输,没有碰撞。
7.交通隔离traffic isolation
交换机安装installation将子网分成网段。
交换机过滤包packets。
同网段的帧经常不转发到其他网段。
网段变成了分离的碰撞域(碰撞域中只收到对应的消息)。

8.更多交换机
直通交换cut-through switching:帧从输入端转发到输出端,而不首先收集整个帧(延迟轻微减少)。(直接转发)
网桥只能存储后转发
10/100/1000Mbps的共享/专用的接口组合。
9.交换机vs路由器
1.都是存储转发设备。
路由器:检查网络层头指针 交换机:检查数据链路层头指针
2.路由器有路由表,实现路由算法
3.交换机有交换表,实现过滤转发算法
4.网桥
网桥一般只能连接两个网段而且必须先存储帧然后才能转发。

5.总结


9.VLAN虚拟局域网
1.简介
VLAN是由一些局域网网段构成的与物理位置无关的逻辑组。(网段具有某些共同的需求,每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的工作站属于哪一个VLAN),只是局域网给用户提供的一种服务,不是新型局域网

**B1向VLAN2**工作组内成员发送数据时,**B2、B3**将会收到广播的信息,A1、C1都不会收到信息。
虚拟局域网限制接收广播信息的工作站数,使网络不会因为传播过多网络信息而引起性能恶化。
2.以太帧格式
虚拟局域网协议允许以太网帧的格式中插入一个4字节的标识符,称为VLAN标记tag,指明哪个局域网。

3.100BASE-T以太网(快速以太网)
高速以太网:速率超过100Mb/s
双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE 802.3的CSMA/CD协议。
特点:全双工方式下无冲突发生,因此不使用CSMA/CD协议。MAC帧的格式仍然是802.3标准规定的。保持最短帧长不变,但将网段的最大电缆长度减小到100m。帧间时间间隔从9.6μs改为0.96μs。
4.三种不同的物理层标准
100BASE-TX(使用 2 对 UTP 5 类线或屏蔽双绞线 STP)、100BASE-FX(使用 2 对光纤)、100BASE-T4(使用 4 对 UTP 3 类线或 5 类线)
5.吉比特以太网
允许1Gb/s下全双工和半双工两种方式工作。802.3协议定的帧的格式。半双工需要CSMA/CD协议。10BASE-T和100BASE-T兼容。
物理层:1000BASE-X:基于光纤通道的物理层 1000BASE-SX/LX/CX SX/LX/CX:短波长/长波长/铜线
1000BASE-T :使用 4对 5 类线 UTP
当使用全双工模式时,不使用载波延伸和分组突发

10吉比特以太网:帧格式完全相同。保留了802.3的以太网最小和最大帧长。只使用光纤为传输媒体。只存在全双工模式。工作范围成为城域网和广域网,实现了端到端的以太网传输。
好处:成熟技术、互操作性好、广域网中使用以太网价格便宜、统一的帧的格式简化操作管理
10.PPP
1.点对点数据链路控制
一个发送方、一个接收方、一条链路:比广播链路简单。无媒体访问控制。无需明确的MAC寻址。(拨号链路dialup link、ISDN线)
点对点协议:PPP、HDLC(高级数据链路控制协议 )
2.数据链路层

传输单位是帧,早期的数据通信协议叫做通信规程procedure。
3.三个基本问题
1.封装成帧
封装成帧framing就是在一段数据的前后添加首部和尾部,就构成一个帧。
首尾就是作为帧定界。

MTU就是最大传输单元(数据报的最大传送量)
控制字符进行帧定界:
2.透明传输
问题:
解决:1.发送方如果发现帧中出现“SOH”或“EOT”就在前面插入转义字符“ESC”(十六进制编码1B)
2.字节填充/字符填充:接收端将转义字符删除
3.如果转义字符出现在数据中,应该在转义字符前再加一个转义字符。

3.差错控制
传输中会产生比特差错:1变0,0变1
误码率BER:相当长的一段时间,传输错误的比特占总比特的比率。与信噪比有关。
为保证可靠性,必须加差错检测的措施。
4.PPP协议

用户到ISP就是用PPP协议。
1.组成:
将IP数据报封装到串行链路(封装成帧)的方法、链路控制协议LCP、网络控制协议NCP。
2.设计需求:
不可用阶段dead state:物理不可用阶段。PPP都需要从这个阶段开始和结束。
链路终止阶段 termination state:PPP能在任何时候终止链路。(载波丢失、认证失败)通过交换LCP中的报文来关闭链路,关闭后通知网络层进行相应操作并网络层强制关断链路。
1.把包封装成帧packet framing:把网络层的数据报进行封装。可以同时携带多种网络层协议的数据。向上递交分组可以解复用。发送方可以将多个数据报合并成一个帧,向上交互必须把多个数据报解复用。
2.可以实现透明传输bit transparency。数据域可以携带任何形式的比特,直接进行打包。
3.可以检测错误error detection,但不要求对错误进行修复。
4.连接活性connection liveness。检测链路层的故障报告给网络层。
5.可以网络层地址协商network layer address negotiation。PPP必须为网络层提供一种机制(获知以及配置相互的网络层地址)

3.PPP数据帧
标志位Flag:帧的定界符(帧头、帧尾)
地址Address:没用
控制字段control:没用
协议字段protocol:网络层使用的是什么协议(PPP-LCP,IP,IPCP)
信息字段info:传送的数据部分
校验字段:CRC循环冗余检错
特殊字段前加转义字符(01111101)

4.PPP数据控制协议
配置PPP链路,网络层信息。
传输前协商:用户拨号接入ISP,路由器调制解调器进行确认,并建立物理连接。PC机会向路由器发送一系列LCP分组(多个PPP帧,链路控制分组是用来协商的)。分组及其响应选择一些PPP参数,和进行网络层配置。NCP给新接入的电脑分配一个临时IP地址,使PC机成为主机。断网后,NCP释放网络连接,收回IP地址。然后LCP释放数据链路层的连接,最后释放物理层连接。