本文已参与「新人创作礼」活动,一起开启掘金创作之路。
链路层服务
链路层的具体实现
网卡间通信
说明:
发送端只是增加 差错检测比特 ,并实现可靠数据传输和流量控制;
接收端才是 检测差错,并实现可靠数据传输和流量控制,提取数据包交付上层。
差错检测与差错纠正比特(Error-Detection and-Correction ,EDC)
因特网的运输层和网络层也提供了有限形式的差错检测,即因特网检验和。链路层的差错检测通常更复杂,并且用硬件实现。差错纠正类似于差错检测,区别在于接收方不仅能检测帧中出现的比特差错,而且能够准确地确定帧中的差错出现的位置(并因此纠正这些差错)。
(差错检测和纠正服务通常也由运输层提供)
说明:
1、D:数据,要保护的数据不仅包括从网络层传递下来需要通过链路传输的数据报,而且包括链路帧首部中的链路级的寻址信息、序号和其他字段。
2、EDC:差错检测和纠正比特
在传输数据中检测差错的3种技术:奇偶校验(它用来描述差错检测和纠正背后隐含的基本思想)、检验和方法(它通常更多地应用于运输层)和 循环冗余检测(它通常更多地应用在适配器中的链路层)。
奇偶校验码
说明:
1、1比特奇偶校验:(只能用于检测奇数位差错)
发送方: 通过选择不同的校验比特可以使得d+1比特(初始信息加上一个校验比特) 中1的总数是偶数或是奇数。
接收方: 接收方只需要数一数接收的d + 1 比特中1的数目即可。如果在采用偶校验方案中发现了奇数个值为1的比特,接收方知道至少出现了一个比特差错。更精确的说法是,出现了奇数个比特差错。
但如果出现偶数个比特差错,将导致一个未检出的差错,在突发差错的情况下,使用单比特奇偶校验保护的一帧中未检测出差错的概率能够达到50%。(需要更健壮的差错检测方法!)
2、二维奇偶校验:(检测奇数位差错、部分偶数位差错) 即从行与列两个方向来保证d+1比特的列(行)中的 1、0是偶数个的! 同样,它只能检测 奇数位差错,以及部分 偶数位差错!
校验和(Checksum)
循环冗余校验码(CRC)
也成为多项式编码,因为该编码能够将要发送的比特串看作为系数是0和1一个多项式。
比特模式是由发送方和接收方共同协商的!
多路访问控制(MAC)协议
说明:
1、点对点链路:
点对点链路(point-to-point link)由链路一端的单个发送方和链路另一端的单个接收方组成。
2、广播链路:
它能够让多个发送和接收节点都连接到相同的、 单一的、共享的广播信道上。这里使用术语“广播”是因为:当任何一个节点传输一个帧时,信道广播该帧,每个其他节点都收到一个副本。以太网和无线局域网是广播链路层技术的例子。
广播链路中的多路访问控制(MAC)协议
如何协调多个发送和接收节点对一个共享广播信道的访问? 这就是多路访问问题(multiple access problem)。
解决方法:使用多路访问控制(MAC)协议,即节点通过这些协议来规范它们在共享的广播信道上的传输行为。
在各种各样的网络环境下需要多路访问协议,包括有线和无线接入网,以及卫星网络。
碰撞(冲突)问题: 因为所有的节点都能够传输帧,所以多个节点可能会同时传输帧。当发生这种情况时,所有节点同时接到多个帧;这就是说,传输的帧在所有的接收方处碰撞(collide) 了。通常,当碰撞发生时,没有一个接收节点能够有效地获得任何传输的帧;在某种意义 下,碰撞帧的信号纠缠在一起。因此,涉及此次碰撞的所有帧都丢失了,在碰撞时间间隔中的广播信道被浪费了。
例子: 上课的时候,老师在讲课,台下的学生们也在说话,这样大家都听不清楚,即所有的帧都丢失了!
MAC协议分类
说明:也被称作信道划分协议、随机接入协议、轮流协议
时分多路复用(TDM)和频分多路复用(FDM)、码分(CDM): 是两种能够用于在所有共享信道节点之间划分广播信道带宽的技术。
说明: 1、TDM:将时间划分为时间帧,并进一步划分每个时间帧位N个时隙。然后把每个时隙分配给N个节点中的一个。无论何时某个节点在有分组要发送的时候,它在循环的TDM帧中指派给它的时隙内传输分组比特。通常,选择的时隙长度应使一个时隙内能够传输单个分组。
吸引力:它消除了碰撞而且非常公平!,每个节点在每个帧时间内得到了专用的传输速率R/N bps。 缺陷:节点速度被限制于R/N bps 的平均速率,即使它是唯一要被发送的;其次节点必须总是等待它在传输序列中的轮次(等着什么时候到它说话)
2、FDM:TDM在时间上共享广播通道,而FDM将R bps 信道划分为不同的频段 (每个频段有R/N带宽),并把每个频率分配给N个节点中的一个。
FDM有TDM同样的优点和缺点:避免了碰撞,十分公平;限制了一个节点只能使用R/N的带宽,即使它是唯一一个需要被发送的。
补充:第三种:码分(CDM),对每个节点分配一种不同的编码,然后每个节点用它唯一的编码来对它发送的数据进行编码。
信道划分MAC协议
随机访问MAC协议
说明:涉及冲突的每个节点反复地重发它的帧(也就是分组),到该帧无冲突地通过为止。(但是当一个节点经历一次碰撞时,它不必立刻重发该帧。 相反,它在重发该帧之前等待一个随机时延。)
时隙ALOHA
最简单的随机接入协议
如果没有碰撞,该节点成功地传输它的帧,从而不需要考虑重传该帧。(如果该节点有新帧,它能够为传输准备一个新帧。)
如果有碰撞,该节点在时隙结束之前检测到这次碰撞。该节点以概率p在后续的 每个时隙中重传它的帧,直到该帧被无碰撞地传输出去。
优点: 当某节点是唯一活跃的节点时 (一个节点如果有帧要发送就认为它是活跃的),时隙ALOHA允许该节点以全速R连续传输。时隙ALOHA也是高度分散的,因为每个节点检测碰撞并独立地决定什么时候重传。 (然而,它需要在节点中对 时隙 同步):引入ALOHA、CSMA协议——不需要这种同步(不分时隙)
ALOHA
非时隙、完全分散的协议(纯ALOHA)
在时隙和纯ALOHA中,一个节点传输的决定独立于连接到这个广播信道上的其他节点的活动。 特别是,一个节点不关心在它开始传输时是否有其他节点碰巧在传输,而且即使有另一个节点开始干扰它的传输也不会停止传输。 在我们的鸡尾酒会类比中,ALOHA 协议非常像一个粗野的聚会客人,他喋喋不休地讲话而不顾是否其他人在说话。作为人类,我们有人类的协议,它要求我们不仅要更为礼貌,而且在谈话中要减少与他人“碰 撞”的时间,从而增加我们谈话中交流的数据量。
说明:ALOHA就是很不礼貌,很野蛮,就算别人在说话自己也要说!
载波监听与碰撞检测
具体而言,有礼貌的人类谈话有两个重要的规则: 1、说话之前先听。如果其他人正在说话,等到他们说完话为止。在网络领域中,这被称为载波侦听(carrier sensing),即一个节点在传输前先听信道。如果来自另一 个节点的帧正向信道上发送,节点则等待直到检测到一小段时间没有传输,然后开始传输。
2、如果与他人同时开始说话,停止说话。在网络领域中,这被称为碰撞检测(collision detection),即当一个传输节点在传输时一直在侦听此信道。如果它检测到另一个节点正在传输干扰帧,它就停止传输,在重复“侦听-当空闲时传输”循环之前等待一段随机时间。
即:请求传输节点和正在传输节点都要侦听信道!
以上两个规则即是:载波监听多路访问协议(CSMA)和 具有碰撞检测的CSMA(CSMA/CD)
CSMA(载波监听多路访问协议)
注意:虽然可以监听,但仍有可能发生碰撞!
广播信道的端到端信道传播时延(channel propagation delay)(信号从一个节点传播到另一个节点所花费的时间)在决定其性能方面起着关键的作用。该传播时延越长,载波侦听节点不能侦听到网络中另一个节点已经开始传输的机会就越大。
传播时延对载波监听有影响!导致最后还是有可能发生碰撞。
CSMA/CD(具有碰撞检测的载波监听多路访问协议)
之前的CSMA,节点没有进行碰撞检测,即使已经出现了碰撞,还会继续传输它们的帧。
当某节点执行碰撞检测时,一旦它检测到碰撞将立即停止传输。
说明:CSMA/CD(Collision Detection 碰撞检测)应用于以太网,
CSMA/CA(Collison Avoidance 碰撞避免)应用于802.11无线局域网。
局域网(LAN)
MAC地址(46位,8位一组)
说明:MAC地址,48位,8个比特一组,分成6组,中间用-连接
说明:MAC地址也被叫做LAN地址、物理地址。,没有两块适配器具有相同的地址!
IP地址是有层次的,当人搬家时,该地址都必须改变,而MAC地址具有扁平寻址结构,无论人到哪里该号码都不会变化。
MAC地址是身份证号,是一直跟着你的,而IP地址是邮编号(是主机、路由器接口的地址)是不会随着你变的,当你搬家的时候,MAC地址不会变,但IP地址会变!
ARP:地址解析协议(将逻辑地址映射为物理地址)
ARP,在同一个局域网中,通过目的接口的IP地址,确定其MAC地址!
局域网中的每个IP结点(主机、路由器)维护一个表!
链路层寻址:从一个LAN路由到另一个LAN
注意:这里的目的MAC地址:是路由器接口的网卡(NIC,网络适配器)的MAC地址!!!!
在电脑(主机)的接口以及路由器的接口,都配置了NIC(网卡),实际上MAC地址,是你的网卡的地址,一个接口既有IP地址又有MAC地址,MAC地址跟着网卡一起,IP固定于某个IP地址。
变为:
说明:IP数据报中存的是源、目的IP地址;而链路层帧中存的是源、目的MAC地址,源、目的MAC地址都可能改变,要根据当前IP数据报的位置来确定,最后的目的MAC地址一定是目的IP地址的物理设备地址。
以太网(ETHERNET)
以太网:物理拓扑
以太网CSMA/CD算法
说明:二进制指数退避,就是要让网卡等待一定的传输延迟时间(取决于连续冲突的次数m)
以太网帧结构
以太网标准
以太网交换机(switch)
说明:路由器是网络层设备,用于IP数据报的转发、路由;交换机属于链路层设备,用于转发链路层帧。
交换表
交换机:自学习
交换机互联
说明:某个交换机(网桥)的转发表只放它所连接的设备的MAC地址和其对应的端口号。
交换机vs.路由器
说明:
泛洪(Flooding)是交换机使用的一种数据流传递技术,将从某个接口收到的数据流向除该接口之外的所有接口发送出去
计算机网络——完整案例分析
说明:先通过交换机再通过路由器,注意:交换机只起着交换的作用(转发表-MAC地址与端口),之后再传给路由器(路由表(选路)、转发表(转发))到达下一个路由器再继续。