【计算机网络】数据链路层深度解析

  • 概述
  • 三个重要问题
    • 封装成帧
    • 差错检测
    • 可靠传输
  • 使用广播信道的数据链路层
    • 数据链路层的互连设备
  • 媒体接入
  • MAC地址
  • 集线器与交换机区别
  • 以太网交换机生成树协议STP

概述

  • 链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。
  • 数据链路是指把实现通信协议的硬件和软件加到链路上,就构成了数据链路
    数据链路层以帧为单位传输和处理数据。

三个重要问题

封装成帧

指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧。
帧头和帧尾中包含有重要的控制信息,其作用·之一是帧定界
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。

  • 对于面向字节的物理链路使用字节填充的方法实现透明传输
  • 对于面向比特的物理链路使用比特填充的方法实现透明传输

为了提高帧传输效率,应当使帧的数据部分的长度尽可能大一些。但是设计了最大传输单元为MTU

差错检测

在一段时间内,传输错误的比特占所传输比特总数的比特率称为误码率BER
使用差错检测码来检测数据在传输过程中是否产生了比特差错,是数据链路层所要解决的重要问题之一。
但是检错码只能检测出错误,但是不能定位错误。

  • 奇偶校验
    在待发送数据后面添加1位奇偶校验位,使整个数据(包括所添加的校验位在内)中的“1”的个数为奇数(奇校验)或偶数(偶校验)
    如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码
    如果有偶数个位发生误码,则奇偶性不发生变化,不可以检查出误码
    因此其漏检率很高,一般不会采用。

  • 循环冗余校验CRC
    其漏检率很低,在数据链路层中广泛使用。
    收发双方约定好一个生成多项式G(x)
    发送方基于待发送的数据和生成多项式计算出差错检测码(冗余码),将其添加到待传输数据后面一起传输。
    接收方通过生成多项式来计算收到的数据是否产生了误码。

可靠传输

  • 基本概念:比特差错只是传输差错的一种

从整个计算机网络体系结构来说,传输差错还包括分组丢失,分组失序,分组重复。这些一般不会出现在数据链路层,而是出现在其上层。
可靠传输服务并不仅仅局限于数据链路层,其他各层均可选择实现可靠传输。

  • TCP向其上层提供面向连接的可靠传输服务
  • UDP向其上层提供无连接,不可靠传输服务
  • IP向其上层提供无连接,不可靠传输服务
    一般情况下,有线链路的误码率比较低,为了减少开销,并不要求数据链路层向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。

无线链路易受干扰,误码率比较高,因此要求数据链路层必须向上层提供可靠传输服务。

  • 点对点协议-ppp协议是目前使用最宽泛的点对点数据链路层协议。
    主要由对各种协议数据报的封装方法(封装成帧)、链路控制协议LCP 用于建立配置以及测试数据链路的连接、一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议

使用广播信道的数据链路层

数据链路层的互连设备

数据链路层的广播信道与互连设备
在网络通信的模型中,数据链路层位于网络层和物理层之间,负责在两个相邻的网络节点之间传输数据帧。数据链路层的主要任务包括错误检测和纠正、流量控制以及链路管理。在这一层中,广播信道和互连设备扮演了至关重要的角色,这两者对于数据链路层的工作效率和网络的可靠性都有着直接影响。

  1. 广播信道
    广播信道是一种特殊的信道类型,它允许一个节点将数据帧发送到同一网络上的所有其他节点。广播信道在局域网(LAN)中非常常见,例如以太网就是一个典型的广播信道。通过广播,发送端不需要知道接收端的具体位置或地址,它只需将数据帧广播到网络上,所有连接到该网络的节点都能够接收到这个数据帧。

  2. 信道的优点包括:
    简化通信:广播信道使得网络通信变得更为简单,因为发送端不需要指定特定的接收节点地址。
    降低成本:在许多情况下,广播信道可以降低网络设备的成本,因为它们不需要复杂的寻址或路由功能。
    快速传播:广播可以确保数据帧迅速传播到网络上的所有节点。
    广播信道的挑战包括:
    数据碰撞:在广播信道中,多个节点可能同时发送数据,导致数据碰撞。这需要通过碰撞检测和回退机制(如以太网的CSMA/CD)来解决。
    带宽竞争:广播信道中的所有节点共享带宽,当网络流量增加时,可能会导致网络拥堵。
    数据链路层的互连设备
    数据链路层的互连设备用于连接和管理不同网络节点之间的通信。这些设备包括集线器、交换机和网桥,每种设备都有其独特的功能和适用场景。

  3. 集线器(Hub):
    集线器是最基本的互连设备,它简单地将接收到的数据帧广播到所有端口。集线器没有能力识别数据帧的目标地址,因此它只能通过广播的方式进行通信。虽然集线器成本低,但由于它不能减少数据碰撞和带宽竞争,因此在现代网络中逐渐被淘汰。

  4. 交换机(Switch):
    交换机是比集线器更先进的互连设备。它能够根据数据帧的目的MAC地址将数据帧转发到特定的端口,从而减少了广播域的大小。交换机通过维护一个MAC地址表来记录网络上每个节点的地址,并智能地转发数据。这大大提高了网络的效率和带宽利用率。

  5. 网桥(Bridge):
    网桥用于连接两个或多个网络段,并转发数据帧。与交换机类似,网桥可以减少网络中的广播流量,但它主要用于将不同的局域网连接在一起。网桥根据MAC地址表来判断数据帧的转发方向,并能够有效地分割和管理网络流量。

  6. 互连设备的作用包括:
    减少广播风暴:交换机和网桥通过减少广播域来降低网络中的广播风暴,从而提高网络性能。
    提高带宽利用率:交换机通过单播转发数据帧,避免了带宽资源的浪费。
    提供网络隔离:网桥可以将不同的网络段隔离开来,增强网络的安全性和管理性。

