网络知识扫盲之链路层

说明:为了方便学习,综合了OSI和TCP/IP的优点,得出“五层协议”图

数据链路和帧

链路(物理链路):从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。

数据链路(逻辑链路):把实现通信协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的方法是网络适配器来实现这些协议和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。

帧:数据链路层的协议数据单元。

数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据去除并交给网络层。在因特网中,网络层协议数据单元就是IP数据报(简称为数据报、分组、包)


(a) 简化模型

如上图,点对点信道的数据链路层在进行通信时的主要步骤如下:

(1) 结点A的数据链路层把网络层交下来的IP数据报添加到首部和尾部封装成帧。

(2) 结点A把封装好的帧发送给结点B的数据链路层。

(3) 若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层,否则就丢弃这个帧。

适配器的作用

计算机与外界局域网的连接是通过通信适配器。适配器本来是在主机箱内插入的一块网络接口板(或者是在笔记本电脑中插入的一块PCMCIA卡),这种接口板又称为网络接口卡NIC(Network Interface Card)或简称为“网卡”,由于较新的计算机主板上已经嵌入了这种适配器,不使用单独的网卡,因此使用适配器这个术语会更准确。在适配器上装有处理器和存储器(包括RAM和ROM)。适配器和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,而适配器和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行的。因此,适配器的一个重要功能就是要进行数据串行和并行传输的转换。因为网络的数据率和计算机总线上的数据率并不相同,因此在适配器中必须装有对数据进行缓存的存储芯片。若在主板上插入适配器时,还必须把管理该适配器的设备驱动程序安装在计算机的操作系统中。这个驱动程序以后就会告诉适配器,应当从存储器的什么位置把多长的数据块发送到局域网,或者应该在存储器的什么位置上把局域网传送过来的数据块存储下来。适配器还要能够实现以太网协议。

适配器接收和发送各种帧时不使用计算机的CPU。这时CPU可以处理其他任务。当适配器收到有差错的帧时,就把这个帧丢弃而不必通知计算机。当适配器收到正确的帧时,它就使用中断来通知计算机并交付给协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把IP数据报向下交给适配器,组装成帧后,发送到局域网。下图表示适配器的作用。注意:计算机的硬件地址在适配器的ROM中,而计算机的软件地址---IP地址,则在计算机的存储器中。


           计算机通过适配器与局域网进行通信

 

在数据链路层扩展以太网

1.  网桥的内部结构

下图给了网桥的内部结构要点。最简单的网桥有两个接口。两个以太网通过网桥连接起来后,就成为一个覆盖范围更大的以太网,而原来的每个以太网就可以称为一个网段。

网桥依赖转发表来转发帧。转发表也叫做转发数据库或路由目录。如下图,若网桥从接口1收到A发给E的帧,则在查找转发表后,把这个帧送到接口2转发到另一个网段。使E能够收到这个帧。若网桥从接口1收到A发送给B的帧,就丢弃这个帧,因为转发表表指出,转发给B的帧应当从接口1转发出去,而现在正是从接口1收到这个帧,这说明B和A处在同一个网段上,B能够直接收到这个帧而不需要借助于网桥的转发。

网桥是通过内部的接口管理软件和网桥协议实体来完成上述操作的。

注:网桥的接口也称为端口

2.  网桥的优缺点

网桥的优点:

1) 过滤通信量,增大吞吐量。网桥工作在链路层的MAC子层。可以使以太网各网段成为隔离开的碰撞域。如果把网桥换成工作在物理层的转发器,那就没这种过滤通信量的功能。如下,网桥B1和B2把三个网段连接成一个以太网。但它具有三个隔离开的碰撞域。


网桥使各网段成为隔离开的碰撞域

可以看到,不同网段上的通信互不干扰。例如,A和B正在通信,但其他网段上的C和D以及E和F也都可以同时通信。但如果A要和另一个断网上的C通信,必须经过网桥B1的转发,那么这两个网段上就不能再有其他的站点进行通信(但这时E和F仍然可以通信)。因此,若每一个网段的数据率都是10Mb/s,那么三个网段合起来的最大吞吐量就变成30Mb/s。如果把两个网桥换成集线器或转发器,那么整个网络仍然是一个碰撞域,当A和B通信时,所有其他站点都不能够通信。整个碰撞域的最大吞吐量仍然为10Mb/s

注:

两个网桥之间也可使用一段点到点链路

注意,网桥在转发帧时不改变帧的源地址

2) 扩大了物理范围,因而也增加了整个以太网工作站的最大数目。

3) 提高了可靠性。当网络出现故障时,一般只影响个别网段。

4) 可互连不同物理层、不同MAC子层和不同速率(如10Mb/s和100Mb/s)的以太网

网桥的缺点:

1) 由于网桥对接收的帧要先存储然后查找转发表,然后才转发,而转发之前,还必须执行CSMA/CD算法,增加了延时

