计算机网络 ——数据链路层(广域网)

计算机网络 —— 广域网

  • 什么是广域网
  • PPP协议
    • PPP协议的三个部分
    • PPP协议的帧格式
  • HDLC协议
    • HDLC的站
    • HDLC的帧样式
  • PPP和HDLC的异同

我们今天来看广域网。

什么是广域网

广域网(Wide Area Network,简称WAN)是一种地理覆盖范围广泛的计算机网络,其覆盖区域可以从几十公里延伸到几千公里,甚至全球范围。广域网的主要目的是将不同区域的局域网(Local Area Network, LAN)或计算机系统互连起来,使得分布在不同地点的用户和系统能够进行通信和资源共享。

广域网可以跨越城市、国家乃至洲际,常用于连接企业的各个分支机构、数据中心,以及为远程工作人员提供对总部网络资源的访问。它利用多种通信技术来实现长距离的数据传输,包括但不限于公用分组交换网、卫星通信、无线分组交换和光纤网络。

与局域网相比,广域网的特点包括:

  1. 覆盖范围:广域网覆盖的地理范围更广。
  2. 传输速度:通常广域网的数据传输速率低于局域网,但随着技术进步,这一差异正在减小。
  3. 延迟:广域网中的数据传输延迟较高,因为信号需要经过更长的距离和更多的网络节点。
  4. 成本:建设和维护广域网的成本通常高于局域网。
  5. 技术:广域网更多地依赖于路由器和各种长距离通信技术,而局域网则多使用交换机和短距离传输技术。

在这里插入图片描述

广域网的实现形式多样,可以是专用的(如企业内部的私有网络),也可以是公用的(如互联网)。企业或组织使用广域网技术,如MPLS(多协议标签交换)、SD-WAN(软件定义广域网)和VPN(虚拟私人网络)等,来构建高效、安全的远程网络连接。

PPP协议

PPP(Point-to-Point Protocol,点对点协议)是一种广泛使用的数据链路层协议,设计用于在两点之间(通常是两台计算机)通过串行线路(如电话线、DSL线或卫星链接)提供直接的、无误差的数据传输。PPP协议工作在OSI模型的第二层,即数据链路层,它是许多类型点对点连接的基础,包括传统的拨号上网、DSL连接以及某些类型的VPN连接。

PPP协议的主要特性包括:

  1. 多协议支持:PPP可以承载多种网络层协议,如IPv4、IPv6等,这使得它非常灵活,能够适应不同的网络环境。
  2. 动态地址分配:通过网络控制协议(NCPs),PPP能够动态分配IP地址和其他网络配置参数,简化了网络管理。
  3. 错误检测:使用循环冗余校验(CRC)来检测在传输过程中可能发生的错误,确保数据的完整性。
  4. 透明传输:支持特殊字符的传输,如通过转义机制处理帧内的标志字符,保证数据的透明传输。
  5. 认证功能:提供可选的身份验证机制,包括PAP(Password Authentication Protocol)和CHAP(Challenge-Handshake Authentication Protocol),增强了网络的安全性。
  6. 数据压缩:可选地使用协议如CCP(Compression Control Protocol)来压缩数据,提高带宽效率。
  7. 网络控制协议(NCPs):除了基本的LCP(Link Control Protocol)用于建立、配置和测试数据链路连接外,NCPs用于协商更高层协议的参数,如IPCP(Internet Protocol Control Protocol)用于配置IP参数。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

尽管PPP最初是为了在串行链路上使用而设计的,它的灵活性和功能丰富性使其能够被扩展以适应其他环境,比如以太网上的点对点通信(通过PPPoE,即PPP over Ethernet),这使得它在现代网络中仍然扮演着重要角色。

PPP协议的三个部分

