-
Data Link Layer——数据链路层 需要了解的知识点
2020-05-23 21:55:50数据链路层协议解决三个基本问题,分别是封装成帧、透明传输、差错检测 封装成帧:使用SOH字符和EOT字符进行帧定界,使用MTU最大传输单元规定数据部分长度上限(默认为1500字节) 透明传输:当遇到...-
数据链路层
-
链路(物理链路)是一个结点到相邻结点的一段物理线路,数据链路(逻辑链路)是在链路的基础上增加了一些必要硬件(如网络适配器)和软件(如协议的实现)
-
数据链路层协议解决三个基本问题,分别是封装成帧、透明传输、差错检测
-
封装成帧:使用SOH字符和EOT字符进行帧定界,使用MTU最大传输单元规定数据部分长度上限(默认为1500字节)
-
透明传输:当遇到内容中包含帧定界符时,使用ESC字符转义(字节填充法解决透明传输问题)
-
差错检测:使用CRC循环冗余检验方法,在数据后面添加FCS冗余码(保证无比特差错,有就丢弃),但是无法保证可靠传输
-
可靠传输必须保证既无比特差错又无传输差错(无帧丢失、帧重复、帧失序情况)
-
-
-
数据链路层包含点对点信道和广播信道
-
点对点信道
-
PPP 点对点协议
-
PPPoE 在以太网上运行的PPP,现在FTTx都要使用PPPoE方式接入
-
PPP协议只支持全双工通信
-
-
-
广播信道
-
局域网
-
按网络拓扑分为星型网(最为常用)、环型网、总线型网
-
目前以太网几乎成为了局域网的同义词(FDDI、令牌环、令牌总线都消失了),以太网硬件地址(MAC地址)48位
-
-
CSMA/CD 载波监听多点接入(多路访问)/碰撞检测(冲突检测)
-
载波监听:每个站都必须不停检测信道
-
多点接入(多路访问):说明为总线型网络,许多计算机以多点接入的方式连接在一根总线上
-
碰撞检测(冲突检测):边发送边监听
-
CSMA/CD协议只支持半双工通信
-
-
-
-
RJ-45连接标准包含T568A和T568B
-
T568A:1~8根线依次为白绿、绿、白橙、蓝、白蓝、橙、白棕、棕
-
T568B:1~8根线依次为白橙、橙、白绿、蓝、白蓝、绿、白棕、棕,T568B较为常用
-
如果一侧使用T568A,另一侧使用T568B,可以将两台计算机直接连起来
-
-
-
第四章数据链路层4.1使用点对点信道的数据链路层
2020-03-30 16:08:28在网络层加上IP地址,在数据链路层加上帧头和帧尾,校验值,和mac地址。 数据链路层的三个基本问题 封装成帧 透明传输 用控制字符进行帧定界 造成的问题:当在数据部分出现和帧尾相同的码时,被接受端误以为是一...
在网络层加上IP地址,在数据链路层加上帧头和帧尾,校验值,和mac地址。
数据链路层的三个基本问题- 封装成帧
- 透明传输
用控制字符进行帧定界
造成的问题:当在数据部分出现和帧尾相同的码时,被接受端误以为是一个帧,后面的都被当做无效帧丢弃。
解决方法:
- 差错控制
数据链路层只确保接收正确数据不负责纠错,纠错在传输层实现。
需要在传输的数据上加上帧检验序列来进行差错检测,通常使用循环冗余检验(CRC)。
在原来的数上加几个0,除数是一个随机n数,位数永远比被除数加的0多1。
除的每一位之间做异或运算,最后算出一个余数,作为帧检验序列加到传输的数据后面。
接收端将守到的数据做除法来除除数,如果余数为0则没差错,反之亦然,并不接受数据。
-
计算机网络第三章数据链路层
2020-10-15 08:18:38数据链路层不关心物理层解决的问题,只关心帧头帧尾和校验。 3.1.1 数据链路层的信道类型 ->点到点信道:这种信道使用一对一的点对点通信方式。 ->广播信道:广播信道上的主机很多,需要专用的共享信道协议...3.1 数据链路层的基本概念
结点:主机,路由器
链路:网络中两个节点之间的物理通道,链路的传输介质只要有双绞线,光纤和微波。分为有线链路和无线链路
数据链路:网络中两个结点间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
数据链路层的功能概述:
易懂版本:把网络层交给数据链路层的数据报进行加工处理交给物理层,实现数据链路层的逻辑无差错的数据链路
3.1.1 数据链路层的简单模型
数据链路层不关心物理层解决的问题,只关心帧头帧尾和校验。
3.1.1 数据链路层的信道类型
点到点信道:这种信道使用一对一的点对点通信方式。
广播信道:广播信道上的主机很多,需要专用的共享信道协议来协调主机的数据发送。3.1.3 帧
在网络层,给数据包增加了接收端和发送端的IP地址。在数据链路层里,增加了帧头帧尾,MAC地址和校验值。
3.2 数据链路层解决的基本问题
3.2.1 封装成帧(framing)
就是在一段数据的前后分别添加帧头(首部)和帧尾(尾部),构成一个帧。
首部尾部包含许多控制喜喜,他们的一个重要作用就是帧定界(确定帧的界限)
帧同步:接受方应当能从接收到的二进制比特流中区分出帧的起始和终止。
但是,可能会出现以下问题,组帧的四种方法:
- 字符计数法
- 字符(节)填充法
- 零比特填充法
- 违规编码法
3.2.2 透明传输
- 字符计数法
用帧首部使用一个计数字段(比如第一个字节里填入5,则包含该字节后共计五个字节为第一个帧)来标明帧内的字符数。
- 字符(节)填充法
字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在数据送往网络层之前杀出插入的转义字符。
用字节填充法解决透明传输问题。发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(十六进制数1B)。
如果转义字符也出现在数据之中,那么应该在转义字符前插入一个转义字符。当接收端收到连续的两个转义字符时,就删除前面的那一个。- 零比特填充法
- 违规编码法
3.2.3 差错校验
传输过程中可能会产生bit差错:0变成1,1变成0.
在一段时间内,传输错误的比特率占所传输比特总数的比率称为误码率BER(bit error rate)。
误码率和信噪比的关系很大。
为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检验措施。
->循环冗余检验CRC:
除数必须比后面添加的0的位数多一位,可以是任意的二进制数。每一步运算其实是不进位的加法。下图的001就是FCS帧检验序列。接收端计算101001001(也就是原数据加上FCS)除以1101,如果商为0,意味着传输过程没有差错,就接受,否则丢弃。
在数据后面添加的冗余码称为帧检验序列FCS(frame check seqeunce)。CRC不是获得FCS的唯一方法。
特点:
不能确定出错的bit的是哪一位;
可能会出错,但只要经过严格的挑选,并且除数位数足够大,就可以极大减少出错概率;
CRC只能做到无差错接受(意思是传输过程没有差错,有差错的一律丢弃);
要做到可靠传输,必须加上确认和重传机制。3.3 两种情况下的数据链路层
3.3.1 使用点对点信道的数据链路层(广域网)
(1)PPP协议(point to point protocol),是数据链路层协议,例如用户使用拨号上网。
(2)PPP协议应该满足:
简单;封装成帧;透明性;多种网络层协议;多种类型链路;差错检验;检测连接状态;最大传送单元;网络层地址协商;数据压缩协商;
(3)PPP协议不需要满足:
纠错;流量控制;序号;多点链接;半双工或单工连接。
(4)PPP协议的组层部分:
数据链路层协议可以用于异步串行或同步串行介质;
使用LCP(链路控制协议)建立并维护数据链路连接,可以实现身份验证和欠费管理;
网络控制协议(NCP)允许在点到点连接上使用多种网络层协议,如下图;
(5)PPP协议帧格式
标志字段F = 0x7E
地址字段A = 0xFF,它并不起作用
控制字段C = 0x03
PPP协议是面向字节的,所以所有的PPP帧的长度都是整数字节。
(6)字节填充(类似于透明传输)
此时,信息部分是以字节为单位的。
将信息字段中出现的每个0x7E字节转变成为2字节序列(0x7D,0x5E);
将信息字段中出现的每个0x7D字节转变成为2字节序列(0x7D,0x5D);
将信息字段中出现的每个ASCII码控制字符(小于0x20字符),在前面加入一个0x7D;
(7)0比特填充(类似于透明传输)
此时,信息部分是二进制流。PPP协议在SONET/SDH链路时,是使用同步传输。
在发送端,只要发现有5个连续的1,则填充一个0,接收端删掉对应的0。
(8)PPP协议不使用序号和确认机制的原因
在数据链路层出现错误的概率不大时,使用较简单的PPP协议较为合理;
在Internet环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能保证网络层的传输也是可靠的;
帧检验序列FCS字段可以保证无差错接受。
(9)PPP协议的工作状态
当用户拨号接入ISP(网络运营商)时,路由器的调制解调器对拨号进行确认,建立物理连接;
PC机箱路由器发送一些列的LCP(链路控制协议)分组(封装成多个PPP帧);
这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP(网络控制协议)给新接入的PC机分配一个临时的IP地址,使PC机成为Internet上的一个主机;
通信完毕后,NCP释放网络层连接,收回原来分配出去的IP地址;
接着,LCP释放数据链路层连接;
最后释放的事物理层连接。3.3.2 使用广播信道的数据链路层(局域网)
一般是总线型。
(1)局域网的拓扑
(2)共享通信媒体
静态划分信道(麻烦):
频分复用;时分复用;波分复用;码分复用;
动态媒体接入控制(多点接入):
随机接入(主要是以太网);受控接入,如多点线路探询(polling),轮询(不采用了)。(3)认识以太网
最初的以太网是将许多计算机都连接到一根总线上,当初认为这样连接即简单又可靠,因为总线上没有有源器件。
总线上每一个主机都能检测到B发送的数据。但是只有D的地址和数据帧首部写入的地址一致,所以只有D接收。其余计算机都能检测到这不是发送给他们的数据帧,所以就丢弃这个数据帧。
这是一种具有广播特性的总线上实现了一对一通信。这种方式不安全。(4)带冲突检测的载波监听/碰撞检测
CSMA/CD:
Carrier Sense Multiple Access with Collision Detection
多点接入:
许多计算机以多点接入的方式连接在一根总线上。
载波监听:
每一个站在发送数据之前都先要用电子技术检测一下总线时候有其它计算机在发送数据信号,如果有则不发送数据,以免发生碰撞;(5)碰撞检测
碰撞检测就是计算机边发送数据边检测信道上信号电压的大小。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大;
当一个站检测到信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞;
碰撞就是冲突,碰撞检测也称冲突检测。
检测到碰撞后:
在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息;
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就立即停止发送,避免浪费网络资源,等待一个随机的时间后再次发送。(6)传播时延对载波监听的影响
在2t时间内,可能存在碰撞。(7)CSMA/CD的重要特性
使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工);
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能;
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。(8)争用期
最先发送数据帧的站,在发送数据帧后至多经过时间2t(2倍的端到端往返时延)就可知道发送的数据帧是否发生了碰撞。
经过争用期这段时间还没有检测到碰撞,就可以肯定不会发生碰撞;
以太网的争用期:
->以太网的端到端往返时延2t称为争用期,或碰撞窗口,通常取51.2微秒为争用期的长度;如果网线过长,会导致争用期时间的延长,这也是为什么网线一般不超过100m;
->对于10Mb/s的以太网,在争用期可以发送512bit,也就是64 byte;
->以太网在发送数据的时候,若前64字节没有冲突,后续也不会发生冲突;
最短有效帧长:
->如果发生冲突,一定是前64字节;
->由于一旦发生冲突就立刻停止,所以已发送的数据一定小雨64字节;
->以太网规定了最短有效帧长为64字节,凡事小雨64字节的帧一定是因为冲突而异常终止的无效帧。(9)二进制指数类型退避算法
发送碰撞的站在停止发送数据后,要推迟一个随机事件才能发送数据。
确定基本退避时间,一般是争用期2t;
定义参数k = min(重传次数,10);
从整数集合{0,1,…,2^k-1}中随机取出一个数,记为r,重传所需的时延就是r倍的基本退避时间;
当重传达16次时仍不能成功时就丢弃该帧,并向高层报告。3.4 以太网
3.4.1 以太网的两个标准
DIX Ethernet V2一般是指这个。
IEEE 802.3 两个标准差别很小。
以太网 是满足DIX Ethernet V2标准的局域网。3.4.2 以太网与数据链路层的2个子层
为了使数据链路层更好的适应多种局域网标准,802委员会把局域网拆分为:
->逻辑链路控制LLC(Logical Link Control)子层;
->媒体接入控制MAC(Medium Access Control)子层。
与接入到传输媒体有关的内容都放在MAC子层上,而LLC子层与传输媒体无关,不管什么协议的局域网对LLC子层都是透明的;
由于局域网标准一般是DIX Ethernet V2而不是IEEE 802.3,所以802.2标准的LLC子层作用已经不大了,很多厂商适配器没有LLC协议;3.4.3 以太网提供的服务
以太网提供服务是不可靠的交付,即最大努力的交付;
当接收站收到的有差错的数据帧时就丢弃此帧,其它什么也不做,差错的纠正由高层来处理;
如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新帧发送。3.4.4 以太网的星型拓扑结构
物理上是星型,逻辑上是总线型。
为了降低成本,最初由粗的同轴电缆变成细的同轴电缆最后变成无屏蔽双绞线。每个站需要用两对双绞线,分别用于发送和接收;
在星形的中心增加了一种可靠性高的设备,为集线器(hub)。3.4.5 集线器的特点
集线器使用电子器件来模拟实际电缆线的工作,因此整个系统仍然是像一个传统的以太网那样运行。由于集线器使用了大规模集成电路芯片,所以可靠性更高;
使用集线器逻辑上仍然是一个总线网,各工作站使用的还是CSMA/CD协议,共享逻辑网络上的总线;
集线器像一个多接口的转发器,工作在物理层。3.4.6 10Base-T 基于集线器的以太网标准
它的通信距离稍短,每个站到集线器的距离不超过100m。
这种10MB/s的无屏蔽双绞线星形网的出现,能降低成本和提高可靠性。
10Base-T的出现有很大的意义,类似标准有100Base-FX,10Base-T,100Base-T4.3.4.7 信道利用率
争用期长度为2t;帧长为L bit,数据发送旅为C b/s,帧的发送时间为L/C = T0 秒。
一个帧从开始发送,经可能发生的碰撞后,将再次重传多次,直到发送成功且信道转为空闲(即再经过t使得信道上没有信号在传播)时为止,是发送一帧所需的平均时间。
定义a = t / T0,是单程端到端时延t与帧发送时间T0的比值。a越小,说明碰撞检测越快,信道利用率高。
当数据率(网速)一定时,以太网的连线长度受到限制,否则t会太长;
以太网的帧长不能太短,否则T0太小,使a太大。3.4.8 信道利用率的最大值
假设理想状态下,以太网个展发送的数据都不会碰撞,一旦总线空闲就能有站立即发送数据,所以没有争用期;
发送一帧需要占用总线T0+t,而帧本身需要发送时间为T0,于是理想情况下极限信道利用率Smax = T0 / (T0 + t) = 1 / (1 + a).3.5 MAC层
3.5.1 MAC层的硬件地址(MAC地址)
硬件地址 = 物理地址 = MAC地址
MAC地址前3个字节(24位)是厂家分配的地址字段,后3个字节(24位)是厂家自定义,称为扩展标识符;
一个地址块可以产生2^24个地址,这种48位地址称为MAC-48,通用名为EUI-48,这就是MAC地址;
MAC地址实际上是每一个站的名字或标识符。3.5.2 适配器检查MAC地址
适配器从网络上每收到一个MAC帧就要用硬件检查MAC帧中的MAC地址:
->如果是发往本站的帧就收下,然后进行其它处理;
->否则丢弃。
发往本站的帧包括:
->单播帧(unicast)(一对一)
->广播帧(broadcast)(一对全体)
->多播帧(multicast)(一对多)3.5.3 MAC帧的格式
6 + 6 + 2 + 46 + 4 =64 byte,这就是为什么IP数据报的最短长度为46字节。
前8个字节的作用是实现比特同步,第一个字段共7个字节,称为前同步码,作用是实现快速MAC帧的比特同步;第二个字段是帧开始定界符,表示后面的信息是MAC帧。3.5.4 无效的MAC帧
帧的长度不是整数个字节;
用收到的帧检验序列FCS查出有错误;
数据字段的长度不在46-1518字节内;
对于检查出来的无效MAC帧简单的丢弃。3.5.5 帧间最小间隔
为9.6微秒。相当于96bit的发送时间。
一个站在检测到总线空闲时,还需要等待9.6微秒后才能再次发送数据,这样做是为了使刚刚收到的数据帧的站接收缓存来得及清理,做好接收下一帧的准备。3.6 数据帧的抓包分析
3.7 扩展以太网
3.7.1 在物理层考虑扩展
(1)距离的扩展
主机使用光纤和一对光纤调制解调器连接到集线器。
(2)数量的扩展
集线器集联:使网络中计算机增加,变成一个大的冲突域,会造成效率降低。3.7.2 在数据链路层考虑扩展
(1)使用网桥
网桥工作在数据链路层,他根据MAC帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是现检查此帧的目的MAC地址,然后再确定将该帧转发到对应的接口。
(2)交换机
随着网桥的接口的增加, 后来网桥和集线器合并了,计算机可以直接和交换机连接,这就是交换机。
交换机就是网桥和集线器的合并升级版,能全双工,安全通信。
端口带宽独享;
安全;
基于MAC地址转发;
通过学习构建MAC地址表。
(3)透明网桥(transparent )
透明指局域网上的站点不知道所发送的帧将经过几个网桥,因为网桥对于各站点是看不见的。
透明网桥是一种即插即用的设备,标准是IEEE 802.1D。
透明网桥使用了生成树算法。避免产生转发的帧在网络中不停的转圈。3.8 快速以太网(fast ethernet)
3.8.1 100Base-T以太网
速率在100Mb/s以上的以太网称为高速以太网。
在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE 802.3的CSMA/CD协议。100Base-T以太网被称为快速以太网(fast ethernet)。
100Base-T以太网的物理层:
->100Base-TX:使用2对UTP 5类线或屏蔽双绞线STP。
->100Base-FX:使用2对光纤。
->100Base-T4:使用4对UTP 3类线或5类线。3.8.2 100Base-T以太网的特点
可以实现全双工通信(注意,如果交换机上某一路连接着集线器(半双工),则这一路不能实现全双工)而无冲突,此时不使用CSMA/CD协议。
MAC帧格式不变,仍是802.3 标准。
最短帧长度不变,但是一个网段的最大电缆长度减少到100m。
帧间间隔从9.6微秒缩小到0.96微秒。3.8.3 吉比特Gbit以太网
允许在1 Gb/s下全双工或半双工工作方式。
使用802.3标准的帧格式。
在半双工下使用CSMA/CD协议。
与10Base-T和100Base-T技术向后兼容。
当吉比特以太网在全双工方式时,不用载波延伸和分组冲突。
1000Base-X以太网的物理层(基于光纤通道):
->1000Base-SX:SX表示短波长,传输距离上275m或550m。
->1000Base-LX:LX表示长波长,传输距离上550m或5000m。
->1000Base-CX:
1000Base-T以太网的物理层(基于双绞线):
->使用 4对 5类线UTP。3.8.4 10Gbit/s以太网
MAC帧格式不变,仍是802.3 标准。
使用光纤而不是铜线。
只能工作在全双工方式,没有争用问题。
它的出现使工作范围从局域网扩大到城域网和广域网,实现了端到端的以太网传输,优点是:技术成熟;互操作性好;广域网中使用以太网便宜;统一的帧格式。3.8.5 以太网从10Mb/s到10Gb/s的演变说明了
可拓展性;
灵活性(多种传输媒体,全/半双工,共享/交换);
易于安装;
稳健性好。3.8.6 Cisco建网的3层模型
参考文献
-
计算机网络——数据链路层
2020-02-18 15:38:13数据链路层需要解决三个基本问题: 1)封装成帧。 2)透明传输:在 “数据链路层透明传送数据” 表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。具体在PPP协议中,还需要通过字节...本文是在读谢希仁所著的《计算机网络》第7版的第三章后所做的总结与摘要。
数据链路层需要解决三个基本问题:
1)封装成帧。
2)透明传输:在 “数据链路层透明传送数据” 表示无论什么样的比特组合的数据,都能够按照原样没有差错地通过这个数据链路层。具体在PPP协议中,还需要通过字节填充/零比特填充的方法来保证帧的数据部分中的控制字符不会被解释为帧首/尾部中控制字符
3)差错检测:采用循环冗余检验CRC,具体见书P74。不论是点对点网络还是以太网,都需要差错检测。点对点协议PPP
在通信线路质量较差的年代,在数据链路层使用可靠传输协议曾经是一种好办法,因此,能实现可靠传输的高级数据链路控制HDLC (High-level Data Link Control) 就成为当时比较流行的数据链路层协议。但现在HDLC已经很少用了。对于点对点的链路,简单得多的PPP (Point-to-Point Protocol) 则是目前使用得最广泛的数据链路层协议。
互联网用户通常需要连接到某个ISP才能接入到互联网。PPP协议就是用户计算机与ISP进行通信时所使用的数据链路层协议。关于PPP协议,这里不多阐述,具体见书P76。需要注意的是,1999年公布了能够在以太网上运行的PPP,即PPP over Ethernet,简称PPPoE [RFC 2516]。
以太网协议
适配器
计算机与外界局域网的连接是通过通信适配器 (adapter) 进行的。 适配器本来是在主机箱内插入的一块网络接口板,或者是在笔记本电脑中插入一块PCMCIA卡——个人计算机存储器卡接口适配器。这种接口板又称为网络接口卡NIC (Network Interface Card) 或者简称 “网卡”。 不过现在计算机主板上都已经嵌入了这种适配器,不再使用单独的网卡了,因此为了更加准确书中采用了适配器这一术语。
适配器上面装有处理器和存储器 (包括RAM和ROM)。适配器与局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。因此,适配器的一个重要功能就是要进行数据串行传输和并行传输的转换。 由于网络上的数据率与计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。 在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置上把多长的数据块发送到局域网,或者应当在存储器的什么位置上把局域网的数据块存储下来。适配器要能够沟实现以太网协议。
适配器在接收和发送各种帧时,不使用计算机的CPU。这使计算机中的CPU可以处理其它人物。当适配器收到有差错的帧时,就把这个帧直接丢弃而不必通知计算机。当适配器收到正确的帧时,它就使用中断来通知该计算机,并交付给协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后发送到局域网。
另外,要特别注意,计算机的硬件地址就在适配器的ROM中,而计算机的软件地址——IP地址就在计算机的存储器中。CSMA/CD协议
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 协议,意思是载波监听多点接入/碰撞检测协议,是用来检测与应对传统以太网中的碰撞问题的。
具体见书P86,在这里不多阐述。使用集线器的星形拓扑
随着技术发展,传统以太网最初是使用粗同轴电缆,发展到使用更便宜和更灵活的双绞线。这种以太网采用星形拓扑,在星形的中心增加了一个可靠性非常高的设备,叫做集线器 (hub),双绞线以太网总是和集线器配合使用的。
集线器的一些特点如下:- 从表面上看,使用集线器的局域网在物理上是一个星形网,但由于集线器使用电子器件来模拟实际电缆线的工作,因此整个系统仍像一个传统以太网那样运行。也就是说,使用集线器的以太网在逻辑上仍是一个总线网,各站共享逻辑上的总线,各站中的适配器使用的还是CSMA/CD协议。网络中各站必须争夺对传输媒体的控制,并且在同一时刻之多只允许一个站发送数据。
- 一个集线器有许多个硬件端口。
- 集线器工作在物理层,它的每个物理端口仅仅简单地转发比特,不进行碰撞检测。
- 集线器采用了专门的芯片,进行自适应串音回波抵消,每个比特在转发之前还要进行再生整形并重新定时。
集线器本身必须非常可靠。现在的堆叠式 (stackable) 集线器有4~8个集线器堆叠起来使用。集线器一般都有少量的容错能力和网络管理能力。 具体可以见书P91提供的例子。
以太网的MAC层
- MAC层的硬件地址:MAC层的硬件地址叫做MAC地址,也叫做硬件地址 (hardware address) 或物理地址。适配器有过滤功能,当它收到以太网上的MAC帧时会先用硬件检查MAC帧中的目的地址。如果是发往本站的帧就手下,然后再进行其它的处理。否则就将此帧丢弃,不再进行其它的处理。
- MAC帧的格式:具体见书P95。
关于更多内容,详细见书P93,这里不多阐述。
扩展的以太网
对以太网的扩展可以在物理层或是数据链路层进行,这种扩展的以太网在网络层看来仍然是一个网络。在物理层的扩展是通过多个集线器组成多级结构实现的,但这会带来一些去缺点 (P98),在数据链路层的扩展是通过以太网交换机实现的。
扩展以太网更常用的方法是在数据链路层进行,最初人们使用的是网桥 (bridge)。网桥对收到的帧根据其MAC帧的目的地址进行转发和过滤。当网桥收到一个帧时,并不是向所有接口转发此帧,而是根据此帧的目的MAC地址,查找网桥中的地址表然后确定该帧转发在哪一个接口,或者把它丢弃,即过滤。
1990年问世的交换式集线器 (switching hub)很快就淘汰了网桥。交换式集线器常称为以太网交换机 (switch) 或第二层交换机 (L2 switch),强调这种交换机工作在数据链路层。
以太网交换机实质上就是一个多接口的网桥,通常都有十几个或或更多的接口,和工作在物理层的转发器,集线器有很大的区别。以太网交换机的每个接口都直接与一个单台主机或另一个以太网交换机相连,并且一般都工作在全双工方式。以太网交互机还具有并行性,即能同时连同多对接口,使多对主机能够同时通信 (而网桥只能一次分析和转发一个帧)。相互通信的主机都是独占传输媒体,无碰撞地传输数据。
以太网交换机的接口还有存储器,能在输出端口繁忙的时候把到来的帧进行缓存。
以太网交换机是一种即插即用设备,其内部的帧交换表 (又称为地址表) 是通过自学习算法自动地逐渐建立起来的。 以太网交换机由于使用了专用的交换结构芯片,用硬件转发,其转发速率要比使用软件转发的网桥块很对。
从共享总线以太网到交换式以太网,所有的接入设备的软件和硬件,适配器等都不需要作任何改动。
虽然许多以太网交换机对收到的帧采用存储转发方式进行转发,但也有一些交换机采用直通 (cun-through) 的交换方式。直通交换不必把整个数据帧先缓存后进行处理,而是对接收数据帧的同时就立即按数据帧的目的MAC地址决定该帧的转发接口。直通交换的一个缺点就是它不检查差错就直接将帧转发出去,因此可能会转发出无效帧。以太网的自学习算法
A ______ s1-eth0 — s1-eth1 _________B
C ______ s1-eth2 — s1-eth3 _________D
考虑上面的拓扑,s1为以太网交换机,s1-eth#为以太网接口。
假设s1的地址表是空的,A向B发送了一个帧。1. s1从s1-eth0接收到了A发送的帧,将A的MAC地址存在地址表中,安装如下的表项:
MAC_address(A) : s1-eth0
2. s1读取到帧的目的地址为B的MAC地址,查找地址表,发现没有匹配项,于是向除了s1-eth1外的所有接口广播该帧。
3. B收到A发送的帧后发现目的地址是自己的MAC地址,于是将它收下,并发送给A一个帧 (如果需要的话)
4. s1从s1-eth1接收到了B发送的帧,将B的MAC地址存在地址表中,安装表项,然后检查地址表匹配到A的MAC地址,因此将帧通过s1-eth0转发出去。
5. 最终s1将能够学习到所有主机的MAC地址对应的转发接口。
以太网的地址表中的每个表项都设定了一个有效时间。过期的表项会被自动删除。用这样的方法保证地址表中的数据都符合当前网络的实际情况。有时为了增加网络的可靠性,在使用以太网交换机组网时,往往会增加一些冗余链路。 在这种情况下,自学习的过程可能会导致以太网帧在网络的某个环路中无限制地兜圈子 (事实上,如果以太网机之间组成了环形拓扑也会发生),引发广播风暴。 P101提供了一个例子。
为了解决这种问题,IEEE的802.1D标准制定了一个生成树协议STP (Spanning Tree Protocol)。其要点时不改变网络的拓扑,但在逻辑上切断某些链路,使得从一台主机到其它所有主机的路径都是无环的树状结构,从而消除了这种现象。从总线以太网到星形以太网
总线以太网使用CSMA/SD协议,以半双工方式工作。但以太网交换机不使用共享总线,没有碰撞问题,因此不使用CSMA/SD协议,而是以全双工方式工作。
虚拟局域网
利用以太网交换机可以很方便地实现虚拟局域网VLAN (Virtual LAN)。在IEEE 802.1Q标准中,对虚拟局域网VLAN是这样定义的:
虚拟局域网VLAN是由一些局域网网段构成的与物理位置无关的逻辑组,而这些网段具有某些共同的需求。每一个VLAN的帧都有一个明确的标识符,指明发送这个帧的计算机属于哪一个VLAN。
虚拟局域网其实是局域网给用户提供的一种服务,而不是一种新型局域网。同一个VLAN的计算机可以处在不通的局域网中,成员间发送数据时只会被同个VLAN内的计算机接受,该VLAN外的计算机不会收到数据。具体可见P102,书里提供了一个例子。
虚拟局域网协议允许在以太网的帧格式中插入一个4字节的标识符,称为VLAN标记 (tag),用来指明发送该帧的计算机属于哪一个虚拟局域网。VLAN标记插于MAC帧首部的源地址与类型字段之间,前两个字节设置为0x8100,指明该帧是VLAN帧,后两个字节中的前三位是用户优先级,接着是一位规范格式指示符 (Canonical Format Indicator),最后12位是该VLAN的ID,VLAN标识符VID,它唯一标志了这个以太网帧属于哪一个VLAN。
VLAN帧的格式可见P103。 -
【计算机网络】第三章:数据链路层
2020-07-07 12:20:32数据链路层不关心物理层解决的问题,只关心帧头帧尾和校验。 3.1.1 数据链路层的信道类型 ->点到点信道:这种信道使用一对一的点对点通信方式。 ->广播信道:广播信道上的主机很多,需要专用的共享信道协议... -
小白日记:数据链路层概述
2021-01-27 22:44:47数据链路层要解决三个问题 封装成帧 帧就是数据链路层的数据的基本单位。 发送端会在网络层的一段数据前后添加特定的标记,添加完这段标记之后,这段数据就是帧了。 接收端会根据标记辨认出“帧” 这里需要注意的是... -
计算机网络之数据链路层要点笔记
2020-04-06 00:22:04数据链路层要解决的三个基本问题 封装成帧、透明传输、差错检测 字符填充和比特填充方法 为解决透明传输问题,就需要将控制字符与一般的字符区分开来,于是产生了字符填充方式与比特填充方式两种: 字符填充方式:... -
网络-数据链路层回顾
2020-02-23 19:52:34数据链路层是干嘛的? 网络层是研究分组怎样从一个网络通过路由器转发到另一个网络 数据链路层主要研究在同一个局域网中,分组怎样从一...数据链路层的三个需要解决的基本问题:封装成帧、透明传输、差错检测 了... -
计算机网络 - 数据链路层
2015-10-31 15:59:37数据链路层基于物理层提供的数据传输,信道复用技术要实现局域网内的主机间通信,通常具备点对点和广播信道,即一对一和一对多通信方式。这两种信道分别使用PPP协议及CSMA/CD协议。该层需解决三个基本问题:封装成帧... -
韩立刚计算机网络笔记-第04章 数据链路层
2020-06-11 20:08:494.1 数据链路层要解决的三个基本问题 4.1.1 数据链路和帧 链路和数据链路的区别 链路(Link)是指的从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。 数据链路(Data Link)则是... -
《计算机网络》谢希仁第7版学习笔记 之 数据链路层
2020-07-06 21:59:51文章目录《计算机网络》谢希仁第7版学习笔记 之 数据链路层计算机网络体系结构数据链路层使用的信道数据链路和帧三个基本问题封装成帧用控制字符进行帧定界的方法举例透明传输用“字节填充”法解决透明传输的问题... -
计算机网络概述---数据链路层
2018-10-20 20:40:00数据链路层基本概念 三个基本问题 封装成帧:在一段数据的前后加上首部和尾部,然后构成帧,首部和尾部的作用就是进行帧的界定; 透明传输:当传输的数据中含有首部和尾部的字符时,需要进行转义(用字节填充解决... -
-
应用层、运输层、网络层、数据链路层、物理层的区别与功能;转发器、集线器、网桥、交换机、路由器、网关的...
2020-07-02 12:28:272、应用层、运输层、网络层、数据链路层、物理层的区别与功能 3、转发器、集线器、网桥、交换机、路由器、网关的功能与区别 一、二:不同传输单位与各层级的区别和作用: 1、应用层: 概念:通过应用进程间的... -
计算机网络数据链路层
2018-08-08 21:38:51数据链路层需要解决的三个问题对于封装成帧 对于透明传输 对于差错检验数据链路层的传输方式对于点对点通信使用PPP形式,对于广播通信则是使用CSMA/CD 形式PPPCSMA / CD 转载于:https:/... -
循环冗余检验CRC的原理
2016-09-29 18:33:28数据链路层的简介:数据链路层主要使用两种信道类型,一种是点对点信道,另一种是广播...数据链路层需要解决的三个问题:1,封装成帧2,透明传输3,差错检测目前在数据链路层广泛使用了循环冗余检验CRC的检错技术。C... -
计算机网络笔记(2)2020-10-29
2020-10-29 15:56:43需要解决的三个基本问题2. 两种情况下的数据链路层使用点到点信道的数据链路层使用广播信道的数据链路层 计算机网络笔记(2) 来自韩立刚老师的计算机网络 2020年10月28日 整理:程琪皓 教材使用谢希仁老师... -
计算机网络常见问题解答
2010-06-07 08:19:11问题3-5:除了差错检测外,面向字符的数据链路层协议还必须解决哪些特殊的问题? 问题3-6:为什么计算机进行通信时发送缓存和接收缓存总是需要的? 问题3-7:以太网使用载波监听多点接入碰撞检测协议CSMA/CD。频分... -
华为初级网络工程师(HCIA)(三)——网络模型
2020-06-26 12:57:21本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 ...物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。(网络工程师必背) TCP/IP -
谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar
2013-06-13 22:35:2110.2.4 指针变量几个问题的进一步说明 140 810.3 数组指针和指向数组的指针变量 141 10.3.1 指向数组元素的指针 142 10.3.2 通过指针引用数组元素 143 10.3.3 数组名作函数参数 146 10.3.4 指向多维数组的指针和指针... -
InetAddress类的使用
2020-10-12 21:33:29一、实现网络通信需要解决的两个问题 1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用 2.找到主机后如何可靠高效地进行数据传输 二、网络通信的两个要素: 1.对应问题一:IP和端口号 2.对应问题二:... -
简述tcp/ip协议三次握手、四次挥手
2020-08-10 18:44:12TCP/IP传输协议严格来说是一个四层结构:应用层、传输层、网络层、和数据链路层 ** UDP协议 UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息,... -
java中InetAddress类的使用
2020-12-14 10:11:47一、实现网络通信需要解决的两个问题 1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用 2.找到主机后如何可靠高效地进行数据传输 二、网络通信的两个要素: 1.对应问题一:IP和端口号 2.对应问题二... -
清华大学的计算机网络课件
2010-03-26 11:11:56问题3-5:除了差错检测外,面向字符的数据链路层协议还必须解决哪些特殊的问题? 问题3-6:为什么计算机进行通信时发送缓存和接收缓存总是需要的? 问题3-7:在教材中的3.3.3节提到“发送窗口用来对发送端进行流量... -
第九周Java作业-网络通信
2020-11-18 18:25:27数据链路层负责数据通道的建立与拆除,可以对数据进行检错和纠错,是点到点的通信;网络层解决跨越多个链路甚至不同网络设备间的通信问题,是端到端的通信;传输层解决处于不同网络设备间的通信连接、通信管理;会话... -
数据链路层 网络层【第一篇】 网络层【第二篇】 网络层【第三篇】 运输层 应用层 项目系列 揭秘!消息管理平台实现原理 广告系统基础入门 CPS?淘宝客这项技术是什么实现的? :ramen:工具使用 三歪给女朋友...
-
计算机网络笔记(3)2020-10-30
2020-10-29 17:22:00需要解决的三个基本问题2. 两种情况下的数据链路层3. 以太局域网1). 概述2). 拓扑3). 信道利用率4). MAC层4. 扩展以太网5. 高速以太网 计算机网络笔记(3) 来自韩立刚老师的计算机网络 2020年10月30日 前一篇:... -
Day62.IO网络编程复习 -Java常用类、集合、IO#
2020-10-05 18:44:29一、实现网络通信需要解决的两个问题 1. 如何精确地定位网络上一台或多台主机; 定位主机上的特定的应用。 2. 找到主机后如何可靠高效地进行数据传输。 二、网络通信的两个要素: 1. 对应问题①: IP和端口号 2. 对应... -
第六次作业
2020-11-15 09:30:20物理层实现比特形式的信息传输,数据链路层是网络邻节点设备间二进制信息传输的通道,网络层是解决跨越多个链路以及不同网络设备间的通信问题,传输层解决不同网络设备间的通信连接,通信管理。应用层表示层会话层...
-
零基础一小时极简以太坊智能合约开发环境搭建并开发部署
-
树莓派使用pwm控制风扇
-
基于微信的同城小程序、校园二手交易小程序 毕业设计毕设源码使用教程
-
BNUZ计科一班作业第七题,负数进制
-
2014年重庆理工大学《数据库原理及应用》两套期末考试试卷.pdf
-
2021年 系统分析师 系列课
-
Linux挂载exfat格式U盘
-
2014年重庆理工大学《ERP原理及应用I》两套期末考试试卷.pdf
-
2021年 系统架构设计师 系列课
-
朱老师鸿蒙系列课程第1期-3.鸿蒙系统Harmonyos源码配置和管理
-
LeetCode.304 二维区域和检索 - 矩阵不可变
-
IEXPath.zip
-
VMware vSphere ESXi 7 精讲/VCSA/VSAN
-
python Flask+scrapy+人工智能 实现高性能搜索引擎
-
2014年重庆理工大学《计算机专业英语》期末考试试卷.pdf
-
投标方法论
-
【写作技巧】毕业论文如何写目录?
-
用研转岗规划——案例2则
-
【锐捷校园网用电脑开热点】简明教程
-
UVA839 天平 Not so Mobile