2) 在MAC子层并没流量控制功能。当网络上的负荷很重时,网桥中的缓存的存储空间可能不够而发生溢出,以致产生帧丢失的现象。

3) 网桥只适合于用户数不太多(不超过几百个)和通信量不太大的以太网,否则可能因传播过多的广播信息而产生我拿过来拥塞。

3.  透明网桥

目前使用最多的网桥,一种即插即用设备,即只要把网桥介入局域网,不用人工配置转发表网桥就能工作。

网桥自学习原理

若从某个站A发出的帧从接口x进入了某网桥,那么从这个接口出发沿相反方向一定可以把一个帧传送到A。所以网桥只要每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目。请注意,转发表中并没有“源地址”这一栏,而只有“地址”这一栏。在建立转发表时是把帧首部中的源地址写在“地址”这一栏的下面。在转发帧时,则是根据收到的帧首部中的目的地址来转发的。这时就把“地址”栏下面已经记录的原地址当作目的地址,而把记下的进入接口当作转发接口。以下图为例,说明转发表的建立过程。当首先我们要在强调一下网桥和集线器的一个重要区别:网桥是按存储转发方式工作的,一定是把整个帧收下来(但集线器或转发器是逐比特转发)在进行处理,而不管其目的地址是什么。因此网桥丢弃CRC检验有错误的帧以及帧长过短和过长的无效帧,然后按照以下步骤进行处理:

网桥的自学习和转发过程

1) A向B发送帧。连接在同一个局域网上的站点B和网桥B1都能接收到A发送帧。网桥B1按源地址A查找转发表。B1的转发表中没有A的地址,于是把地址A和收到此帧的接口1写入转发表中。这就表示,以后若收到要发给A的帧,就应当从这个接口1转发出去。接着,再按目的地址B查找转发表。转发表中没有B的地址,于是就通过除收到此帧的接口1以外的所有接口(现在就是接口2)转发该帧。网桥B2从其接口1收到这个转发过来的帧。

网桥B2按照同样方式处理收到的帧。B2的转发表中没有A的地址,因此在转发表中写入地址A和接口1.B2的转发表中没有B的地址,因此B2通过接收此帧的接口1以外的所有接口(现在就是接口2)转发该帧。

请注意,现在两个转发表已各有一个项目了。读者可能问,B本来就可以直接收到A发送的帧,为什么还要让网桥B1和网桥B2盲目的转发这个帧呢?答案是:这两个网桥当时并不知道网络拓扑,因此要通过自学习过程(盲目转发的过程)才能逐步弄清除所有的网络拓扑,建立起自己的转发表

2) F向C发送帧。网桥B2从其接口2收到这个帧。B2的转发表中没有F,因此转发表写入地址F和接口2.B2的转发表中没有C,因此要通过B2的接口1把帧转发出去。现在C和网桥B1都能收到这个帧。在网桥B1的转发表中没有F,因此要把地址F和接口2写入转发表,并且还要从B1的接口1转发这个帧。

3) B向A发送帧。网桥B1从器接口1收到这个帧。B1的转发表中没有B,因此在转发表写入地址B和接口1.再查找目的地址A。现在B1的转发表可以查到A,其转发接口是1,和这个帧进入网桥B1的接口一样。于是网桥B1知道了,自己不用转发这个帧。这次网桥B1的转发表增加了一个项目,网桥B2的转发表没变。

显然,如果网络上的每一个站都有发送过帧,那么每一个站的地址最终都会记录在两个网桥的转表中。

实际上,在网桥的转发表中写入的信息除了地址和接口外,还有帧进入该网桥的时间。网桥中的接口管理软件周期性的扫描转发表中的项目,只要在一定时间以前登记的都要删除,以保持最新的网络拓扑。

总结:网桥的自学习和转发帧的一般步骤

1.网桥收到一帧后先进行自学习。查找转发表中与收到帧的源地址,有无相匹配的项目。如果没有,就在转发表中增加一个项目(源地址、进入的接口和时间)。如果有,则把原有的项目进行更新。

2.转发帧。查找转发表中与收到帧的目的地址有无相匹配的项目。如果没有,则通过所有其它接口(进入网桥的接口除外)进行转发。如有,则按转发表中给出的接口进行转发。但应注意,若转发表中给出的接口就是该帧进入网桥的接口,则应该丢弃这个帧(因为这时不需要经过网桥进行转发)

时间: 2024-08-05 09:51:32

网络知识扫盲之链路层的相关文章

Android网络编程系列 一 TCP/IP协议族之链路层

这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请 求和接收RARP应答 ip大家都听说过.至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议,在tcp/ip协议的后面章节会介绍它们(在局域网里面用ARP协议可以很容易的搞瘫痪网络哦) 数据链路层的协议还是很多的,有我们最常用的以太