PPP(Point-to-Point Protocol)协议主要包括以下三个关键部分:

  1. 封装
    PPP提供了一种封装方法,可以将不同网络层协议的数据报文封装在PPP帧中,从而实现在同一条链路上复用多种网络层协议的数据传输。这种封装格式精心设计,确保了对多数硬件的兼容性,并且能够有效处理数据的透明传输,即正确传输含有特殊控制字符的数据。
  2. 链路控制协议(LCP, Link Control Protocol)
    LCP负责建立、配置、维护和终止数据链路的连接。它处理链路层的参数协商,如最大传输单元(MTU)的大小、确定数据包的格式和大小限制、检测和纠正链路故障,以及可选地执行链路两端设备的身份验证。LCP还支持在链路建立期间协商是否使用其他扩展功能,如数据压缩和加密。
  3. 网络控制协议(NCPs, Network Control Protocols)
    一旦LCP成功建立了数据链路,NCPs就会被用来配置和管理特定的网络层协议,如IPv4、IPv6等。每个NCP都是针对一种网络层协议设计的,负责动态分配和协商该网络层协议所需的参数,例如IP地址分配(通过IPCP, Internet Protocol Control Protocol)。NCP使得PPP连接可以适应不同的网络环境和需求,支持多协议的传输。

这三个部分共同协作,使PPP协议不仅能够提供基础的数据传输功能,还能实现链路的动态配置、错误检测、安全性增强以及效率提升,是点对点通信中不可或缺的数据链路层协议。
在这里插入图片描述
在这里插入图片描述

PPP协议的帧格式

PPP(Point-to-Point Protocol)协议的帧格式基于HDLC(High-Level Data Link Control)帧格式,但进行了简化和调整,以适应点对点通信的需求。一个典型的PPP帧结构包含以下几个部分:

  1. 标志字段(Flag)
  • 占1字节,值为0x7E(二进制为01111110),标志着帧的开始和结束。它用于帧定界,确保接收端可以准确识别单个帧的边界。
  1. 地址字段(Address)
  • 占1字节,值固定为0xFF(二进制为11111111)。在点对点环境中,因为通信双方已经明确,所以这个字段实际上并不起作用,但保留以保持与HDLC的兼容性。
  1. 控制字段(Control)
  • 占1字节,值通常为0x03(二进制为00000011)。在PPP协议中,这个字段同样不携带实际意义的信息,主要用于与HDLC的兼容性。
  1. 协议字段(Protocol)
  • 占2字节,用于标识信息字段的内容类型。例如,当值为0x0021时,表示信息字段包含的是IP数据报;如果为0xC021,则表示信息字段包含的是LCP(链路控制协议)数据;0x8021则表示信息字段是网络控制协议(NCP)的数据。
  1. 信息字段(Information)
  • 可变长度,包含实际要传输的数据。数据可以是任何网络层协议的数据包,如IP、IPX等。
  1. 帧检验序列(Frame Check Sequence, FCS)
  • 占2字节,通常使用CRC(Cyclic Redundancy Check)校验,用于检测帧在传输过程中是否出现错误。
  1. 标志字段(Flag)
  • 再次出现,作为帧的结束标记,与帧的开始标志相同,值为0x7E。

为了实现透明传输(即允许任何数据通过,包括与帧定界符相同的比特序列),PPP协议在数据传输前会对特殊字符进行转义处理。例如,如果信息字段中出现了与帧定界符相同的0x7E或者转义字符0x7D,就会在这些字符前面插入一个转义字符0x7D,并对原始字符进行位操作(对于0x7E变为0x7D5E,对于0x7D变为0x7D5D),确保接收端能够正确还原数据。
在这里插入图片描述

这种帧格式设计确保了PPP协议既简洁又强大,能够适应不同类型的链路和多种网络层协议的需求。

HDLC协议

高级数据链路控制(High-Level Data Link Control,简称HDLC)是一种广泛使用的数据链路层协议,它工作在OSI模型的第二层。HDLC由国际标准化组织(ISO)制定,基于IBM的同步数据链路控制(SDLC)协议发展而来,旨在为网络节点间的数据传输提供一套可靠、高效的控制规程。

  1. 面向比特的协议:HDLC是面向比特的协议,这意味着它可以透明地传输任何比特流,不论数据内容如何,都能确保数据的透明性。
  2. 帧结构:HDLC帧由标志字段、地址字段、控制字段、信息字段、帧校验序列(FCS)等部分组成。标志字段用来界定帧的开始和结束,常用01111110(十进制的0x7E)作为标志序列。
  3. 差错检测:通过循环冗余校验(CRC)来检测数据帧在传输过程中的错误,保证数据的完整性。
  4. 流量控制:提供可选的流量控制机制,确保发送方不会过快地发送数据,超出接收方的处理能力。
  5. 操作模式:定义了三种操作模式,包括正常响应模式(NRM)、异步响应模式(ARM)和异步平衡模式(ABM),适用于不同的网络拓扑和通信需求。
  6. 链路初始化和终止:支持链路的建立、维护和终止过程,包括链路的初始化、参数的协商以及异常情况下的链路恢复。
  7. 多点通信:支持点对点和点对多点的通信模式,可以用于构建非平衡或平衡的网络结构。
  8. 透明传输:通过位填充(bit stuffing)或字符填充(byte stuffing)技术处理特殊控制字符,避免数据中的信息被误解释为控制信息。
    在这里插入图片描述

