5.1 Introduction
definition
- Link(链路):communication channels that connect adjacent(相邻) nodes along communication path are links,including Wired links & Wireless links
- Frame(链路层帧): Link packet is frame, encapsulates IP datagram(链路层的包)
Link layer Protocols
- Datagram transferred by different link protocols over different links: Ethernet, frame relay (帧中继) , WiFi, etc.(链路层的多样性)
- Each link protocol provides different services,may or not provide reliable data transfer(功能服务多样性)
Sublayer(子层)
LLC (Logical Link Control,逻辑链路控制)
- Reliable delivery (between adjacent nodes)(可靠交付)
- More on wireless links(无线链路)
MAC (Media Access Control,介质接入控制)
- Coordinate the frame transmissions of many nodes if multiple nodes share a medium(共享链路时协调多个节点的帧传输)
Link Layer Service
- Framing(成帧,封装网络层数据报为链路层帧)
- Access Control(链路接入,共享链路时协调帧传输)
- Flow Control(流量控制)
- Reliability Control(可靠交付,包括差错检验和纠正)
Implemented Basic
NIC(network interface card)(网卡)in each and every host
软件组建实现高层链路层功能和响应控制器中断,硬软件的结合
5.2 Error detection & correction
EDC= Error Detection & Correction bits (redundancy) ,EDC字段在帧尾
D = Data protected by error checking, may include header fields
Process
Error detection not 100% reliable! protocol may miss some errors, but rarely(不完全可靠,但不可靠概率较小)
larger EDC field yields better detection & correction(EDC越大,校验越复杂,可靠性越强)
Parity Checking(奇偶校验)
Single Bit Parity(一维奇偶校验)
Detect single bit errors(只能检测一位错误)
Two Dimensional Bit Parity(二维奇偶校验)
Detect and correct single bit errors(一位错误可以检测并纠正,两位不保证能纠正,出现在同一行或者同一列时只能进行检测)
Internet checksum(校验和)
发送方将D作为一个k比特整数序列处理,将k比特整数加起来得到其和取反作为校验和
接收方对包括校验和在内的数据求和并,全为1则认为无错误,出现0则认为有错误(求和并取反的话结果正好相反
CRC (Cyclic Redundancy Check)
模2除法
将普通除法同位的“减”运算改成“异或”运算,即无进位无借位减法
steps
- 发送方和接收方协商一个生成多项式G,其位数为r+1位,最高位只能为1(r自行选定或根据国际标准使用)如G= X4 + X3 + 1表示的是11001,r=4
- 发送方将D左移r位,再按照“模2除法”除以G计算出CRC校验码R,R的位数为r ,并附加在D后
- 接收方将D和R视为一个完整二进制数,按照“模2除法”除以生成多项式G,如果余数为0,则认为没有错误,反之则认为出现错误
example
D = 101110 r = 3 G = 1001
8, 12, 16, 32位生成多项式G已出台国际标准,如
GCRC-32 = 10000010011000001000111011011011
5.3 Multiple access protocols
多路访问问题:协调多个发送和接收节点对一个共享广播信道的访问
Ideal Multiple Access Protocol
- When one node wants to transmit, it can send at rate R(单节点纵享全速率)
- When M nodes want to transmit, each can send at average rate R/M(多节点均分速率)
- Fully decentralized(去中心化,不会因为某个节点故障而崩溃)
- Simple(简单便宜)
Classes
- Channel Partitioning(信道划分)
- Random Access(随机接入)
- Taking turns(轮流)
Channel Partitioning protocols
slot(时隙)
- TDMA(时分多路访问): time division multiple access(将时间划分为时间帧,再将时间帧划分为时隙,将时隙分配给节点)
- FDMA(频分多路访问): frequency division multiple access(将信道的频率区间划分为更小的区间分配给节点使用)
通信信道的频率通常是一个区间而不是一个点
- CDMA-Code Division Multiple Access(码分多址):每个节点分配一种不同的编码用于传输数据)
Random Access protocols
transmit at full channel data rate R.(节点全速率传输)
no a priori coordination among nodes(节点之间的传输无协调,相互独立)
Two or more transmitting nodes ➜ collision(两个及以上节点同时传输时出现冲突)
Slotted ALOHA(时隙ALOHA)
assumptions
- all frames the same size(所有帧大小相等)
- time divided into equal size slots (time to transmit 1 frame)(一个时隙传输一帧)
- nodes start to transmit only slot beginning(帧只在时隙起点开始传输)
- nodes are synchronized(节点时隙同步)
- if 2 or more nodes transmit, all nodes detect collision(碰撞会在时隙结束之前被检测)
operation
- 当有链路层帧需要发送时,等待下一时隙的起点到来
- 如果没有碰撞成功传输
- 如果发生碰撞,则能够在该时隙结束之前检测到此次碰撞,并以概率p在后续的每个时隙起点重传该链路层帧,直至成功传输
pros(优点)
- single active node can continuously transmit at full rate of channel(可以全速率)
- highly decentralized: only slots in nodes need to be in sync(高度去中心化)
- simple(简单)
cons(缺点)
- collisions, wasting slots(出现冲突时浪费时隙)
- idle slots(空闲时隙)
- nodes may be able to detect collision in less than time to transmit packet(低效)
- clock sync(需要进行时钟同步)
efficiency
long-run fraction of successful slots (many nodes, all with many frames to send)
成功发送的概率
Max efficiency = N p ( 1 - p )N -1
Max efficiency = 1/e = 37%
Pure (unslotted) ALOHA(纯ALOHA)
feature
- when frame first arrives transmit immediately(即碰即传)
- collision probability increases(碰撞更多)
efficiency
Max efficiency = p * (1 - p ) 2 ( N - 1 )
Max efficiency = 1/(2e) = 18.4%(比时隙ALOHA更低效)
CSMA(Carrier Sense Multiple Access)(载波监听多路访问)
operation
- 需要传输链路层帧时,先监听信道一段时间,若在该段时间内没有其他传输,则开始传输
- 发生碰撞时,仍继续将正在传输的链路层帧传输完
collisions
- 由于空间上分离会产生检测传播时延(某一节点已经开始传输的进程但其他节点要过一段时间才能够收到此消息)仍会导致碰撞
- 碰撞导致链路层帧无效,传输时间浪费
- 传播时延决定载波监听多路访问的效率
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)(具有碰撞检测的载波监听多路访问)
collision detection
- easy in wired LANs: measure signal strengths, compare transmitted, received signals(有线局域网易于实现,通过信号强度进行判断)
- difficult in wireless LANs: received signal strength overwhelmed by local transmission strength(无线局域网难以实现,信号强度易受影响)
operation
- 需要传输链路层帧时,先监听信道一段时间,若在该段时间内没有其他传输,则开始传输
- 在一个节点传输时,它同时也在监听这个信道,如果检测到有另一节点传输干扰帧,则停止传输,等待一段随机时间后重新回到上一步(指数回退)
collision window(最大碰撞时间窗口)
the largest time to detect the collision = (distance / signal - speed)* 2
该段时间内务碰撞则认为传输成功
exponential Backoff(指数回退)
用于计算碰撞后应等待的时间
- 检测到首次冲突后设置基本等待时间T(对于10Mbits的以太网,一般为51.2μs)
- 设置参数L = 2 ,从 [1,L]中选取一个随机数,记作R,那么退避时间间隔取RT
- 同一链路层帧检测到再次再次发生冲突,L翻倍,重复上述过程
efficiency
tprop = max propagation delay between 2 nodes in LAN(最大传播时延)
ttrans = time to transmit max-size frame(允许传输时间)
efficiency =
efficiency always goes to 1
as tprop goes to 0
as ttrans goes to infinity(无穷)
Taking Turns protocols
寻求信道划分和随机接入之间的平衡
Polling(轮询)
- 依次向主机询问是否需要传输链路层帧,需要则分配传输数量,不需要则跳过
- 消除了碰撞和空时隙,但也引入了询问时延
Token passing(令牌传递)
- 按一定顺序传递令牌,持有令牌且有传输需求的节点能够发送一定数量的链路层帧,没有传输需求则传递令牌给下一节点
- 高效但一个节点的故障可能使整个信道崩溃,或需要引入恢复步骤
5.4 LAN(Local Area Network)
Mac addresses & ARP(地址解析协议)
mac address function
get frame from one interface to another physically-connected interface (same network)(用于物理链路层寻址)
mac address format
- 48 bit address(6字节,通常表示为六对两位十六进制数)
- Manufacturer buys portion (24bit) of MAC address space (to assure uniqueness)(前24比特由公司购买,后24位公司支配,保证唯一性)
mac address portability(移植性,扁平结构)
- can move LAN card from one LAN to another(MAC地址可移植,跟着机器走)
- address depends on IP subnet to which node is attached(IP地址依赖于子网)
Each adapter on LAN has unique LAN/MAC address(每个接口都有唯一的MAC地址)
但交换机没有MAC地址
Broadcast address :FF-FF-FF-FF-FF-FF(广播MAC地址)
ARP table
<IP address; MAC address; TTL>
- Each IP node ( host, router) on LAN has ARP table(保存在主机或路由器上)
- provide IP/MAC address mappings for some LAN nodes(提供局域网上的IP-MAC地址转换)
- TTL (Time To Live): time after which address mapping will be forgotten (typically 20 min)
ARP protocol
- 当目的IP在发送方ARP表中时,发送方直接获取对应的MAC封装成帧
- 当目的IP不在发送方ARP表中时,发送方构造特殊的ARP查询分组,包含发送和接收方IP及MAC地址(接收方MAC此时用广播MAC),在局域网中传送查询分组
- 接收到ARP查询分组的主机或路由器接口检查自身IP地址与ARP查询分组中的目的IP是否相匹配,若不匹配则进行回应,若成功匹配则向查询主机发回包含自己的IP对应的MAC地址的ARP响应分组,查询主机收到ARP响应分组后更新自己的ARP表,再进行正常的封装成帧
ARP是即插即用的,管理员不需要配置ARP表,它通过自己学习更新维护
ARP查询分组和ARP响应分组报文格式相同
Routing to another LAN(跨局域网物理寻址)
- 源局域网内的发送方识别到目的IP地址不在局域网内时,使用路由器的MAC地址封装网络层数据报成帧并发送到路由器
- 路由器在源局域网的接口接收到该帧时,拆封帧头,识别目的IP所在目的局域网,在路由器内交付给目的局域网接口,使用目的局域网接口的ARP获取目的IP对应的MAC地址,将其封装成帧并发往目的局域网内的目的主机
三层交换:支持路由
四层交换:根据会话和应用层信息做出转发决定
Ethernet
用的早,简单便宜,更新过程中速度也跟了上来,挤兑了令牌局域网和ATM
10G以太网
以太网帧格式完全相同
只是用光纤作为传输媒体
全双工,无争用,不适用CSMA / CD
frame structure
- Preamble(前同步码)(8 bytes):前7字节都为10101010,用于将发送方和接受方的接口的时钟同步,第8字节为10101011,用于警告接口重要内容的到来
- Dest MAC address(目的MAC地址)(6 bytes)
- Source MAC address(源MAC地址)(6 bytes)
- Type(2 bytes):用于指示数据字段的网络层协议
- CRC(循环冗余检测)(4 bytes)
feature
- Connectionless(无连接,传输不握手): No handshaking between sending and receiving NICs
- Unreliable(不可靠): receiving NIC doesn’t send ACKs or NACKs to sending NIC (source)(,没有通过差错检验时直接丢弃,不请求重发;通过差错检验不进行任何操作,发送方不清楚接收方是否成功收到)
- unslotted CSMA/CD(使用纯CSMA / CD)
以太网帧丢弃时应用层使用TCP则会请求重传,UDP则任其丢弃,提供有损的数据
Switch
hub(集线器)
哑集线器,只提供物理上的连接,单纯进行数据转发,不进行数据处理或管理
- bits coming in one link go out all other links at same rate(作用于各个比特,放大转发)
- all nodes connected to hub may collide with one another(存在碰撞风险)
- no frame buffering(无帧缓冲区,碰撞了就没了)
- no CSMA/CD at hub: host NICs detect collisions(不支持CSMA / CD)
function
- Store/forward Ethernet frames(存储、转发链路层帧)
- Examine incoming frame’s MAC address, selectively forward frame to one-or-more outgoing(filtering/forward/discard)(检查帧头主动管理数据)
feature
- transparent:Hosts are unaware of presence of switches(主机不知道交换机的存在,只负责接受转发,不修改帧内容)
- plug-and-play, self-learning(即插即用):Switches don’t need to be configured(管理员无需配置)
- switches buffer frames(存在帧缓冲区)
- Ethernet protocol used on each incoming link, but no collisions; full duplex(单独输入链路,无碰撞(每条链路有自己的碰撞域,链路之间没有),全双工)
switch table
<MAC addr; interface; TTL>
self-learning(自学习):
- 交换机表初始为空
- 在接口接收到帧时,在交换表中存储该帧源MAC地址、到来的接口以及当前时间
- 一段时间(老化期)后没有再收到表项对应的帧,则删除该表项
operation:frame filtering/forwarding(帧过滤和转发)
- 交换机表中没有帧目的MAC对应的表项,则向除到来接口外的所有接口转发该帧(泛洪)
- 帧的MAC和到来接口与交换机表中存储的MAC和接口完全匹配(一般是出错或是准备发到路由器的广播帧),直接丢弃该帧
- 帧的MAC与交换机表中MAC匹配但到来接口不匹配,向交换机表中MAC对应的接口转发该帧
交换机可以相互连接
Switch vs. Router
- Both are store/forward(都能存储转发,但路由器根据网络层头部,交换机根据链路层头部)
- Both have forwarding tables(都有转发表,但路由表通过算法计算,交换机表通过泛洪学习)
- 交换机即插即用,路由器需要配置
- 交换机寻址扁平,路由器寻址分层
- 交换机网络拓扑限制为一棵生成树(防治广播帧的循环),路由器网络不受限制(对第二层的广播风暴提供了防火墙保护)
VLAN(Virtual LAN)
Gateway(网关):
embed internetwork packets in local packet format or extract them(进行网络间的协议转换)
route (at internetwork level) to next gateway(在因特网水平上路由至下一网关)
why we need VLAN
- 同一交换机下的主机缺乏流量隔离,尽管在现实中需要
- 用户发生变动时更改物理布线费劲
- 为了能充分利用接口数量较多的交换机(可能比起用更多台接口数量少的交换机成本更低)
feature
VLAN在物理局域网基础设施上定义
- traffic isolation(流量隔离,不同VLAN之间等效于连接在不同的交换机)
- dynamic membership(可以为VLAN动态分配物理接口)
- forwarding between VLAN(VLAN之间的转发需要通过路由)
VLAN spanning multiple switches(跨交换机VLAN通信)
对于每个需要跨交换机通信的VLAN在两台交换机上都定义一个属于该VLAN的接口并将其连接
在两台交换机上都定义一个特殊干线端口(trunk)可以允许通过多个VLAN的帧
另一交换机接收到帧时通过帧头中的tag识别把不同的VLAN
IEEE 802.1Q VLAN frame format
Tag Protocol Identifier(标签协议标识符)(2 byte)
Tag Control Info(标签控制信息)(12 byte)
共同作用标识VLAN