<再看TCP/IP第一卷>关于链路层的知识细节及相关协议

在TCP/IP协议族中,链路层的主要有三个目的: (1)为IP模块发送和接受数据报 (2)为ARP模块发送ARP请求和接受ARP应答 (3)为RARP发送RARP请求和接受RARP应答 TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网,令牌环网,FDDI,及RS-232串行线等. 两个串行接口链路层协议: SLIP:(Serial Line IP)它是一种在串行线路上对IP数据报进行封装的简单形式,SLIP适合用于家庭中每台计算机及都有的RS-232串行端口和告诉调制解调

网络--链路层协议

以太网和802.3 最小长度,802.3 38,以太网 46 不足插入pad字节补齐 (1)其中的源地址和目的地址是指网卡的硬件地址(也叫MAC 地址),长度是48 位,是在网卡出厂时固化的. (2)注意网卡芯片(例如DM9000A)收到的数据就是如上所示的一长串数据:其中包括以太网帧头.IP报报头.传输层协议段头.应用层所需数据. (3)以太网帧中的数据长度规定最小46 字节,最大1500 字节,ARP 和RARP 数据包的长度不够46 字节,要在后面补填充位.最大值1500 称为以太网的最大

Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)

本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7497260 更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html 作者:闫明 注:标题中的”(上)“,”(下)“表示分析过程基于数据包的传递方向:”(上)“表示分析是从底层向上分析.”(下)“表示分析是从上向下分析. 经过前面两篇博文的分析,已经对L

网络知识收集

最近学习Ravello虚拟化,遇到一些和网络相关的知识,收集后整理如下: L2其实是指七层网络协议中的第二层数据链路层,它的传输是以mac地址为基础 L3指网络层:是以ip地址为基础网络层属于OSI中的较高层次了,从它的名字可以看出,它解决的是网络与网络之间,即网际的通信问题,而不是同一网段内部的事.网络层的主要功能即是提供路由,即选择到达目标主机的最佳路径,并沿该路径传送数据包.除此之外,网络层还要能够消除网络拥挤,具有流量控制和拥挤控制的能力. 个人总结:数据链路层数据传输在寻找mac地址,

TCP/IP详解学习笔记(三) 链路层

学习知识很简单,但坚持不懈却又是如此的困难,即使一直对自己说"努力,不能停下"的我也慢慢懈怠了... 闲话不多说,本篇将讲述TCP/IP协议栈的链路层.在本系列第一篇我讲到,TCP/IP协议栈每一层都有特定的功能, 那么链路层的功能如下: (1). 为IP模块发送和接收数据包 (2). 为ARP模块发送ARP请求和接收ARP应答 (3). 为RARP发送RARP请求和接收RARP应答 1.ARP, RARP协议概述 ARP协议即地址解析协议, 通过该协议应用层可以通过IP地址查询到目的

高项学习之网络知识

高项笔记——网络知识篇 一.网络的分类:局域网.城域网(城市内部).广域网(城市间).  二.局域网协议:     以太网/IEEE802.3(存取方法CSMA/CD.多路侦听.竞争) 发展:快速以太网:802.3u:100M: 千兆以太网(和ATM技术竞争) :光纤或超5类.6类非屏蔽双绞线     令牌环网/IEEE802.5:环形.星型.总线型:(缺点:协议复杂.开支大:优点:确定性 )主要基于屏蔽双绞线和非屏蔽双绞线.     FDDI/光纤分布式数据接口.基于光纤.     广域网协议

网络知识和交换机的基本配置知识培训

网络知识和交换机的基本配置知识培训 一.培训目的: 我中心维护维修人员了解基本网络知识,交换机.路由器的基本配置知识. 二.培训人员: 信息处职员. 三.培训方式.方法: 集中现场培训.交换机模拟配置软件实践. 四.培训内容: 1.网络知识. 2.交换机知识. 3.路由器知识 4.交换机和路由器的区别 5.专业术语知识. 6.锐捷交换机.路由器常用命令   附   件 一.网络知识 (一)因特网:Internet是世界是最大的计算机互连网,是成千上万条信息资源的总称.这些资源以电子文件的形式,在

9、网络知识(路由交换和ARP协议)+配置单网卡多ip和配置默认路由

网络知识详解 提问:网络到底是什么?我们在电缆中传输的都是电信号(高电压或者是低电压),所以高电压就是1,低电压就是0,所以规定一定的时间传输固定的高低电压来当做是接收的数据我们所谓的10Mbps:每秒中可以传输10M个bit所以别人说你的是4M的带宽,指的就是4Mbps,要除以8才是实际的速率那就是4Mbps=4/8MBs=0.5MBs=0.51024KBs=(41024)Kbps=512KB/s的下载速率我们平时说的下载速度就是以KB/s为单位的1KB/S=8Kbps 512KB/S=8K*