vb.netserialport数据接收不完整_计算机网络之数据链路层基础详解

注:本文是以makdown形式直接复制的,文章较长,知乎有些文字形式不太支持。为了方便也可以看这篇,目录比较清晰便于观看:

计算机网络之数据链路层基础概念详解_weixin_44282063的博客-CSDN博客​blog.csdn.net
9ae515047c8023c15de28bfd084749be.png

概览

8aecaec46efacb287e8cd1ffb653f7fe.png

数据链路层思想相关概念术语数据链路层在网络中的地位
我们知道,两个主机之间的数据 传输,总是在一段一段的链路上传送的,也就是说,在两个相邻结点之间(主机和路由器之 间或两个路由器之间)传送数据是直接传送的(点对点)。这时就需要使用专门的链路层的 协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧 (framing),在两个相邻结点间的链路上“透明”地传送帧(frame)中的数据。每一帧包括数据 和必要的控制信息(如同步信息、地址信息、差错控制等)。

05be1ca5df88e64edb8e248a47b3d88e.png


H2发送数据时,从协议的层次上看,数据的流动如图3-1(b)所示。主机H1和H2都有完整的 五层协议栈,但路由器在转发分组时使用的协议栈只有下面的三层冬数据进入路由器后要 先从物理层上到网络层,在转发表中找到下一跳的地址后,再下到物理层转发出去。因此, 数据从主机Hi传送到主机H2需要在路径中的各结点的协议栈向上和向下流动多次,如图中 的浅灰色箭头所示。(自上而下对数据封装过程,自下而上对数据解封过程)。
当我们研究数据链路层时可以进一步简化,形成一条简化链路

509631e135ec5d6bb3e7db7099925432.png


H1的链路层一R1的链路层一R2的链路层一R3的链路层一H2的链路层

  • 相关概念及术语
    结点:主机,路由器
    链路:将把沿着通信路径连接相邻节点的通信信道称为链路(Hnk)(物理通通道,双绞线、光纤等)。
    数据链路:两个结点间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上构成数据链路。
    帧:链路层的协议数据单元(PDU),封装网络层数据报。

数据链路层提供的服务
举个例子,假设网络层是公司老板,然后数据链路层是秘书,物理层是员工,老板想要将一份文件传给公司的另一个老板,那么老板先将文件传给秘书,秘书将文件传给员工,员工将这份文件传给对方公司的秘书,然而这个员工(物理层)是个大迷糊,传送过程中将文件丢失,对方秘书就不上交文件让员工返回寻找丢失的文件。所以,链路层起到的作用就是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改成为逻辑上无差错的数据链路。成帧及透明传输

  • 几乎所有的链路层协议都在经链路传送之前,将每个网络层数据报用 链路层帧封装起来。一个帧由一个数据字段和若干首部字段组成,其中网络层数据报就 插在数据字段中。(一个帧也可能包括尾部字段,然而我们把首部字段和尾部字段合称 为首部字段。)
  • 在一段时数据的前后分别添加首部和尾部,这样就构成以一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别 帧的开始和结束。
    帧的结构如图:

a3c193dff0e1826fa7b4679ee2450948.png
  • 为了提高帧的传输效率, 应当使帧的数据部分长度尽可能地大于首部和尾部的长度。但是,每一种链路层协议都规定 了帧的数据部分的长度上限——最大传送单元MTU (Maximum Transfer Unit)。
  • 首部和尾部都提供很多重要的控制信息,他们的一个重要作用就是帧定界(确定帧的界限)。
  • 透明传输
    透传的设备是个黑箱子,进来是什么出去也是什么透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。透传的设备是个黑箱子,进来是什么出去也是什么。
  • 实现透明传输的成帧方法
    1.字符或字节填充的定界方法

549205e5fafaf09fa6242f135598ec09.png


控制字符 SOH (Start Of Header)放在一帧的最前面,表示帧的首部开始。另一个控制字符EOT (End Of Transmission)表示帧的结束。请注意,SOH和EOT都是控制字符的名称。它们的十六进制 编码分别是01 (二进制是00000001)和04 (二进制是00000100)。SOH (或EOT)并不是 S, O, H (或E, 0, T)三个字符。
当数据在传输中出现差错时,帧定界符的作用更加明显。假定发送端在尚未发送完一 个帧时突然出故障,中断了发送。但随后很快又恢复正常,于是重新从头开始发送刚才未发 送完的帧。由于使用了帧定界符,在接收端就知道前面收到的数据是个不完整的帧(只有首 部开始符SOH而没有传输结束符EOT),必须丢弃。而后面收到的数据有明确的帧定界符 (SOH和EOT),因此这是一个完整的帧,应当收下。
如果数据部分出现EOF就会产生问题:

4d7b28e608fec906d4a12d1734867f9c.png


如图所示,部分数据就被视为无效进而丢弃,接收的数据就会有损失,一个很好的解决方法就是数据中如果出现“soh”“eot”,就在其前面插入一个转义字符“ESC”(其十六进制编码是 1B)。

a45d863fed27d15684a55f4d32cf8dfe.png