媒体接入

媒体接入控制-动态接入控制-随机接入

  • CSMA是指载波监听多址接入,并不使用确认机制
  • CSMA/CD是指载波监听多址接入/碰撞检测,是对CSMA的改进,是早期共享以太网的信道访问控制协议,并不使用确认机制。
  • CSMA/CA是指载波监听多址接入/碰撞避免,是802.11局域网采用无线信道访问控制协议。802.11局域网在使用CSMA/CA的同时,还使用停止-等待协议。这是因为无线信道的通信质量远不如有线信道,因此无线站点每发送完一个数据帧后,要等到收到对方的确认帧后才能继续发送下一帧。
  • CDMA是指码分多址,属于静态划分信道,是物理层的信道复用技术 ,不属于MAC协议。

MAC地址

MAC地址是以太网的MAC子层所使用的地址(数据链路层)
当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,每一个主机都必须能有唯一的标识,即一个数据链路层地址。

  • 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。由于这类地址是用于媒体接入控制MAC,因此这类地址被称为MAC地址
  • MAC地址被固化在网卡的电可擦可编程只读存储器EEPROM中,因此MAC地址被称为硬件地址,MAC地址有时也被称为物理地址。

IP地址是TCP/IP体系结构网际层所使用的地址
IP地址是因特网上的主机和路由器所使用的地址,用于标识两部分信息

  • 网络编号:标识因特网数以百万计的网络
    主机编号:标识同一网络上不同主机(或路由器)

  • 数据包转发过程中IP地址与MAC地址变化情况:
    源IP地址和目的IP地址保持不变
    源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。

ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址。
源主机在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址,如果找到了则可以封装MAC帧进行发送,找不到则发送ARP请求(封装在广播MAC帧中)
目的主机收到ARP请求后,将源主机IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应,ARP响应包含有目的主机IP地址和MAC地址。
源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后就可以封装之前想发送的MAC帧并发送给目的主机。

  • ARP的作用范围:逐段链路或逐个网络使用

集线器与交换机区别

  • 集线器HUB
    早期以太网的互连设备
    工作在OSI体系结构的物理层
    对接收到的信号进行放大、转发
    使用集线器作为互连设备的以太网属于共享总线式以太网。集线器互连起来的所有主机共享总线宽带,属于同一个碰撞域和广播域。

  • 交换机SWITCH
    目前以太网中使用最广泛的互联设备
    工作在OSI体系结构的数据链路层(也包括物理层)
    根据MAC地址对帧进行转发
    使用交换机作为互连设备的以太网,称为交换式以太网。交换机可以根据MAC地址过滤帧,即隔离碰撞域。
    交换机的每一个接口是一个独立的碰撞域
    交换机隔离碰撞域但是不隔离广播域(VLAN除外)

以太网交换机生成树协议STP