尽管随着技术的发展,HDLC在一些新兴网络技术中已经被更新的协议(如PPP、Ethernet的LLC子层)所替代,但在许多传统的网络设备和专有系统中,尤其是那些要求高度可靠性和实时性的应用场景,HDLC协议依然得到广泛应用。

HDLC的站

在HDLC(High-Level Data Link Control,高级数据链路控制)协议中,网络中的设备或站点根据它们在数据传输过程中的角色和功能被分为几种类型,主要分为以下三类:

  1. 主站(Primary Station):
  • 主站负责发起和控制链路的建立、维护以及拆除过程。
  • 它发送命令帧给从站,用于启动数据传输、控制数据流、执行错误恢复等。
  • 主站接收从站的响应帧,并基于这些响应做出相应的控制决策。
  • 在多点网络中,主站管理整个链路系统的运行,包括所有从站的活动。
  1. 从站(Secondary Station):
  • 从站响应主站的命令,不主动发起通信。
  • 它们接收主站的命令帧并发送响应帧,以确认接收到的命令或报告错误。
  • 从站在主站的控制下参与数据传输,执行流量控制、差错检测等功能。
  • 在多点配置中,可能存在多个从站,每个都与主站单独通信。
  1. 复合站(Combined Station):
  • 复合站具备主站和从站的双重功能,可以根据需要在通信中扮演任一角色。
  • 这类站可以发起数据传输如同主站,也能响应命令如同从站。
  • 在某些网络配置中,复合站可以在没有明确主站的情况下与其他复合站或从站进行通信,增加了网络的灵活性。

每种类型的站通过发送特定类型的帧(如信息帧、监控帧、无编号帧)来执行其指定的任务,这些帧类型帮助实现数据传输、链路控制、错误检测及恢复等功能。HDLC协议的设计使得这些站点能够有效地协同工作,确保数据在链路上的可靠传输。

在这里插入图片描述

HDLC的帧样式

HDLC(High-Level Data Link Control)协议的帧结构遵循一个标准的格式,确保了数据的高效和可靠传输。以下是HDLC帧的基本组成部分,这些组件共同构成了HDLC的帧样式:

  1. 标志字段(Flag Field)
  • 标志字段由一个字节组成,其值为0x7E(二进制为01111110),用于标记帧的开始和结束。这使得接收器能够正确地识别帧的边界。
  1. 地址字段(Address Field)
  • 在点对点的通信中,地址字段通常被设置为全1(0xFF或0x7F),表示这是一个广播地址,因为在这种情况下不需要指定特定的目标地址。在多点配置中,此字段可以用来指明帧的接收者,但通常仍保留为默认值。
  1. 控制字段(Control Field)
  • 控制字段决定帧的类型和用途。它定义了帧的格式和控制信息,如信息帧(I帧)、监控帧(S帧)或无编号帧(U帧)。控制字段的前几位决定了帧的类别:
  • I帧(信息帧):用于传输数据,控制字段的首位为0。
  • S帧(监控帧):用于流量控制和错误恢复,控制字段的前两位为10。
  • U帧(无编号帧):用于链路控制和状态信息,控制字段的前两位为11。
  1. 信息字段(Information Field)
  • 该字段包含实际要传输的数据。其长度可以变化,取决于实际数据的大小。对于I帧,这是网络层协议数据包或用户数据;对于S和U帧,信息字段可能包含控制信息。
  1. 帧校验序列(Frame Check Sequence, FCS)
  • 通常采用CRC(Cyclic Redundancy Check)算法计算得出,占用2到4个字节,用于错误检测。它覆盖了地址字段、控制字段、信息字段和可能存在的其他字段,确保数据的完整性。
  1. 填充字段(Padding Field)(可选)
  • 在某些情况下,为了满足最小帧长度要求或保持数据同步,可能会在信息字段后插入填充位。填充的目的是确保帧的总长度符合传输要求。