接收端的数据链路层在将数据送往网络层之前删除插入的转义字符。如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符。当接收端收到连续的两个转义字符时,就删除其中前面的一个。
转义字符你可以理解为程序中的'//',也就是注释,编译器编译程序时,//字符后面的内容就不执行。
2.比特填充的标志法
以01111110作为一帧的开始和结束标志F字段在发送端,只要发现有 5 个连续 1,则立即填入一个 0。
接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除。
假如数据中出现和标志字段01111110一样的内容,则在第5个1后加入0。

5f947a38ed65e8b4703003da6d72a70a.png


3.字符计数法(较容易出错)

3a0095e0dea266a2e5091d422905dd63.png


为什么说易错,假如第一个帧的第一个字节本来应是5但是出错变成了4,那么第一个帧就变为第4个字符,那么第二个帧原来第一个字节应是5,但却因为第一个帧的第一个字节出错所以变为4,,,,那么整个数据就出错。所以这种法不经常使用。

可靠交付(reliable delivery)
当链路层协议提供可靠交付服务时,它保证无差错地经 链路层移动每个网络层数据报。链路层的可靠交付服务通常是通过确认和重传取得的。链路层可靠交付服务通常用于易产生高差错率的链路,例如无线链路,其目的是本地(也就是在差错发生的链路上)纠正一个差错,而不是通过运输层或应用层协议迫使进行端到端的数据重传。然而,对于低比特差错的链路,包括光纤、铜 轴电缆和许多双绞铜线链路,链路层可靠交付可能会被认为是一种不必要的开销。由于这个原因,许多有线的链路层协议不提供可靠交付服务。流量控制

  • 流量控制(flow control)。链路每一端的节点都具有有限容量的帧缓存能力。当接收节点以比它能够处理的速率更快的速率接收分组时,这是一个潜在的问题。没有流量控制, 接收方的缓存区就会溢出,并使帧丢失。与运输层相似,链路层协议能够提供流量控制, 以防止链路一端的发送节点淹没链路另一端的接收节点。举个例子,接受方相当于一个门,而数据相当于人,而门只有那么大,如果然太多一下子都想从门中进入,那么门容不下就只能溢出。也就是缓冲区溢出,发生丢包现象。
  • 传输层与链路层传输机制比较
    数据链路层流量控制机制 : 如果接收方发现接收不了 , 就不再回复 确认帧 ; 确认帧 是 不包含数据的 控制帧。
    传输层流量控制机制 : 接收方给发送方发送窗口公告 ; 窗口公告就是接收方的接收缓冲区大小 , 让发送方不要发送太多数据 。
  • 流量控制方法
    1.停止等待协议
    停止等待协议 : 发送端 每发送 完一帧 , 就停止发送 , 等待 接收方 确认 , 收到 接收方 的确认信息后 , 再发送下一帧 。
    过程如图所示:

0ae9fbb0661551ad1ae0f7c234e0d965.png


① 发送端 : 发送端发送 M1信息给接收端
② 接收端 : 接收端收到 M1 信息后 , 向发送端回送 M1 确认帧
③ 发送端 : 发送端继续 发送 M2信息给接收端 ;
④ 接收端 : 接收端 收到 M2信息后 , 向发送端回收M2确认帧 ;
缺点:可以看到,每次方发送数据都缺需要接收方确认且返回确认帧,效率较低。
2.滑动窗口协议
相关术语
发送端:
发送窗口 : 发送端维持一段连续的帧序号 , 这一串帧序号称为发送窗口。
不等待确认帧持续发送 :发送窗口发送一帧数据后 , 不用等待确认信息 , 可以继续发送发送窗口的后续信息 。
收到确认帧滑动 : 发送端接收到确认信息后 , 滑动窗口就会向前滑动一位 。
接收端:
接收窗口 : 接收端维持一段连续的帧序号 ; 这一串帧序号称为接收窗口。
接收信息 : 接收端收到信息后滑动窗口向前滑动一位 , 并回送确认帧 。
实现机制
① 发送窗口 : 有 6个帧序号 0 ~ 5 ;
② 接收窗口 : 有 1个 ;
③ 发送数据 : 发送端发送0序号帧给接收端 ;
④ 接收数据 : 接收端接收到0序号帧 , 接收端回送确认0号帧 数据给发送端 , 接收端的接收窗口向前移动一位;
⑤ 发送窗口移动 : 发送端接收到0序号帧确认信息 , 发送端的发送窗口向前移动一格 , 继续发送 ;
⑥ 持续发送 : 如果发送端 没有收到 0序号帧确认信息 , 会继续发送 1,2,3,4,51,2,3,4,5 序号帧给接收端 ;、
过程如图所示

c04b2d0c31a6658549831854f94a7ac0.png


发送窗口0向接收窗口0发送0序号帧

fe923a071612e675af9f004da65aba7d.png


接收窗口0接收后,返回确认零号帧并向前推进一格

e5382bcf9bc351db71b4e451da420fb5.png