生成树协议STP可以在增加冗余链路来提高网络可靠性的同时又避免网络环路带来的各种问题
不论交换机之间采用怎么样的物理连接,交换机都能自动计算并构建一个逻辑上没有环路的网络,其逻辑拓扑结构必须是树形的,最终生成的树形逻辑拓扑要确保连通整个网络,当首次连接交换机或网络物理拓扑发生变化时,交换机都将进行生成树的重新计算。

  • 交换机端口类型:
  1. Access:
    连接用户计算机
    只能属于一个VLAN
    PVID与端口所属VLAN的ID相同,默认为1
    接收处理方法:一般只接收未打标签的普通以太网帧,并给其打标签。
    发送处理方法:如果帧中的VID等于端口PVID,则去掉标签并转发,否则丢弃。
  2. Trunk
    交换机之间或交换机与路由器之间的连接
    可以属于多个VLAN
    用户可以设置PVID,默认为1
    接收处理方法:接收已打标签的帧,接收未打标签的帧,根据端口的PVID值给帧打标签
    发送处理方法:帧中VID等于PVID,去掉标签再转发。帧中VID不等于端口PVID,直接转发
  3. Hybrid
    交换机之间、交换机与路由器之间、交换机与用户计算机之间的连接
    可以属于多个VLAN
    用户可以设置PVID,默认为1
    接收处理方法:接收已打标签的帧,接收未打标签的帧,根据端口的PVID值给帧打标签
    发送处理方法:查看数据帧中的VID是否在端口的“去标签”列表中,如果存在,则去掉标签再转发。如果不存在直接转发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/54191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

硬件工程师笔试面试——集成电路

目录 17、集成电路 17.1 基础 集成电路实物图 17.1.1 概念 17.1.2 集成电路的发展历程 17.1.3 集成电路的分类 17.1.4 集成电路的制造工艺 17.1.5 集成电路的应用 17.2 相关问题 17.2.1 集成电路的制造工艺中,光刻技术是如何实现的? 17.2.2 在集成电路设计中,如何…

海外云手机——跨国业务的高效工具

海外云手机是一种基于云计算的虚拟手机服务,依托海外服务器实现跨国网络访问。这项服务不仅具备传统智能手机的所有功能,还突破了地域限制,为跨国业务提供更加便捷、高效、安全的解决方案。 随着全球化的加速和互联网的快速普及,跨…

搭建本地DVWA靶场教程 及 靶场使用示例

1. DVWA简介 DVWA(Damn Vulnerable Web Application)一个用来进行安全脆弱性鉴定的PHP/MySQL Web 应用平台,旨在为网络安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。 DVW…

git编译安装报错

编译安装步骤 卸载旧的 yum -y remove gitcd /usr/local/src/wget https://www.kernel.org/pub/software/scm/git/git-2.15.1.tar.xztar -vxf git-2.15.1.tar.xzcd git-2.15.1make prefix/usr/local/git allmake prefix/usr/local/git installecho "export PATH$PATH:/usr…

用户流失不再是问题,Xinstall助你实现App推广新突破!

在App推广的道路上,我们总会遇到各种各样的挑战。裂变营销难做、用户流失率大、推广流程让用户反感……这些问题是否也曾让你苦恼不已?别担心,今天我们就来揭秘一个神器——Xinstall,看看它是如何助力App拉新推广,打破…

k8s pod网络故障注入,命令行实现

工具介绍 crictl工具&#xff1a;用于查询k8s pod和容器信息nsenter工具&#xff1a;用于进入容器的网络命名空间tc工具&#xff1a;注入网络故障 实现k8s pod级别网络故障 首先查找故障注入的pod的宿主机&#xff0c;并ssh登陆进去 kubectl get pod -n <namespace> …

笔记整理—内核!启动!—kernel部分(6)buxybox详解

上一章我们说到busybox&#xff0c;但还有一部分没有说完&#xff0c;busybox的配置与kernel的menuconfig几乎一样。也是配置然后make、makeinstall&#xff0c;kbuild是busybox的makefile&#xff0c;可以根据installtion options设定安装位置&#xff0c;安装后会出现/bin、/…

启程Pulsar:深入剖析高速启动引擎,揭秘消息中间件巨兽的诞生

文章目录 一、简析二、何时、如何触发启动三、Broker启动流程四、总结 一、简析 Broker的启动流程框架基本如下 触发启动初始化 读取配置、检测、赋值 启动 Bookie启动Broker启动 启动Netty启动后台监控任务 二、何时、如何触发启动 Broker的启动基本都是靠维护人员主动触…

五大注入攻击网络安全类型介绍