在这里插入图片描述

HDLC协议通过这些帧结构的精确定义,确保了数据在链路层的有效封装、传输和错误检测,支持了点对点和多点的可靠通信。

PPP和HDLC的异同

PPP(点对点协议)和HDLC(高级数据链路控制)都是数据链路层协议,用于在两个网络节点间提供可靠的数据传输服务。下面是它们的异同点概览:

相同点:

  1. 目的相似:二者旨在提供点对点链路上的数据传输和错误检测能力,使用循环冗余校验(CRC)进行错误检测。
  2. 数据封装:都对数据进行封装,包含帧头和帧尾以界定数据单元,并提供帧定界和同步功能。
  3. 全双工操作:支持全双工通信,允许数据同时在两个方向上传输。
  4. 传输方式:都使用同步和透明传输方式,确保数据的透明性。

不同点:

  1. 设计目标和标准:PPP由IETF制定,为了解决SLIP协议的局限性,适应更多网络层协议,并集成了认证、加密等功能;而HDLC源自ITU-T标准,起初用于X.25网络,更侧重于电信网络应用。
  2. 认证与加密:PPP支持多种认证方式,如PAP(密码认证协议)和CHAP(挑战握手认证协议),并且可以实现数据加密;而HDLC不支持内置的认证和加密功能。
  3. 网络层协议支持:PPP可以封装多种网络层协议,如TCP/IP、IPX、AppleTalk等,适应多种网络环境;而HDLC传统上主要用于传输数据帧,通常与特定网络层协议绑定。
  4. 协商与配置机制:PPP通过链路控制协议(LCP)协商链路参数,如MTU、压缩等,并且有网络控制协议(NCP)来配置网络层参数;而HDLC没有类似的动态协商和配置机制,其参数通常是静态配置的。
  5. 应用场景:PPP广泛应用于拨号、ISDN、DSL、以太网等多种网络环境,特别适合需要灵活配置和安全特性的点对点连接;而HDLC常用于广域网、数据通信设备和一些特定的点对点或多点网络中,以其紧凑的帧格式和高效性见长。

在这里插入图片描述

综上,虽然PPP和HDLC在基本的数据传输功能上有相似之处,但PPP在灵活性、安全性、适应性和协议支持方面更为先进和全面,而HDLC则在某些特定应用领域因其实现简单和高效性而被采用。

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

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

相关文章

Redis篇 list类型在Redis中的命令操作

list在redis基本的命令 一.基本命令1.lpush和range2.lpushx rpushx3.lpop rpop4.lindex linsert llen5.lrem6.ltrim lset7.blpop brpop 一.基本命令 list在redis中相当于数组或者顺序表. 1.lpush和range 2.lpushx rpushx 3.lpop rpop 4.lindex linsert llen 如果要插入的列表中…

【Kubernetes】9-Pod控制器

一、什么是 pod 的控制器 Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层 确保pod资源符合预期状态;pod的资源故障时会进行重启; 当重启策略无效时,则会重新新建pod的资源 二…

一维时间序列信号的小波时间散射变换(MATLAB 2021)

小波散射变换的目的在于获取第一层次的特征信息,即免疫平移、轻微形变的信息。而低通的滤波器能够获取输入信号的概貌,获取反映其整体大尺度特征的信息,以图像为例,由低通滤波器选取的信号对于图像的平移、伸缩、旋转等局部变化有…

Mysql 常用命令 详细大全【分步详解】

1、启动和停止MySQL服务 // 暂停服务 默认 80 net stop mysql80// 启动服务 net start mysql80// 任意地方启动 mysql 客户端的连接 mysql -u root -p 2、输入密码 3、数据库 4、DDL(Data Definition Language )数据 定义语言, 用来定义数据库对象(数…

空间不够用了怎么办

空间告急啊哥们 整理一下清理空间有用的一些blog吧。 【linux】公共服务器如何清理过多的.cache缓存 linux根目录空间不足,追加空间到根目录下 【linux】linux磁盘空间 目录查看清理 和 文件查看清理

simulink如何配置自动代码生成

simulink如何配置我们的自动代码生成 仿真时间设置我们仿真我们这个模型的一个时间,目前默认它是10秒。如果把它改成“INF”,它就是会一直仿真。 求解器选择,因为我们使用的是嵌入式代码,因此我们一般嵌入式是一个数字量。所以选…

