本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》
02 数据链路层
在网上看到其他人做了详细的笔记,就不再多余写了,直接参考着学习吧。
1
详解数据链路层-数据链路层的功能【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客
2
详解数据链路层-介质访问控制【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客
3
详解数据链路层-局域网&广域网【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客
4
详解数据链路层-数据链路层设备【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51CTO博客
相关补充
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报。
数据链路层的数据单元是数据帧。
数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始比特流的功能, 将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路, 使之对网络层表现为一 一条无差错的链路。
物理层容易把数据弄丢,数据链路层就需要把可能要发生的差错预知好,然后进行一定的差错控制,给网络层提供一个无差错的服务
ps:如何理解物理层和链路层的关系呢?
之前做STM32开发时,会编写外设的驱动,比如一个spi外设,然后让外设发送和接收高低电平,这个最底层的硬件外设就相当于物理层,spi外设只负责把比特流发出去;但是调用spi发送接口时,我们要传递进入要发送的数据,这些数据在发送前就要加上帧头帧尾被封装成帧,然后接收方在接收数据时就能进行帧头帧尾以及校验码等的检测,以此来保证数据的正确性,这些工作,就相当于链路层要干的活。
一般在常规的通信方式比如i2c/spi/串口中,有这两层就OK了,但是因为网络传输的复杂性,所以仅用两层很难搞定,所以,才有了上面的更多层次:网络层、运输层、应用层,让不同的层次来实现不同的功能。
关于链路层提供的无差错服务,一般有三种可配置:
1、无连接也无确认,不可靠;
2、无连接但是有确认,一定程度上可靠;
3、面向连接的,可靠;
这里三种服务并不都是可靠的,但是我们肯定要求网路传输的整个过程是可靠的,所以,如果链路层选择了不可靠的服务,那么这种可靠性肯定就要其他层来实现。
链路层的主要功能
关于流量控制
我们来考虑下,发送方和接收方,谁更需要控制流量速率?很容易明白的道理,发送方是主动方,想怎么发就怎么发,想发多快就发多快,但是接收方不一样,接收方需要处理接收到的数据,如果发送方发太快,接收方来不及处理,那么数据就会被覆盖,所以,接收方更需要流量控制。
其实,流量控制就是接收方来控制发送方的发送速率。
较高的发送速度和较低的接受能力的不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。
另外,除了链路层有流量控制,运输层也有流量控制,其实,流量控制可以出现在网络的任何一层,只不过,我们把流量控制的功能分配给了链路层和运输层而已。链路层和运输层的流量控制目的和机制是不太一样的,要有所区分,数据链路层的流量控制是点到点的(直接连接的两个设备),传输层的流量控制是端到端的(两个逻辑上通信的终端)。
根据上面的图我们也能知道,链路层实现流量控制的三大机制就是:停止-等待协议、后退N帧协议以及选择重传协议。
停止-等待协议
每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一个帧。
正常情况下,如果接收方收到的数据经校验后没有问题就会返回一个ACK,发送方在接收到ACK之后,才会发下一帧数据,但是,如果数据传输出现差错,发送方把数据发送出去,接收方接收到的数据因为出错所以不会返回ACK,这时候,发送方要如何处理呢?发送方会设置一个定时时间,叫做重传时间,如果在重传时间内没有收到ACK,那就会将上一帧数据进行重传。每次发送一个帧就启动一个计时器。超时计时器设置的重传时间应当比帧传输的平均RTT(往返时延)更长一些。所以,发送发需要注意,每次发完一个帧后,必须保留它的副本,要不然重传时就没有原数据可传了,一般在收到ACK之后才会将数据删除以释放这部分的内存空间。
隔离冲突域,只会将冲突限制在一个交换机内,如果有两台交换机,那么这台交换机的冲突并不会影响其他交换机;
隔离广播域,只会将广播限制在一个路由器内,如果有两台路由器,那么这台路由器的广播并不会送到其他路由器;路由器和交换机有什么区别?
交换机的作用与功能
局域网(Local Area Network):简称LAN,是指在某一区域内由多态计算机互联成的计算机组,使用广播信道。
特点
覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内;
只用专门铺设的传输介质(双绞线、同轴电缆)进行联网,数据传输速率高(10Mb/s~10Gb/s);
通信延迟时间短,误码率低,可靠性较高;
各站为平等关系,共享传输信道;
多采用分布式控制和广播式信道,能进行广播和组播。
以太网
以太网是应用最为广泛的局域网,包括标准以太网(10Mbps)、快速以太网(100Mbps)、千兆以太网(1000Mbps)和10G以太网,它们都符合IEEE802.3系列标准规范。逻辑拓扑总线型,物理拓扑是星型或拓展星型。
以太网是一种基带总线局域网规范,使用CSMA/CD技术
以太网在局域网各种技术中站统治性地位
造价低廉(以太网网卡不到100块)
是应用最广泛的局域网技术
比令牌环网、ATM网便宜,简单
满足网络速率的要求10Mb/s~10Gb/s
以太网的两个标准
DIX Ethernet V2:第一个局域网产品(以太网)规约
IEEE 802.3:IEEE 802.3委员会802.3工作组制定的第一个IEEE的以太网标准(帧的格式有一点变动)
因此以太网也可以叫做802.3局域网
以太网提供无连接、不可靠的服务
无连接:发送方和接收方之间无握手过程
不可靠:不对发送方的数据帧编号,接收方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责。
以太网只实现无差错接收,不实现可靠传输。
以太网协议介绍(ARP、UDP、ICMP、IP)_以太网传输协议是哪个协议-CSDN博客
适配器与MAC地址
计算机与外界局域网的连接通过通信适配器,是在主机箱内的网络接口板/网络接口卡(网卡),现在不再使用单独网卡,已经嵌入好了。
适配器上装有处理器和储存器(包括RAM和ROM),ROM上会有计算机硬件地址MAC地址。
在局域网中,硬件地址又称为物理地址或MAC地址(实际上是标识符)。
MAC地址:每个适配器有一个全球唯一的48位二进制地址,前24位代表厂家(由IEEE规定),后24位厂家自己指定。常用6个十六进制数表示,如02-60-8c-e4-b1-21
广域网
广域网(WAN,Wide Area Network),通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性远程网络。
广域网的通信子网主要使用分组交换技术(属于网络层)。广域网的通信子网可以利用公用分组交换网、卫星通信和无线分组交换技术,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网是世界范围内最大的广域网。
结点交换机的功能是用于转发分组,但是相比于路由器,结点交换机只能在单个网络中转发分组,路由器可以在多个网络之间转发分组。
广域网中可以有交换机、集线器、路由器等设备,广域网覆盖的网络体系结构层次包含物理层、链路层、网络层,局域网只覆盖物理层、链路层。广域网普遍采用点对点技术,局域网普遍采用多点接入技术,即逻辑上是总线型。广域网强调资源共享,局域网强调数据传输。
疑惑点:
局域网用MAC通讯为什么还要IP?_局域网内部是通过mac地址来转发,而不是通过ip地址-CSDN博客
网络是分层的,从应用层到物理层各层有各层的功能,如果一个层次没有配置就没法调用下一层的功能。因此,如果你没有配置网络层的IP地址,就没法调用数据链路层的MAC地址进行通信。
LAN中是采用MAC通信,但是上层协议没法直接调用MAC协议,必须使用ARP协议将IP地址转换为MAC地址才能通信。如果你自己写程序,可以直接调用MAC,这时就不需要配置IP地址了。
二层交换机之间通信是直接使用MAC地址通信的(通信原理是“转发已知帧,广播未知帧,丢弃同端口帧”),不需要进行转换。
在主机或路由器上要使用ARP协议进行IP到MAC的转换。两台电脑通讯的全过程为:1.根据子网掩码判断源IP与目标IP是属于同一网络;2.使用ARP协议找到相应IP的MAC地址;3.使用MAC地址在LAN内进行通信。
简单来说,局域网不直接用Mac地址是为了局域网广域网统一,不用单独写用局域网通信的协议。
局域网都在同一个网段下,广域网就是把局域网都连接起来形成互联网。
在局域网内,广播是一个很重要的特征,主要体现在以下几个方面:
信息快速传播:
当一台设备发送广播消息时,该消息会迅速被局域网内的所有其他设备接收到,无需逐个指定接收对象,从而实现了信息的快速扩散,这在网络管理、资源发现等场景中非常重要。例如,当新设备接入局域网时,可以通过广播来通知其他设备自己的存在;服务器也可以通过广播来发布自身提供的服务信息,方便客户端快速发现并连接。
设备发现与通信:在局域网中,设备之间需要进行相互通信和交互,广播提供了一种简单有效的设备发现机制。通过发送广播消息,设备可以快速找到局域网内的其他设备,并建立连接。这对于一些需要动态发现设备的应用场景,如打印机共享、文件共享等,非常方便。
简化网络配置:
由于广播可以将消息发送给所有设备,因此在一些网络配置和管理任务中,使用广播可以减少手动配置的工作量。例如,在设置网络参数、更新软件版本等操作时,管理员可以通过广播向局域网内的所有设备发送统一的配置信息或更新指令,提高网络管理的效率。
支持多种网络协议:
许多网络协议都依赖于广播来实现其功能,如 ARP(地址解析协议)和 DHCP(动态主机配置协议)。ARP 用于将 IP 地址解析为 MAC 地址,当设备需要与其他设备通信时,首先会通过广播发送 ARP 请求,以获取目标设备的 MAC 地址。DHCP 则用于自动分配 IP 地址等网络配置信息,客户端通过广播向 DHCP 服务器请求 IP 地址,服务器再通过广播进行响应和分配。
便于网络故障排查:
广播还可以用于网络故障排查和管理。网络管理员可以通过发送特定的广播消息来测试网络的连通性和性能,检测是否存在网络故障或拥塞等问题。例如,使用 Ping 命令发送广播数据包可以检查局域网内所有设备的可达性,帮助管理员快速定位和解决网络问题。
实现冗余和可靠性:
在一些对可靠性要求较高的应用中,广播可以作为一种冗余机制,确保重要信息能够被所有设备接收到。即使个别设备出现故障或网络连接中断,通过广播发送的信息仍然可以被其他正常设备接收和处理,从而提高了整个网络系统的可靠性和容错能力。
综上所述,局域网内的广播特征在多个方面发挥着重要作用。它不仅提高了信息的传播效率和设备的发现速度,还简化了网络配置和管理,支持了多种网络协议的运行,并为网络故障排查和系统的可靠性提供了有力保障。
广域网是由一个一个的局域网连接而成的,不同的局域网处于不同的网段,但是在同一个局域网内,所有的主机都处在同一网段,也就是说,每个局域网都有唯一的一个网络号,每个局域网内部的每个主机都有相同的网络号,但是都有唯一的主机号。
局域网是广播域,通常,如果局域网内的一个主机向另一个主机发送消息时,可以采用广播的形式;两个网络之间通常不使用广播。广播是指在 IP 子网内广播数据包,所有在子网内部的主机都将收到这些数据包。而两个不同的网络之间一般通过路由器进行连接和通信,路由器具有隔离广播域的功能,它会阻止广播数据包从一个网络传播到另一个网络,以避免对其他网络中的设备造成不必要的干扰和影响。
地址解析协议ARP
ARP协议:Address Resolution Protocol(地址解析协议),完成主机或路由器IP地址到MAC地址的映射。解决链路层和物理层下一跳走哪的问题。
具体参考:ARP协议详解-CSDN博客
ARP属于哪一层的协议?
ARP(地址解析协议)属于网络层和数据链路层的协议。
在OSI参考模型中,ARP工作在数据链路层。这是因为ARP的主要功能是在同一局域网内解析出设备的物理地址,这个过程涉及到数据链路层的帧和物理层的硬件地址。在TCP/IP模型中,ARP被视为网络层的一部分。这是因为ARP为IP地址到物理地址的映射提供服务,而IP地址是网络层的概念。
总的来说,ARP作为网络层协议,其数据在实际传输时是封装在数据链路层的,以便能够在局域网内进行有效的通信。
集线器和交换机的区别?
集线器和交换机在网络中都起着连接设备的作用,但它们在工作方式、性能和应用场景等方面存在明显的区别。以下是对两者的详细比较:
一、工作原理
集线器:工作在OSI参考模型的第一层(物理层),主要功能是信号放大和再生。它采用广播的方式将接收到的信号从所有端口转发出去,即当一个端口收到数据后,会将数据发送到除源端口外的所有其他端口,因此同一时间只能有一台设备进行数据传输,若有两个端口同时传输数据就会产生冲突。
交换机:工作在数据链路层,通过记录设备的MAC地址表,能够识别数据包中的目标MAC地址,并将数据直接发送到对应的端口,从而实现了数据的定向传输,不同端口之间可以同时进行数据传输,提高了网络的利用率。
二、数据传输方式
集线器:共享式带宽,所有连接到集线器的设备共享同一带宽,例如,如果总带宽为10Mbps,连接了5台设备,那么每台设备平均可用带宽约为2Mbps。
交换机:独享式带宽,每个端口都有独立的带宽,如一台24口的100Mbps交换机,每个端口都可以同时达到100Mbps的传输速率,不会相互干扰。
三、安全性
集线器:由于其广播式的数据传输方式,数据容易被其他设备监听和窃取,安全性较差。
交换机:数据只在特定的端口之间传输,其他端口无法获取不相关的数据,具有一定的数据隔离性和安全性。
四、应用场景
集线器:适用于小型的局域网,如家庭网络、小型办公室等,对网络性能要求不高且设备数量较少的场景;也常用于一些对成本敏感的场合,如监控摄像头网络等。
交换机:广泛应用于各种规模的局域网,包括企业网络、校园网络、数据中心等,能够满足大量设备同时进行高速数据传输的需求。
五、管理性
集线器:通常没有复杂的管理功能,基本无需配置即可使用,管理较为简单。
交换机:一般具有丰富的管理功能,如VLAN划分、端口配置、流量控制等,可以根据实际需求进行灵活的配置和管理。
六、外观及接口类型
集线器:普通集线器的外部板面结构相对简单,一般有交流电源插座和开关、AUI接口和BNC接口等,正面主要是RJ-45接口,高档集线器可能与现代路由器或交换式路由器外观相似。
交换机:外观多样,常见的有桌面型、机架型等。接口类型丰富,除了RJ-45接口外,还可能有光纤接口等,以满足不同的网络连接需求。
七、发展趋势
集线器:随着网络技术的发展,集线器由于其自身的局限性,在局域网中的应用越来越少,逐渐被交换机所取代。
交换机:不断向更高性能、更多功能、更智能化的方向发展,如支持更高的传输速率、更多的端口类型、更强的安全防护等。
总的来说,集线器和交换机在多个方面存在显著的差异。在选择使用时,应根据实际的网络规模、性能要求、安全需求以及预算等因素综合考虑,以确定最适合的网络连接设备。
这里的冲突怎么理解呢?如果一个设备发送数据了,因为是广播,所以其他所有的端口都会收到数据,也就是说,所有的端口都要进行数据处理,要么正在发送,要么正在接收,没有空闲的端口了。
虽然局域网只覆盖链路层和物理层,但是这并不意味着,在局域网内通信只需要走这两层,不管是在局域网内还是局域网之间,因为应用是最上层,所以只要是应用之间的通信,都需要走完所有的层。局域网内和局域网之间通信的不同之处在于,局域网内可以不用寻找路由。
我们通过网络数据的传输过程来深入理解下,消息从应用层开始,经过运输层、网络层、链路层以及物理层,到达交换机时,从下到上经过物理层,再到链路层,此时,交换机将链路层数据拆包,从里面拿出目标MAC地址,然后根据MAC表将数据从对应端口转发出去,可以看到,这一过程中,交换机都没必要到网络层,所以说,交换机属于二层设备;如果这个数据要发出去,也就是离开当前局域网,那么,该数据就会被发往路由器,路由器从下到上,经过物理层、链路层,此时还就算获取到了目标MAC地址也没用,因为此时已经不在局域网内了,需要做的是根据路由表去找到下一跳,所以,还需要上升到网络层,去寻找路由表,可以看到,路由器需要走到第三层,才能进行下一步转发,因此,路由器属于三层设备。这些都是转发的设备,不需要再往上了,通常,交换机只用实现物理层和链路层的功能,路由器只用实现物理层、链路层以及网络层的功能,到了主机,就需要实现每一层的功能了,因为主机通常都需要部署各种应用的,应用层是最高层,需要经过所有的层次才能实现完整的数据交互。
物理层和链路层解决的是局域网内的数据传输问题,再往上的网络层要解决的就是各局域网之间的数据传输问题。