1. SQL注入&#xff08;SQL Injection&#xff09; SQL注入流程 1.1. 概述 SQL注入是最常见的注入攻击类型之一&#xff0c;攻击者通过在输入字段中插入恶意的SQL代码来改变原本的SQL逻辑或执行额外的SQL语句&#xff0c;来操控数据库执行未授权的操作&#xff08;如拖库、获取…

极光参展2024年服贸会并荣获“年度出海领航企业”荣誉

近日&#xff0c;由商务部和北京市人民政府共同主办的2024年中国国际服务贸易交易会&#xff08;以下简称&#xff1a;服贸会&#xff09;圆满落下帷幕。领先的客户互动和营销科技服务商&#xff0c;极光&#xff08;Aurora Mobile&#xff0c;纳斯达克股票代码&#xff1a;JG&…

《JavaEE进阶》----15.<Spring Boot 日志>

本篇文章将记录我学习SpringBoot日志 1.日志文件的用途 2.SpringBoot日志文件的配置 3.用lombook依赖引入Slf4j注解&#xff0c;从而引入log对象。方便我们打印日志。 一、日志的作用 日志主要是为了发现问题、分析问题、定位问题。除此之外、日志还有许多其他的用途。 1.系统监…

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3568移植案例(下)

往期知识点记录&#xff1a; OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——轻量系统STM32F407芯片移植案例 OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——Combo解决方案之W800芯片移植案例 OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——小型系统STM32M…

leetcode:验证回文串

[题目链接] string func(string s)//先将大写转换成小写&#xff0c;并且去除空格等&#xff0c;只保留小写字母 {string tmp;string::iterator it s.begin();while (it ! s.end()){//大写字母if (*it < 90 && *it>65)//A-Z的ASCII码为65-90{tmp *it 32;//a-z…

蓝桥杯DS18B20程序源码

蓝桥杯DS18B20程序源码解析 蓝桥杯&#xff0c;作为一项全国瞩目的电子设计竞赛&#xff0c;其核心挑战在于参赛者需深度融合单片机编程与各类电子元件的应用能力。在众多项目中&#xff0c;涉及DS18B20数字温度传感器的程序源码尤为引人注目&#xff0c;它巧妙地将单片机技术…

【JAVA基础】实现Tomcat基本功能

文章目录 TCP/IP协议Socket编程ServletTomcat 在搜索了两三天之后&#xff0c;也是大概弄懂了Tomcat是个什么东西&#xff0c;我们在说Tomcat之前&#xff0c;先来了解一下下面这三个东西&#xff1a; TCP/IP协议 TCP/IP 是互联网通信的基础协议。TCP&#xff08;传输控制协议…

《华为交换机堆叠配置》

目录 1. 扩展端口数量: 2. 提高可靠性: 3. 简化管理: 4. 实现负载均衡: 5.华为交换机堆叠通常有两种方式: 6.下面举例介绍一下华为交换机堆叠的详细配置步骤。 华为交换机堆叠是一种将多台华为交换机组合在一起,形成一个逻辑上统一的交换机设备的技术。通过堆叠,可以…

CSP-J 算法基础 广度优先搜索BFS

文章目录 前言广度优先搜索是什么广度优先搜索的实现BFS 的具体编程实现举例&#xff1a;广度优先搜索的具体步骤初始状态&#xff1a;步骤 1&#xff1a;加入起点节点 1步骤 2&#xff1a;访问队列中的节点 1&#xff0c;加入其邻居节点 2 和 4步骤 3&#xff1a;访问队列中的…

Java | Leetcode Java题解之第405题数字转换为十六进制数

题目&#xff1a; 题解&#xff1a; class Solution {public String toHex(int num) {if (num 0) {return "0";}StringBuffer sb new StringBuffer();for (int i 7; i > 0; i --) {int val (num >> (4 * i)) & 0xf;if (sb.length() > 0 || val …

开发后台管理系统-开发环境搭建

文章目录 需求设计环境搭建创建项目工程测试结果 安装Element Plus安装路由安装Vue Router配置Vue Router 测试 需求 开发一个后台管理系统 这里以CDN后台管理系统为例 设计 参照 CDN后台管理系统功能说明文档 环境搭建 确保已经安装了Node.js和npm 执行 npm install -g vu…

映射map

Hello,大家好&#xff0c;我是菜就多练&#xff0c;输不起就别玩&#xff0c;今天我们来讲映射。 由于近期有事&#xff0c;所以停更了一段时间&#xff0c;请大家谅解。 在 C 标准模板库&#xff08;STL&#xff09;中&#xff0c;map 是一种关联容器&#xff0c;它存储键值…