发送窗口接收到确认0号帧后,发送窗口向前推进一格。
滑动窗口大小
① 停止等待协议 : 发送窗口 1, 接收窗口 1;
② 后退 NN 帧协议 ( GBN ) : 发送窗口 >1 , 接收窗口1 ;
③ 选择重传协议 ( SR ) : 发送窗口>1 , 接收窗口>1 ;
数据链路层 流量控制中 , 发送过程中的 发送窗口 和 接收窗口 大小都是固定值 ;
滑动窗口解决的问题
① 滑动窗口 解决 流量控制 问题 : 发送方 接收到 确认帧 后 , 才能向前移动 发送窗口 , 如果发送端 一致没有收到确认帧 , 其发送窗口一直不动 , 卡死在原位置 , 无法发送后续帧 , 该过程就是对流量的控制 ;
② 滑动窗口解决可靠传输 问题 : 发送方如果 一直没有收到接收方的确认帧 , 超过等待时间 , 发送方就会重传一次 ;

差错检验
现实的通信链路都不会是理想的。这就是说,比特在传输过程中可能会产生差错:1可 能会变成0,而0也可能变成1。这就叫做比特差错。比特差错是传输差错中的一种。

  • 奇偶校验
    校验结构(偶校验为例)

f565baacb3c33908f7de17148ddd5a73.png


如图描述了一个偶校验的方案,单个校验 比特被存放在一个单独的字段中。在偶校验方案中,发送方只需包含一个附加的比特,选择它的值,使得这d+1个比特(初始信息加上一个校验比特) 中1的总数是偶数(也就是检错出偶数个错误)。
举例:
如果一个字符S的ASCII编码从低到高依次为1100101采用奇校验.在下述收到的传输后字符中,哪种错谋不能检测?
A. 11000011 B. 11001010 C. 11001100 D.11010011
题目中为7个校验位,采用奇校验,需要在低位前加一个校验比特,在四个选项中,加上校验比特1后,ABC都为偶数说明采用奇校验检测出了错误;D项1仍为奇数位错误无法检测。
由上可以简单理解为,奇校验为原始数据加上1个校验位后若为偶数,说明发生了错误,同理偶校验为同样的原理。
缺陷:
只能检验奇数个错误,检测能力为50%。举个例子(奇校验)加以说明。
11011(加上校验位)->110111(奇数位)->发生奇数位错误(比如第一个1变为零)->有效位变为偶数->检测出错误。
11011(加上校验位)->110111(奇数位)->发生偶数数位错误(比如第一个1变为零,第二个1变为0)->有效位变为仍为奇数->错误未检测出。

  • CRC循环冗余检测
  1. 简单描述

178ca0315e03f61924e0c1a44e4e73b5.png


发送端: 要传的数据除以生成的多项式,得到一个冗余码(FCS检验序列)。然后向另一个接收端最终发送的数据是原始数据+冗余码。
接收端:接收到的数据除以生成的多项式,若余数为0,则判定无错,否则接收。
2.模2算术法
所有CRC计算采用模2算术操作,在加法中不进位,在减法中不借位。这意味着加法和减法是相同的,而且这两种操作等价于操作数的按位异或(XOR)。因此,举例来说:
1011 XOR 0101 = 1110(同0异1)
1001 XOR 1101 = 0100
3.冗余码的计算
多项式(除数)加0,看多项式的阶数r,则加r个0.
阶数的计算和转换:
例如,用多项式 P(X) = X^3 + X^2 + 1表示上除数P=1101 (最高位对应于X^3最低位对应于X^0)。多项式 P(X)称为生成多项式。现在广泛使用的生成多项式P(x)有以下几种:
CRC-16 = X^16+X^5 + X^2+ 1
CRC-CCITT = X^16+X^12+X^5 + 1
CRC-32 = X^32 +X^26 + X^23 + X^22 + X^16 +X^12 + X^11 +X^10 + X^8 +X^7+X^5 + X^4 + X^2+X + 1
4.计算过程
举例:

43c72fae17e26409784a68eba0befbba.png


如图,G为多项式,共有3阶,所以D(原始数据后加3个0),利用模2算术法(同0异1)计算。最终得到R为冗余码。最终发送的数据则为D+R=101110 011

  • 海明码https://www.bilibili.com/video/BV19E411D78Q?p=22

多路访问协议(介质访问控制)

传播数据使用的两种链路

  • 点对点链路
    点对点链 路(point-to-point link)是由链路一端的单个发送方和链路另一端的单个接收方组成。
    简单的例子就是两个人打电话,通信内容只有两个人知道,其他人不能干扰和知晓。
    应用:PPP协议、用于广域网
  • 广播链路
    广播链路(broadcast link),它能够让多个发送和接收节点都连 接到相同的、单一的、共享的广播信道上。这里使用术语“广播”是因为当任何一个节点传输一个帧,每个其他节点都接受到一个拷贝。
    这个可以联想到在商场里的很多安保人员之间用对讲机通信,当一个对讲机讲话时,其他人员都能听到。讲话期间其他人不能讲话。
    应用:早期的总线以太网、无线局域网、常用于局域网