【AI大模型】Transformers大模型库(三):特殊标记(special tokens)

目录​​​​​​​ 一、引言 二、特殊标记(special tokens) 2.1 概述 2.2 主要功能 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预训练大模型提供预测、训练等服…

RK3568技术笔记之二 SAIL-RK3568开发板介绍

开发板是我们自己的,后面我用开发板和工控机来做技术笔记。不用多讲。我先把核心板和开发板规格书搬过来,这篇文章里都是自己的知识产权,所以就不标准引用来源了。 先看看核心板的规格书吧。 再来一下开发板的规格书 看完规格书,…

用cocos2d-python绘制游戏开发的新篇章

用cocos2d-python绘制游戏开发的新篇章 第一部分:背景 在游戏开发的世界中,寻找一个强大而灵活的框架至关重要。cocos2d-python是一个Python游戏开发框架,它提供了一套丰富的功能,用于创建2D游戏、图形和交互式应用。基于流行的c…

如何在 Java 中使用 JOptionPane 显示消息对话框

在 Java 开发中,JOptionPane 是一个非常实用的类,可以用来显示各种类型的对话框,例如信息对话框、警告对话框、错误对话框等。今天,我们将深入探讨如何使用 JOptionPane.showMessageDialog 方法来显示消息对话框,以及如…

完美的移动端 UI 风格

完美的移动端 UI 风格

webgl_decals

ThreeJS 官方案例学习&#xff08;webgl_decals&#xff09; 1.效果图 2.源码 <template><div><div id"container"></div></div> </template> <script> // 光线投射相关代码 https://threejs.org/docs/index.html#api/z…

干货满满!Stable Diffusion 从入门到精通之提示词手册,免费分享,自学转行,零基础首选!

Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度&#xff0c;文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好。本文从“如何写好提示词”出发&#xff0c;从提示词构成、调整规则和 AIGC辅助工具等角度&#xff0c;对文生图的提示词输入进行…

模式识别涉及的常用算法

一、线性回归 1.算法执行流程&#xff1a; 算法的执行流程可以简述如下&#xff1a; 导入必要的库&#xff1a; 导入NumPy库&#xff0c;用于数值计算。导入Matplotlib库&#xff0c;用于数据可视化。导入Pandas库&#xff0c;用于数据处理&#xff08;尽管在这个例子中&#…

开关电源基本原理1

目录 内容概述 关于电感 认识电感 电感充电 电感储能 电感充电 电感参数 电感放电 利用电感升压 电感电流波形 伏秒法则 电流纹波率 电感电流三种导电模式 电流纹波率与频率的关系 电流纹波率与电感值的关系 电感值与电感体积 电路纹波率r的最优值 电感值与电…

Flutter开发效率提升1000%,Flutter Quick教程之定义Api(四)

现在我们来讲讲&#xff0c;如何建立Api 响应数据的变量。 这个变量&#xff0c;本质上就是对根据json数据生成model的引用。 这个name就是引用名。 这个path&#xff0c;就是引用的Model Data里面的具体字段&#xff0c;在实际操作过程中&#xff0c;校验是由右边的json数据…

从运维故障中你都学到了什么?

一阵急促尖锐的铃声响起&#xff0c;王一搏忐忑不安地接起电话&#xff0c;被告知系统有20台服务器批量重启。 20 台&#xff01;批量重启&#xff01;意识到问题的严重性&#xff0c;王一搏迅速调整好状态&#xff0c;准备投身一场激烈的救火工作中。 然而事件的走向却远远超…

JVM的内存结构

JVM 内存结构 方法区: 方法区主要用于存储虚拟机加载的类信息、常量、静态变量&#xff0c;以及编译器编译后的代码等数据。 程序计数器 由于在JVM中&#xff0c;多线程是通过线程轮流切换来获得CPU执行时间的&#xff0c;因此&#xff0c;在任一具体时刻&#xff0c;一个CP…

kali配置静态ip

kali配置静态ip 因为一些环境需要&#xff0c;本地linux主机需要搭建一个桥接模式的网络&#xff0c;那么直接就在kali中配置了&#xff0c; 打开vim /etc/network/interfaces 这里就需要自己配置一下ip&#xff0c;网关&#xff0c;路由等内容 这里参考&#xff1a;参考链接 …

排序方法——《选择排序》

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 博主主页&#xff1a;Yan. yan.                        …