数据链路层:节点到节点
功能:
给网络层提供很好的服务接口.2.处理运输错误3.控制数据流量
三个主要工作:framing, error control, and flow control
还有:link access(MAC协议),reliable delivery(可靠交付),half-duplex and full-duplex,
Error detection, error correction
向网络层提供服务:
- Unacknowledged connectionless service(Ethernet) 2. Acknowledged connectionless service(802.11无线LAN)3. Acknowledged connection-oriented service
硬件:链路层的主体在网络适配器(network adapter)也称为网络接口卡(NIC).内核为链路层控制器(芯片),实现链路层大多数服务.因此有硬件实现
软件:链路层的软件部分实现更高层次的链路功能:如网络层接受数据报,装配链路层寻址信息,激活控制器硬件.还有中断控制…
软硬件结合体
Framing:How can we break up a bit stream into frames?
1.Character count(一个字符指定帧长)
2.Flag bytes with byte stuffing or character stuffing(帧两端添加flag,帧中的flag前面加反义ESC)
3.Starting and ending flags with bit stuffing(两端加01111110,帧中连续5个1后加个0)
4.Physical layer coding violations(HL代表1,LH代表0,HH和LL表示flags)
Error Control: Acknowledgement, Timer, Sequencing
Flow Control: Feedback-based flow control, Rate-based flow control
Error correction codes: Hamming codes, Binary convolutional codes, Reed-Solomon and Low-Density Parity Check codes
纠错能力不高,要想纠错更多,需要更多的纠错码,不如简单的检测然后重传
Error detection codes: Parity, Checksums, Cyclic redundancy codes
接受方的检测和纠错能力称为前向纠错(FEC)
Parity:奇偶数校验. Interleaving of N parity bits detects burst errors up to N
Checksum: Internet checksum 需要相对小的分组开销(TCP和UDP校验和只用16bit)
为什么运输层使用校验和而链路层使用CRC?
因为运输层差错检测用软件实现,所以采用简单快速的检测方案.
链路层硬件,能快速执行复杂的CRC操作
CRC:循环冗余检测编码也称多项式编码
生成多项式(G):协商一个r+1的比特模式,最高位为1.
发送方:在数据段中附加r个附加比特位,使得能用模2算术被G整除.
接受方:除G,余数为非0,除差错
CRC-12 =x12+x11+x3+x2+x1+1
CRC-16 =x16+x15+x2+1
CRC-CCITT =x16+x12+x5+1
Ethernet 32-bit CRC x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1
8比特CRC用于保护ATM信元中的5bit字节的首部.
每个CRC标准都能检测小于r+1bit的突发错误.在适当的假设下,长度大于r+1以1-0.5^r的概率被检测到.每个CRC标准都能检测任意奇数个比特差错.
多路访问协议MAC:
划分为三种类型:信道划分协议(channel partitioning protocol) 随机接入协议(random access protocol)和轮流协议(taking-turns protocol)
信道划分协议:
时分多路复用(TDM):将时间分为时间帧( time frame),并进一步划分N个时隙(slot),然后分配给N个节点.节点在指定的时隙中传输分组.时隙长度为能够传输单个分组.
缺点:
1.即使唯一传输节点,平均速率仍为R/N 2.节点必须等待它的时隙
频分多路复用(FDM):将信道划分为不同频段,每个频段R/N带宽.但是也限制了只能使用R/N带宽
码分多址(CDMA):每个节点分配一种不同的编码
随机接入协议:
时隙ALOHA(slotted ALHOA)
帧长Lbit,时间划分为长度L/Rs的时隙,节点需要同步,节点只能在间隙开始传输帧,碰撞能在间隙结束前检测到.
产生碰撞以概率p(0-1)在后续的每个间隙重传
碰撞浪费2.由于概率传输策略会节制传输.
经研究最大效率为37%
Pure ALOHA:
能在任意时刻发送,碰撞后以概率p重传,否则等待一个帧的传输时间在以p的概率重传
效率只有时隙的一半.
载波侦听多路访问(CSMA,Carrier Sense Multiple Access Protocols)
载波侦听:侦听信道,随机等待一段时间在侦听
1-persistent CSMA:probability 1
等待不忙,立刻开始传输
Non-persistent: Less greedy
等待随机时间在侦听
p-Persistent: Used with slotted systems. If you find the channel idle during the current slot, you transmit with probability p, and defer until next slot with probability 1-p . p=1 is not really good, p=0 makes you really polite
具有碰撞检测的CSMA(CSMA/CD):
碰撞检测:在传输中监听信道,如果检测到另一个节点传输干扰帧,则停止传输.并发送阻塞信号.让其他传输中的适配器意识到这次碰撞(可能发送的少对方侦听不到碰撞)
由于传播时延可能侦听不到.
指数后退:发生碰撞随机等待一段时间,等待K*512bit时间即2 ح.
1st collision, slots selected from 0, 1;
2nd collision, slots selected from 0, 1, 2, 3;
3rd collision, slots selected from 0, 1, … 7;
10th collision, slots selected from 0, 1, …,1023 1023即最大
Contention slot must be 2 ح. 征用期即碰撞窗口期
如何检测碰撞:
适配器边发送数据边检测信道上的信号电压(其他适配器的信号能量)的变化情况,以便判断自己在发送数据时其他站是否也在发送数据
Collision-Free Protocols:
The contention period contains N slots. If station k wants to transmit a frame, it transmits a 1 during the kth slot. The lowest-numbered station goes first. It is a reservation protocol.
轮流协议:
轮询协议(polling protocol):
主节点以循环的方式轮询每一个节点.主节点依次向节点发送报文告诉能够传输的最大帧数,节点1传输完这些节点后,主节点向节点2发送
缺点:1.轮询时延2.主节点故障导致信道不可操作
令牌传递协议(token-passing protocol):
令牌即特殊目的的帧在节点之间以某种固定的次序进行交换.当一个节点收到令牌时,仅当它要发送时,才持有令牌,否则向下一个节点转发.
缺点:一个节点故障可能导致整个信道崩溃.或者一个节点忘记释放令牌,必须调用某些恢复步骤使得令牌返回到循环中.
两大Lan技术:1.以太网LAN 2.LAN技术由令牌传递技术组成以及光纤式分布数据接口FDDI(过时了):
Limited-Contention Protocols:轻负载,用竞争,负载比较重,用无冲突
Contention:负载比较轻
Collison-free :负载比较重
解决方法:在时间槽中动态规整编号.
The first group gets to try it again during the next slot (k+1). If no collisions occur then, the second group gets a try during the slot after that (k+2). Otherwise, the first group is split up again.
比如:The Adaptive Tree Walk Protocol
Stations are located as the leaves of a binary-tree. Protocol assigns contention slot dynamically to stations who has frame to send. Searching algorithm is depth-first from top to bottom. If a collision occurs, the search continues recursively with the node’s left and right children
MAC地址:节点的适配器具有链路层地址,也称LAN地址和物理地址
MAC地址长度为6字节,没有两个适配器具有相同的地址,具有扁平结构.
广播地址:FF-FF-FF-FF-FF-FF 48个连续的1组成的字符串.
保持各层独立
LAN是为任意网络层协议设计的,而不为IP和因特网.需要支持其他协议
成为独立的构建模块,不同的层次需要有它们自己的寻址方式
ARP协议:在网络层地址和链路层地址之间进行转换
发送节点确定目的地址IP的MAC地址,使用ARP模块将在相同LAN上的任何IP地址作为输入,输出MAC地址.
与DNS不同:
DNS为因特网任何地方的主机解析主机名.
ARP只为同一子网的节点解析IP地址.否则返回错误.
存在ARP表:IP到ARP的映射. TIL生存期值指示从表中删除的时间
如果ARP表中不存在,则用ARP解析这个地址
发送节点构造ARP分组(包含发送节点和接受节点的IP和MAC地址)
步骤:
1.发送ARP查询分组,使用MAC广播地址:询问子网所有其他节点
2.子网中所有节点的适配器接受,并将ARP分组上传到节点的ARP模块,检查IP是否匹配
3.匹配的节点给查询节点发送回响应ARP分组
4.查询节点更新ARP表,并发送IP数据报
如果不在同一子网,则通过ARP获取路由器的MAC地址
以太网:
符合IEEE Standard 802.3 采用1-persistnet1 CSMA/CD
Manchester Encoding 曼切斯特编码
注:局域网先有产品才有标准.不想OSI
集线器hub:物理层设备,类似广播向所有其他接口传输比特,同时从两个端口接受bit就会发送碰撞.
Padding: you got it…凑46
Checksum: Calculated over the data field. CRC-based.
所有以太网技术提供无连接、不可靠服务.通过CRC检验时不会发送确认帧,不通过也不会发送否定帧.
所以以太网简单便宜.因此数据报文可能有间隙,
以太网效率=1/(1+5d_prop/d_trans )
通过转发器(repeater)能够得到更长的运行距离
在基于交换机的以太网LAN中不会发生碰撞,依次没必要使用MAC协议
交换机:对节点是透明的,即插即用设备,不需要用户管理员等干预
过滤(filtering)是交换机决定一个帧应该转发到某一接口还是将其丢弃.
转发(forwarding)是决定一个帧应该导向哪个接口,并把帧接口移动到这些接口的交换机功能.
依靠交换机表:节点的MAC,到达该节点的接口,节点表项在表中的时间.
没有对应表项,向所有端口进行广播
从相同网段而来,则丢弃
从不同网段,向相应接口转发
自学习(self-learning)
1.初始表为空2.接受到每一入帧,在交换表中存储源地址MAC、接口、当前时间
3.在一段时间(老化期)后,没有接受到以该地址为源地址的帧则删除
VLAN
VLANs are based on specially-designed VLAN-aware switches. To set up a VLAN-based network, the administrator decides how many VLANs there will be, which computers will be on which VLAN, and what the VLANs will be called.
Decouples the logical topology from the physical topology. A VLAN is logically a broadcast domain.
How to configure VLANs:
Each port is assigned a VLAN number, only works if all machine on a port belong to the same VLAN.
Each MAC address is assigned a VLAN number, the bridge or switch has a table listing the 48-bit MAC address of each machine connected to it along with the VLAN that machine is on.
Each layer 3 protocol or IP address is assigned a VLAN number, the bridge or switch has to examine the payload field of the frame, the IP address can be used to identify the machine, most useful when many machines are notebook computers that can be docked in any one of several places.
Combinations of the above methods.
The 802.3 (legacy) and 802.1Q Ethernet formats:
VLAN Identifier: 12 bits,最多4096个VLANs