为什么引入介质访问控制?
因为所有的节点都能够传输帧,两个以上的节点可能会同时传输帧。当发生这种情况时, 所有节点同时接到多个帧;也就是说,传输的帧在所有的接收方处碰撞(collide)了。通常, 当碰撞发生时,接收节点没有一个能够获得任何有效的传输帧;在某种意义下,碰撞帧的信 号纠缠在一起。因此,涉及此次碰撞的所有帧都丢失了,在碰撞时间间隔中的广播信道被浪 费了。显然,如果许多节点要频繁地传输帧,许多传输将导致碰撞,广播信道的大量带宽将被浪费掉。
简单地说就是为了互不影响对方的传输。静态信道划分(信道划分协议)
什么是静态信道划分?
在用户通信之前预先把信道按照时间(时隙)和空间(频率等)来将信道进行划分,使得通信过程中不会发生碰撞。

  • 多路复用技术
    把多个信号组合在一条物理信道上进行传输,数多个计算机或终端设备共享新到资源,提高信道利用率。
    过程如图所示:

203d7cc5af06d45396df08094a68d39d.png
  • 时分多路复用(TDM)

38a3fb17a416e27105786890ba72c448.png

f81d3fc5b248b1bb5ca1e3544e2ee00e.png


将时间划分为一段段等长的时分复用帧(TDM 帧)。每一个时分复用的用户在每一个TDM帧 中占用固定序号的时隙,所有用户轮流占用信道。
注意这里的TDM时间帧与链路层的数据单元帧不同,不要经这两者混乱。
还拿对讲机那个例子,如果采用TDM,那么没个人都可以在固定的时间说话,然后允许另一个人说话同样时长,依此类推。
缺陷:
首先,节点被限制于R/N bps的平均速 率,即使它是唯一有分组要发送的节点。第二个缺点是节点必须总是等待它在传输序列中的 轮次,即使它是唯一一个有帧要发送的节点。

  • 频分多路复用(FDM)

ba340b75cbdb2f6fb2c18200dcae1134.png


用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。
缺点:只能享有固定带宽,即使信道只有一个帧需要传送。

  • 码分多路复用(CDMA)
    TDM和 FDM分别为节点分配时隙和频率,而CDMA对每个节点分配一种不同的编码。然后毎个节点 用它唯一的编码来对它发送的数据进行编码。如果精心选择这些编码,CDMA网络具有一种 奇妙的特性,即不同的节点能够同时传输,并且它们各自相应的接收方仍然正确接收发送方 编码后的数据比特(假设接收方知道发送方的编码),而不在乎其他节点的干扰传输。
  • 波分多路复用
    与频分多路复用相似,波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率) 不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。

动态分配信道
什么是动态分配信道?
信道并非在用户通信时固定分配给用户,且发送信息时占用全部带宽。轮流协议

  • 轮询协议

5b175bdbb497f5b6466333faa8655024.png


轮询协议(Polling protocol)e轮询协议要求这些节点之一要被指定为主节点。主节点以循环的方式轮询(Poll) 每个节点。特别是,主节点首先向节点1发送一个报文,告诉它(节点1)能够传输的最大帧数。在节点1传输了某些帧后,主节点告诉节点2能够传输的最大帧数。(主节点能够通过观察 在信道上是否缺乏信号,来决定一个节点何时完成了帧的发送。)以这种方式继续上述过程, 主节点以循环的方式轮询每个节点。
优点:有效避免碰撞
缺点:假如只有一个主机需要接受数据(即只有一个活跃的节点),主机仍要轮询非活跃的节点,

  • 令牌传递协议

4e2b4b48802b72766c9bdd867fb22a51.png


第二种轮流协议是令牌传递协议(token・passing protocol)o在这种协议中没有主节点。 一个小的称为令牌(token)的特殊目的帧在节点之间以某种固定的次序进行交换。例如,节 点1可能总是把令牌发送给节点2,节点2可能总是把令牌发送给节点3,而节点N可能总是把令 牌发送给节点1。当一个节点收到令牌时,仅当它有一些帧要发送时,它才持有这个令牌;否 则,它立即向下一个节点转发该令牌。当一个节点收到令牌时,如果它确实有帧要传输,它 发送最大数目的帧数,然后把令牌转发给下一个节点。
优点:令牌传递是分散的,并有很高的效率。
缺点:一个节点的故障可能会使整个信道崩溃。或者如果一 个节点偶然忘记了释放令牌,必须调用某些恢复步骤使令牌返回到循环中来。

随机接入协议
随机接入是指所有用户可随机发送消息

  • ALOHA协议
    纯ALOHA协议

53d7084bfeaefb15f851066f59229753.png


(1)想发就发
(2)随机重发
(3)不监听信道,不按时隙帧发送
(5)两个站点以上发送就会发生冲突
(4)通过接收方信号的反馈检测信道以确定发送是否成功,如果发送失败,等待随机时间重新发送。
分隙ALOHA协议

1381a5171e4e0fe4d6d79f1347f01483.png


