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

计算机网络 —— 广域网

  • 什么是广域网
  • 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则在某些特定应用领域因其实现简单和高效性而被采用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

php实现抖音小程序支付

开发者发起下单_小程序_抖音开放平台 第一步、抖音小程序发起支付 tt.pay_小程序_抖音开放平台 前端提交订单数据到后端接口,然后使用 tt.pay发起支付 请求参数 属性 类型 必填 说明 order_id string 是 担保交易服务端订单号 order_token string 是 …

css动画案例练习之会展开的魔方和交错的小块

这里写目录标题 一级目录二级目录三级目录 下面开始案例的练习,建议第一个动手操作好了再进行下一个一、交错的小块效果展示1.大致思路1.基本结构2.实现动态移动 2.最终版代码 二、会展开的魔方1.大致思路1.基本结构;2.静态魔方的构建3.让静态的魔方动起来 2.最终版…

Springboot高手之路01-AOP

文章目录 登录校验拦截器 基于拦截器实现登录校验功能全局异常处理器 登录校验 拦截器 拦截器是spring中提供的 所以第一步就是把拦截器交给spring管理 不管是过滤器还是拦截器都是需要配置路径 /** 拦截所有 拦截器放行直接是true 是否运行访问对应的web资源 拦截器实现Ha…

动态规划6:63. 不同路径 II

动态规划解题步骤: 1.确定状态表示:dp[i]是什么 2.确定状态转移方程:dp[i]等于什么 3.初始化:确保状态转移方程不越界 4.确定填表顺序:根据状态转移方程即可确定填表顺序 5.确定返回值 题解:63. 不同…

通用漏洞-基于同源策略的cors与jsonp域名接管

脚本参考:https://www.cnblogs.com/haorancracker/articles/17699536.html) 1.cors&jsonp 在csrf的学习中,我们了解到解决第三方网站采取的发包操作,最简单的策略就是同源策略sof,即为同协议,同域名,…

C++设计模式-单例模式,反汇编

文章目录 25. 单例模式25.1. 饿汉式单例模式25.2. 懒汉式单例模式25.2.1. 解决方案125.2.2. 解决方案2 (推荐写法) 运行在VS2022,x86,Debug下。 25. 单例模式 单例即该类只能有一个实例。 应用:如在游戏开发中&#x…

VS2022,DLL1调用lib,lib调用DLL2

DLL1调用lib,lib调用DLL2 问题1:为什么在dll1中需要引入dll2的.lib文件 当你有一个工程(dll1)调用静态库(lib),而静态库(lib)又调用另一个DLL(dll2&#xf…

BPTT算法详解:深入探究循环神经网络(RNN)中的梯度计算【原理理解】

引言 在深度学习领域中,我们经常处理的是独立同分布(i.i.d)的数据,比如图像分类、文本生成等任务,其中每个样本之间相互独立。然而,在现实生活中,许多数据具有时序结构,例如语言模型…

基于EasyX的贪吃蛇小游戏 - C语言

游戏基本功能演示: 1.主菜单界面 2.自定难度界面 在这里可以自行设定游戏的难度,包括蛇的移动速度,初始节数,以及默认模式,参考线(网格)。这些设定的数据都会在右上角的游戏属性栏中实时显示。…

二叉树的算法题目

二叉树的遍历题目 二叉树遍历一般包含三种分别为:根左右、左根右、左右根(又称为前序遍历、中序遍历、后序遍历) 方法一:使用递归遍历 方法二:使用迭代使用栈 我们以左根右(中序遍历&…

Spring系列-SpringMvc父子容器启动原理解析

1、Spring整合SpringMVC 特性: 说到Spring整合SpringMVC唯一的体现就是父子容器: 通常我们会设置父容器(Spring)管理Service、Dao层的Bean, 子容器(SpringMVC)管理Controller的Bean .子容器可以访问父容器的Bean, 父容器无法访…

【PCB]射频电路pcb设计

学习改变命运,技能成就未来!❤~~ 1射频信号的基础知识及工作原理介绍 射频的基础知识介绍 2射频板PCB的布局要求 3射频板布局要求 4屏蔽帐设计 5射频板的层叠阻抗设计 6射频板的PCB布线原则 7射频板的PCB布线要求 8射频板的设计实战

王道408数据结构CH1_绪论

概述 1.数据结构 1.1 数据结构三要素 逻辑结构 存储结构 顺序存储、链式存储、索引存储、散列存储 数据的运算

做自媒体素材哪里找?做自媒体必备的几个高质量素材网站分享

在自媒体的世界里,内容是王道。无论是视频还是文章,优秀的自媒体作品都需要有力的内容和高质量的素材作支撑。今天,我为大家整理了一些优质的素材网站,帮助每一位自媒体创作者,无论新手还是老手,都能找到适…

鸿蒙状态管理-@Builder自定义构建函数

Builder 将重复使用的UI元素抽象成一个方法 在build方法里调用 使其成为 自定义构建函数 Entry Component struct BuilderCase {build() {Column(){Row(){Text("西游记").fontSize(20)}.justifyContent(FlexAlign.Center).backgroundColor("#f3f4f5").hei…

Etcd Raft架构设计和源码剖析2:数据流

Etcd Raft架构设计和源码剖析2:数据流 | Go语言充电站 前言 之前看到一幅描述etcd raft的流程图,感觉非常直观,但和自己看源码的又有些不同,所以自己模仿着画了一下,再介绍一下。 下图从左到右依次分为4个部分&…

如何检查网站文件是否有病毒

本周有一个客户,购买Hostease的主机, 客户购买的是Linux虚拟主机,带cPanel面板的。询问我们的在线客服,他想检查下他的网站程序是否有病毒文件。Hostease虚拟主机附带病毒扫描软件功能,可以协助检查网站程序是否有病毒…

HTML静态网页成品作业(HTML+CSS)—— 节日端午节介绍网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有5个页面。 二、作品演示 三、代…

算法训练营第四十六天 | 卡码网52 携带研究材料、LeetCode 518 零钱兑换II、LeetCode 377 组合总和IV

写在前面 这次算法训练营题目,其实完全是按照代码随想录一路跟着来的,上面也有更好的、讲得更清楚的题解,有需要的小伙伴可以去那里看。 我这里是之前已经大体刷过一遍,为了应对有可能会考到的面试题,现在在跟着一个专…

MySQL—多表查询—外连接

一、引言 学到内连接,它是查询的数据两张表交集的部分。而接下来看看外连接。 外连接查询语法:(分为两种) 1、左外连接 语法结构: 表1 LEFT [OUTER] JOIN 表2 ON 条件 ...; ( ... left out join on ...) 注意&#x…