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

news2025/1/17 0:16:41

计算机网络 —— 广域网

  • 什么是广域网
  • 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.coloradmin.cn/o/1790800.html

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

相关文章

mkfs.ubifs -c 计算工具

mkfs.ubifs -c 输入的logical erase block count,是指除掉ubi文件系统自身管理和坏块处理后的逻辑可擦除最大块数。 参考信息如下: logical erase block count 计算工具,实现代码如下: #!/usr/bin/python # -*- coding: UTF-8 -*-import os…

【AI大模型】基于Langchain和Openai借口实现英文翻译中文应用

🚀 作者 :“大数据小禅” 🚀 文章简介 :本专栏后续将持续更新大模型相关文章,从开发到微调到应用,需要下载好的模型包可私。 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 目…

智慧城市的规划与实施:科技引领城市运行效率新飞跃

随着信息技术的飞速发展,智慧城市的构想正逐步成为现实。作为地理信息与遥感领域的研究者,我深知在这一转型过程中,技术的创新与应用是提升城市运行效率的关键。本文旨在探讨如何利用地理信息系统(GIS)、遥感技术、大数…

【深度学习入门篇一】阿里云服务器(不需要配环境直接上手跟学代码)

前言 博主刚刚开始学深度学习,配环境配的心力交瘁,一塌糊涂,不想配环境的刚入门的同伴们可以直接选择阿里云服务器 阿里云天池实验室,在入门阶段跑个小项目完全没有问题,不要自己傻傻的在那配环境配了半天还不匹配&a…

Win11中Yolo V10安装过程记录

1. 配置Anaconda环境: conda create -n yolov10 python3.9 conda activate yolov10 pip install -r requirements.txt pip install -e . 这里由于torch2.0.1太慢,单独用pytorch官网安装流程(选择支持GPU版本): con…

dvwa靶场的下载、配置

目录 下载 配置 连接数据库 搭建网站(可选) 配置靶场 下载 百度网盘链接:https://pan.baidu.com/s/1oK2UzKFxIIPQkhz6hD8WFQ?pwdpbb2 提取码:pbb2 迅雷链接:https://pan.xunlei.com/s/VNzHo9gXgbsk5E8tcx6Yek…

Llama模型家族之RLAIF 基于 AI 反馈的强化学习(一)

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 基于 LlaMA…

表达式求值中的“整型提升”概念

一.基本原理和概念 如:代码 char a,b,c ; a b c ; 该代码在计算的时候就会先将 b 和 c 提升为 int 类型进行加法后,再将数据进行截断存放在内存存放变量 a 的空间中。 (1)提升和截…

LeetCode25_K个一组翻转链表

. - 力扣(LeetCode) 一、题目描述 二、过程模拟 1. 第一步 2. 第二步:子链表分组 3. 第三步:断开前后两组 4. 第四步:翻转start到end的部分 5. 第五步:连接翻转好的前半部分和未翻转的后半部分&#xff…

操作系统真象还原:完善内核

第6章-完善内核 这是一个网站有所有小节的代码实现,同时也包含了Bochs等文件 6.1函数调用约定简介 函数参数存储在栈空间,这有两个好处: 首先,每个进程都有自己的栈,这就是每个内存自己的专用内存空间。其次&#…

安装和使用conda

Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。可以创建多个环境,并在环境中使用不同的python版本,并安装环境专属的python依赖包,可以用来避免python…

PyQt5+SQLlite3基于邮箱验证的登陆注册找回系统

本期教程投稿一篇实用性的基于邮箱登陆注册找回于一体的系统,在日常的开发和软件应用中非常常见,并且也使用了逻辑与界面分离的写法,那这个文章将详细的为大家介绍整个流程,但是细节的话还需要大家自己去完善,也欢迎大…

景源畅信数字:抖音直播人气品类有哪些?

随着短视频平台的兴起,抖音成为了人们日常生活中不可或缺的娱乐方式之一。而抖音直播作为平台的重要组成部分,吸引了大量的观众和主播参与。那么,在抖音直播中,哪些品类能够吸引更多的人气,成为观众们关注的焦点呢?接…

C++笔试强训day39

目录 1.神奇的字母&#xff08;二&#xff09; 2.字符编码 3.最少的完全平方数 1.神奇的字母&#xff08;二&#xff09; 链接https://ac.nowcoder.com/acm/problem/205832 看输出描述即可知输出次数最多的那个字母即可。 哈希表直接秒了&#xff1a; #include <iostre…

网络安全快速入门(十五)(中)用户的文件属性及用户相关文件详解

15.4 序言 我们之前已经了解了关于用户管理的一些基础命令&#xff0c;本章节我们就来了解一下关于文件权限的一些小知识以及基于某些文件来手动创建一个用户&#xff0c;话不多说&#xff0c;我们开始吧&#xff01; 15.5 文件权限 在linux中&#xff0c;文件都是通过查看属主…

基于深度学习YOLOv8\YOLOv5的骨科骨折诊断检测系统设计

本文将介绍基于深度学习YOLOv8\YOLOv5PySide6SQLite的骨折检测识别骨科诊断系统&#xff0c;该系统基于YOLOv8算法&#xff0c;并与YOLOv5版本进行比较&#xff0c;该系统不仅实现了对骨折骨损伤的识别&#xff0c;还提供了包括用户认证管理、模型快速切换及界面个性化定制在内…

我成功创建了一个Electron应用程序

1.创建electron项目命令&#xff1a; npm create quick-start/electron electron-memo 2选择&#xff1a;√ Select a framework: vue √ Add TypeScript? ... No √ Add Electron updater plugin? ... Yes √ Enable Electron download mirror proxy? ... Yes 3.命令&am…

【Qt知识】disconnect

在Qt框架中&#xff0c;disconnect函数用于断开信号与槽之间的连接。当不再需要某个信号触发特定槽函数时&#xff0c;或者为了防止内存泄漏和重复执行问题&#xff0c;你可以使用disconnect来取消这种关联。disconnect函数的基本用法可以根据不同的需求采用多种形式&#xff0…

JAVA:浅谈Stream流

在阅读本文章之前请了解什么叫 Lambda表达式 以及 如何使用 一、Stream流 Stream流的使用步骤&#xff1a; 获得一条Stream流&#xff0c;并且将数据放上去 单列集合获取Stream流 // 1. 单列集合获取Stream ArrayList<String> list new ArrayList<String>()…

YOLO10:手把手安装教程与使用说明

目录 前言一、YOLO10检测模型二、YOLO安装过程1.新建conda的环境 yolo10安装依赖包测试 总结 前言 v9还没整明白&#xff0c;v10又来了。而且还是打败天下无敌手的存在&#xff0c;连最近很火的RT-DETR都被打败了。那么&#xff0c;笑傲目标检测之林的v10又能持续多久呢&#…