(1)分隙ALOHA是把时间分成时隙(时间片),时隙的长度对应一帧的传输时间
(2)新帧的产生是随机的,但分隙ALOHA不允许随机发送,凡帧的发送必须在时隙的起点
(3)冲突只发生在时隙的起点,冲突发生时只浪费一个时隙,一旦某个站占用时隙并发送成功,则在该时隙内不会出现冲突。
(4)不监听信道
纯ALOHA协议与分隙ALOHA协议对比
(1)纯ALOHA协议比分隙ALOHA协议吞吐量(一定时间内成功发送帧的次数)更低,效率更低。
(2)纯ALOHA协议想发就发,时隙ALOHA协议只有在时间片段开始才能发送。

  • CSMA协议(发前先听)
    在讲此协议前,我们先来讲一下ALOHA协议的弊端。ALOHA都有不断发送的特性,每个站点不会考虑其他站点会不会发送数据帧,这样很容易产生碰撞导致不断重发从而降低效率。
    这就好比一个聚会,每个人都相当于站点,都有说话的权利。而一个人正在讲话时,另一个人也野蛮的打扰对方讲话,毫不顾忌他人感受,这就导致说话的人不断传达自己的信息来让所有然听见。
    而CSMA正是解决了此问题。
    载波帧听(说话之前先听)( carrier sensing)
    即一个节点在传输前先听信道。如果来自另一个节点的帧正向信道上发送,节点则等待(“后退”)一段随机时间,然后再侦听信道。如果侦听到该信道是空闲的,该节点则开始帧传输。否则,该节点等待另一段随机时间,继续重复这个过程。通俗来讲,就是说话前先听,如果其他人正在说话等到他们说完话为止。
    碰撞检测(如果与他人同时开始说话,停止说话)(collision detction,简称CD)
    即一个传输节点在传输时一直在侦听信道。如果它检测到另一个节点正在传输干扰帧,它就停止传输,用某个协议来确定它应该在什么时候再尝试下一次传输。
    如果将CSMA协议进一步细化,大致可分为下列三种:

4411c17fafe17e246b859b28f71ca853.png


可以看到信道空闲和信道忙处理的方式不同。

  • CSMA/CD(载波侦听/碰撞检测)协议(边发边听)
    1.CS:载波侦听/监听,每-个站在发送数据之前以及发送数据时都要检测•下总线上是否有其他计算机在发送数据。
    MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。(应用于总线型网络)
    2.CD:碰撞检测(冲突检测),“边发送边监听”,即一个传输节点在传输时一直在侦听信道。如果它检测到另一个节点正在传输干扰帧,它就停止传输,用某个协议来确定它应该在什么时候再尝试下一次传输。(应用于半双工网络,及单一反向传输)
    3.最小帧长问题

96b5fe52ac8df2eb5c897a3d5bb00a08.png
  • CSMA/CA
    1.工作原理
    发送数据前,先检测信道是否空闲。空闲则发出RTS (request to send) , RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间 等信息;信道忙则等待。
    接收端收到RTS后,将响应CTS (clear to send)。
    发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)。
    接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。
    发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数 退避算法来确定随机的推迟时间)。
    简单的来说,该协议不仅做到发前先听,而且发之前对等待一段时间而不是立即发送,如果没有冲突则发送。
    2.应用于局域网

局域网
局域网(Local Area Network):简称LAN,是指在某一区域内由多台计算机互联成的计算机组,使用广播信道。
前面讲过LAN是一种集中在一个地理区域的计算机网络,例如在一个建筑中或者一个大学校园内。当用户从一所大学或者公司园区接入因特网时,其接入几乎总是通过LAN的方式。 特别是这种接入是从主机经LAN经路由器到因特网,如图所示。

34cd1b40baa8a415361279759e74c10e.png

网络拓扑
各拓扑结构及特点:

3533435aa4351f7199304a08520ed16d.png

介质访问控制方法

  • CAMA/CD
    常用于总线型局域网
  • 令牌总线
    常用于总线型局域网
  • 令牌环
    用于环型局域网,如令牌环网

局域网的分类
1.以太网 以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、 千兆以太网(1000 Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。使用CSMA/CD.
2.令牌环网物理上采用了星形拓扑结构,逻辑上是环形拓扑结构。不过此类型的局域网已经过时。
3.FDDI网(FtoerDtetributmlDataMerfface)物理上采用了双环拓扑结构,逻辑上是坏形拓扑结构。
4.ATM网(AsynchronousThmsferMode)较新型的单元交换技术,使用53字节固定长度的单元进行交换。
5。无线局域网(Wireless Local Area Network;WLAN)采用IEEE802.11标准
以太网
之前讲到过以太网应用最广泛的局域网技术,接下来就详细介绍一下以太网。

  • 以太网概述
    以太M(Ethernet)指的是由Xerox公司创建并由Xerox. Inte闲DEC公司联合开发的基带总线局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD (载波监听多路访问及冲突检测)技术。
    以太网成功的原因有很多,最主要的有以下几点
    1.造价低廉(以太网网卡不到100块):
    2.是应用最广泛的局域网技术;
    3. 比令牌坏网、ATM网便宜,简单;
    4.满足网络速率要求:10Mb/s~10Gb/s.
  • 拓扑结构
    逻辑上总线型,物理上星型

37a9cac8d7b51cf6054d389c4ec98d91.png


使用集线器的以太网在逻辑上仍是一个总线网, 各站共享逻辑上的总线,使用的还是CSMA/CD协议。
集线器(hub)是一种物理层设备,它作用于各个比特而不是作用于帧。当 表示一个0或一个1的比特到达一个接口时,集线器只是重新生成这个比特,将其能量强度放大,并将该比特向其他所有接口传输出去。

  • 10BASE-T以太网
    10BASE-T是传送皐带信号的双绞线以太网,T表示采用双绞线,现1OBASE-T采用的是无屏蔽双绞线 (UTP),传输速率是10Mb/S。
    特点:
    物理上采用星型拓扑,逻辑上总线型,每段双绞线最长为100m°
    采用曼彻斯特编码。
    采用CSMA/CD介质访问控制。
  • 适配器
    计算机与外界有局域网的连接是通过通信适配器的。
    适配器结构:
    网络接口板
    网络接口卡NIC (network interface card)
    而现在,不再使用单独网卡。
    适配器上装有处理器和存储器(包抵RAM和ROM)。
    ROM上有计算机硬件地址MAC地址。
  • MAC地址
    事实上,并不是节点(即主机或路由器)具有MAC地址,而是节点的适配器具有链路层 地址。图5-16中举例说明这种情况。LAN地址有各种不同的称呼:LAN地址(LAN address), 物理地址(physical address)或MAC地址(MAC address)。对于大多数LAN (包括以太网和802.11无线LAN)而言,MAC地址长度为6字节,共有2"个可能的LAN地址。如图所示,该6个字节地址通常用十六进制表示法,地址的每个字节被表示为一对十六进制数。
    每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己 指定。
    因此,一个主机的MAC地址是唯一不变的,除非换掉一块适配器。
    IP地址具有层次结构(即一个网络部分和一个主机部分),而且当主机移动时,节点的 IP地址需要改变,即改变为它所连接到网络的地址。
    举一个例子,一个人带着电脑从上海到北京出差,地理位置发生了改变,但适配器中的MAC地址不变,IP地址发生变化。
  • 以太网帧结构
    为了将对以太网帧的讨论放到切实的环境中, 考虑从一台主机向另一台主机发送一个IP数据报,且这两台主机在相同的以太网LAN上。设发送 适配器(即适配器A)的MAC地址是AA-AA-AA-AA-AA-AA,接收适配器(即适配器B)的 MAC地址是BB-BB-BB-BB-BB-BB.发送适配器在一个以太网帧中封装了一个IP数据报,并 把该帧传递到物理层。接收适配器从物理层收到这个帧,提取出IP数据报,并将该IP数据报 传递给网络层。
    下面我们讨论如图所示的以太网帧结构:

a4bf602c4541d95afc8a89c207f7d098.png
  1. 数据字段(data field) 数据长度(46-1500字节)。这个字段承载了IP数据报。以太网的最大传输 单元(MTU)是1500字节,最小是46字节。
    2.目的地址:(destination address) (6字节)。这个字段包含目的适配器的MAC地址,即 BB-BB-BB-BB-BB-BB。当适配器B收到一个以太网帧,它的帧目的地址无论是它自己 的MAC地址BB-BB-BB-BB-BB-BB,还是MAC广播地址,都将该帧的数据字段的内容传递给网络层;如果它收到了具有任何其他MAC地址的帧,则丢弃之。
    3.源地址(source address) (6字节)。这个字段包含了传输该帧到LAN上的适配器的 MAC地址,在本例中为AA・AA・AA・AA・AA・AA。
    4.类型字段。允许以太网复用多种网络层协议。
    4.循环冗余检测(Cyclic Redundancy Check, CRC) (4字节)。CRC字段的目的是使得接收适配器(适配器B)检测帧中是否引入了差错,也就是说, 帧中的比特是否发生了翻转。比特差错的原因包括信号强度的衰减和电磁能量泄漏到以 太网电缆和接口卡中。
    5.前同步码(preamble) (8字节)。以太网帧以一个8字节的前同步码字段开始。该前同步 码的前7个字节的值都是10101010,最后一个字节是10101011符(帧开始定界)前同步码字段的前7个字。
  • 其他以太网技术
    在上面的讨论中,我们已经提及以太网就像是一个单一的协议标准。但事实上,以太网 具有许多不同的特色,具有某种令人迷惑的首字母缩写词,如10BASE-T、100BASE-2、 100BASE-T. 1000BASE-LX和10GBASE-T。这些以及许多其他的以太网技术经过多年发展已 经被IEEE 802.3 CSMA/CD (Ethernet)工作组标准化了[IEEE 802.3 2007]。尽管这些首字母 缩写词令人眼花缭乱,实际上其中有相当大的规律性。该首字母缩写词的第一个部分指该标 准的速率:10、100、1000或 10G,分别代表 10 Mbps, 100 Mbps, 1000 Mbps (1 Gbps)和 10 Gbps以太网。“BASE”指基带以太网,这意味着该物理媒体仅承载以太网流量;几乎所有 的802.3标准都是用于基带以太网。

链路层设备集线器

  • 集线器的英文称为“Hub”。它是工作在物理层的设备,“Hub”是“中心”的意思,集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型第一层,即“物理层”。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。集线器每个接口简单的收发比特,收到1就转发1,收到0就转发0,不进行碰撞检测。集线器(hub)属于纯硬件网络底层设备,基本上不具有类似于交换机的"智能记忆"能力和"学习"能力。它也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送。也就是说当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点,如图所示,简单明了。
  • 一个比较严重的问题是,如果一个大型的局域网,比如有500台机器,全部用HUB连接的,后果会怎么呢?相当慢,网络的效率极差!为什么?如果500台机器都发一个包,那就是说每台机器,都需要接收差不多499个无用包...并且如果是需要回应的话......无用的数据包会充斥着整个的局域网,这就是传说中的广播风暴!
  • 为了减少广播风暴,网桥产生了(注意这里用的时候“减少”,不是“杜绝”,仅仅是减少!如果仅仅用网桥说能杜绝广播风暴,个人觉得还是不太准确,后来交换机的出现才可以说是完全杜绝了广播风暴的发生)

网桥

  • 网桥:是一种对帧进行转发的技术,工作在数据链路层,它根据MAC帧的目标地址对收到的帧进行转发和过滤,当网桥收到一个帧时,首先检查这个帧的目的MAC地址,然后到转发表中进行查找是否有该MAC地址,如果有,再看这个帧的目的地址是否和源地址属于同一个网段,如果是,则丢弃该包,否则从相应端口转发出去,如果没有找到该MAC层地址,则将该帧从其他接口全部转发出去。
  • 网桥的优势:
    (1) 过滤通信量,增加吞吐量(隔离了冲突域)
    (2) 扩大物理范围
    (3) 可以互联不同物理层,不同MAC子层和不同速率的以太网
    (4) 提高了可靠性
  • 网桥的缺点:
    (1) 网桥要对接收到的帧先存储,后查找转发表,在转发之前还要进行CSMA/CD算法,增加了时延;(2) 网桥只适用于用户不多,通信量不大的以太网,否则会产生广播风暴;
    (3) MAC子层并没有流量控制,因此当通信量比较大时,网桥中的缓存可能不够,缓存溢出,从而导致帧丢失现象;
  • 网桥的自学机制
    目前使用最多的是透明网桥。透明,意味着发送的帧并不知道传输过程中要经过哪些网桥。透明网桥是一种即插即用设备,即只要接入以太网,不用人工配置就能正常工作。之所以不需要人工配置,透明网桥采用一种自学习的方式工作,原理是这样的:从某个站A发送的帧经过接口x传送给网桥,那么我们就知道通过接口x反向传输一定可以到达站点A,此时我们记下这个帧的源地址和接口号,将其作为一个项目添加到转发表中。
    如图是一个简易的网桥结构图:

4d99423493d0f32fe3e426b620b9e2ee.png


接下来研究一下网桥的自学机制。如图,网桥中有转发表,里面有原地址和网桥的接口。假设A要发送帧到E,那么A先发送帧到B,因为目的地址不是B所以B不接受,然后翻送到网桥端口1(网桥左侧),网桥查看表中是否有源地址A,没有则对地址进行登记,然后由端口2转发,CD都不接受,网桥2查看表中源地址没有则进行地址登记。假设B到A,那么B发送给A,则A接收,发送给网桥,网桥记录源地址B后,查看表中源地址有没有A,所以将A丢弃不进行转发。
例题:

0718780c81dda8558d5ae6d1e130fbbc.png

65a0633748752fa9176e5873161adf80.png


图片来源:https://blog.csdn.net/qq_40774175/article/details/84062635

交换机
交换机Switch,数据链路层设备,作用是转发数据包。和网桥一样它也是通过识别帧中的MAC地址,然后对特定的端口进行转发的。
网桥的连接模式:(红点处为HUB)

a219eeef6a15cb4894557aaa8206d7f6.png


交换机连接模式:

abf8f9391f65487081abfae163d63d31.png


从图中可以看到,网桥只有2个输入/出端口,而交换机有8个。嗯,是的,一开始的时候(那时候只有HUB这种设备),由于硬件水平不是很发达,人们为了提高局域网效率,减少广播风暴的出现,他们生产了网桥(一个只有两个输入/出端口的链路层设备,这时的网桥已经是个比较先进的设备),然后他们把一个局域网一分为2,中间用网桥连接,这样A发给BCD的数据就不会再广播到EFGH了(网桥发现如果数据包不是转发给下面这个子网的,它会自动丢弃此包),只有从A发到EFGH的数据包才能通过网桥,到达另外一个子网(网桥发现如果数据包是转发给下面这个子网的,它才会把包转发给这个子网)。这样一来,非必要的传输减少了,整个网络的效率也随之提高可不少!人们发现网桥真是个好东西呀,随着硬件发展,出现了4个,8个端口的链路层设备,这就是交换机,由于交换机可以使得网络更安全(数据不容易被监听,因为数据不再广播了,注意:只是不容易而已,要搞你其实还是可以的),网络效率更高(还是因为数据不再广播!),交换机渐渐替代了HUB,成为组建局域网的重要设备。
所以说,网桥和交换机,基本上是一样的,嗯,只是基本上而已,细看还是有些不一样的。
网桥和交换机的自学习方式不同,如图

a9b7912574eaa58761d98f11b933cbfc.png


换机也有一张MAC-PORT对应表(这张表的学名为:CAM),和网桥不一样的是,网桥的表是一对多的(一个端口号对多个MAC地址),但交换机的CAM表却是一对一的,如果一个端口有新的MAC地址,它不会新增MAC-PORT记录,而是修改原有的记录,比如:现在交换机记录表里已经有一项:MAC1-Port1,如果此刻端口1又来了一个数据包,里面的源MAC地址是MAC2,此时,交换机会刷新交换机记录表:MAC1-Port1记录被修改为MAC2-Port1,因为交换机认为是端口1的计算机MAC地址变了,如果端口1连接的一台物理机器,MAC一般是不会变的,如果连接的是另外一个交换机,那这个端口的记录会变化得比较频繁(如上图的Port12,它是对外的接口,与一个局域网连接),另外,如果CAM表中没有找到和数据包的目的MAC地址对应的记录,交换机会对此数据包进行广播,发给本交换机的每一个端口。
内r容引自:https://blog.csdn.net/dataiyangu/article/details/82496340
冲突域和广播域
冲突域:在同一个冲突域中的每一个节点都能 收到所有被发送的帧。简单的说就是同一时间内只能有一台设备发送信息的范围。
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。简 单的说如果站点发出一 个广播信号,所有能接收到这个信号的设备范围称为一个广播域。
网桥和交换机用户分割冲突域,就是网桥和交换机可以较少被逼的广播(hub导致的),但不能分割广播域。不严格地说,交换机可以看作网桥的高度集成。
HUB 所有端口都在同一个广播域,冲突域内。
Switch所有端口都在同一个广播域内,而每一个端口就是一个冲突域。
Router的每个端口属于不同的广播域。

ed493153adeba945171a718c1720a7c7.png


下图中有几个广播域?几个冲突域?

4f1bafb11253578e0209b70b9063006a.png


图中没有路由器,所以以太网交换机,集线器,主机在同一个广播域中。所以只有一个广播域。
集线器所有端口代表一个冲突域,以太网交换机一个端口代表一个冲突域,所以共有4个冲突域。
广域网
广域网(WAN, Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从儿十公里到几千公里,它 能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分 组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet) 是世界范围内最大的广域网。

126745d82fc1cac73c0046e93af530f1.png

PPP协议

  • 点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都使用PPP协议。
    PPP协议只支持全双工链路。
  • PPP协议应该满足的要求
    简单:对于链路层的帧,无需纠错,无需序号,无需流量控制。
    封装成帧 :帧定界符
    透明传输:与帧定界符一样比特组合的数据应该如何处理:异步线路用字节填充,同步线路用比特填充。
    多种网络层协议:封装的IP数据报可以采用多种协议。
    多种类型链路 :串行/并行,同步/异步,电/光....
    差错检测:错就丢弃。
    检测连接状态:链路是否正常工作。
    最大传送单元:数据部分最大长度MTU。
    网络层地址协商:知道通信双方的网络层地址。
    数据压缩协商
  • PPP协议不需要满足纠错和流量控制、有序、多点链路等。
  • PPP协议的三个组成部分
    1.一个将IP数据报封装到串行链路(同步串行/异步串行)的方法。
    2.链路控制协议LCP:建立并维护数据链路连接。身份验证
    3.网络控制比NCP: PPP可支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP來配 置,为网络层协议建立和配置逻辑连接。
  • PPP协议工作状态图

d7c2816bc7bfc8cb3269ddb8a89ce76d.png
  • PPP协议帧格式

04cc2f21fb8e63fd5a63da076a2960ec.png


插入转义字符为了防止数据帧中含有帧定界符。

HDLC协议
高级数据链路控制(High-Level Data Link Control^简称HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLCfSynchronousData Link Control)协议扩展开发而成的.
数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现
采用全双工通信
所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高。

  • HDLC的站
    1.主站的主要功能是发送命令(包括数据信息)帧、接收响应帧,并负责对整个链路的控制系统的初启、 流程的控制、差错检测或恢复等。
    2. 从站的主要功能是接收由主站发来的命令帧,向主站发送响应帧,并且配合主站参与差错恢复等链路制。
    3:复咅站的主要功能是既能发送,又能接收命令帧和响应帧,并且负责整个链路的控制。
  • HDLC帧格式

7f320da13da70ede6992ce39aab915ee.png


帧的三种形式:
1) 信息帧(I)第1位为0,用来传输数据信息,或使用捎带技术对数据进行确认;
2) 监督帧(S) 10,用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能
3) 无编号帧(U) 11,用于提供对链路的建立、拆除等多种控制功能。

  • PPP和HDLC协议对比

f9509e614f99ac94e34cce042f43069a.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值