探索接入网和网络运营商——ADSL接入网的结构和工作方式

2023-11-06

1、互联网的基本机构和家庭、公司网络是相同的:

互联网的基本工作方式和家庭、公司网络一样,互联网也是通过路由器来转发包的,而且路由器的基本结构和工作方式也并没有什么不同。

当然也有不同之处,其中之一就是与转发设备间的距离。在家庭、公司网络中,与转发设备之间的距离不过几十米到几百米,在这种情况下,只要延长以太网线就可以到达相邻的转发设备了(双绞线的极限距离是100米,但光纤的连接距离可以长达几公里)。然而,互联网可不能这么搞,因为你家到最近的电话局至少也有几公里的距离,用以太网线是无法实现这种连接的。

除了距离之外,路由器在如何控制包的转发目标上也不一样。尽管从基本原理来看,互联网也是根据路由表中的记录来判断转发目标的,但路由表记录的维护方式不同。

2、连接用户与互联网的接入网:

前面讲过,网络包通过交换机和路由器的转发一步一步地接近它的目的地,在通过互联网接入路由器之后,就进入了互联网(如果网络包的目标服务器位于家庭、公司网络中的话,那么就不需要通过互联网接入路由器,而是直接转发给目标服务器,也不会进入互联网)。

与一般路由器不一样的是,互联网接入路由器是按照接入网规则来发送包的。

所谓接入网,就是指连接互联网与家庭、公司网络的通信线路。接入网这个词表示的是通信线路的用法,而并不表示通信线路的结构,例如公司里使用的专线,当它用来连接互联网时就叫作接入网,而用来连接总公司和分公司时就不叫做接入网。此外,接入网这个词也不仅限于互联网,当使用运营商提供的通信服务时,一般都会将用户与运营商之间的线路叫作接入网。

一般家用的接入网方式包括ADSL(Asymmetric Digital Subscriber Line,不对称数字用户线,它是一种利用架设在电线杆上的金属电话线来进行高速通信的技术,它的上行方向(用户到互联网)和下行方向(互联网到用户)的通信速率是不对称的)、FTTH(Fiber To The Home,光纤到户)、CATV、电话线、ISDN等。公司则还可能使用专线。

3、ADSL Modem将包拆分成信元:

ADSL技术使用的接入线路,其内部结构如下图所示:

用户端路由器(有些情况下会使用集成了互联网接入路由器和ADSL Modem的多功能ADSL Modem——也叫路由型 ADSL Modem,其实就是把路由器和ADSL Modem装到一个外壳里而已)发出的网络包通过ADSL Modem(调制解调器)和电话线到达电话局,然后到达ADSL的网络运营商(即ISP,互联网服务提供商)。网络包在这传输的过程中,会变换几种不同的形态,整个过程如下图所示:

从客户端生成网络包到网络包到达互联网接入路由器为止,和之前介绍的以太网路由器的工作方式是一样的。接下来,包发送的操作也很类似。如果互联网接入路由器和ADSL Modem之间是通过以太网连接的,那么就会按照以太网规则执行包发送的操作,发送信号本身的过程跟之前是一样的,但以太网的头部会有一些差异。这部分的具体情况各运营商会有所不同,而且还需要一些关于BAS(Broadband Access Server,宽带接入服务器,它是一种路由器,位于接入网另一端的包转发设备)的知识。所以,只要知道网络包会在这里加上MAC头部、PPPoE头部、PPP(Point-to-Point Protocol,点到点协议,它是电话线、ISDN等通信线路所使用的一种协议,集成了用户认证、配置下发、数据压缩、加密等各种功能)头部总共3种头部,然后按照以太网规则转换成电信号后被发送出去。

互联网接入路由器将包发送出去之后,包就到达了ADSL Modem,然后ADSL Modem会把包拆分成很多小格子,每个小格子称为一个信元。信元是一个非常小的数据块,开头是有5个字节的头部,后面是48个字节的数据,用于一种叫作ATM(Asynchronous Transfer Mode,异步传输,以电话线为载体的传统电话技术基础上扩展出来的一种通信方式)的通信技术。信元也可以理解为一种更小一号的包(使用信元来传输数据主要是为了与其他设备进行整合,也有一些ADSL运营商使用的ADSL Modem是不进行数据拆分的)。

4、ADSL将信元“调制”成信号:

之前讲过,以太网在将数字信息转换为模拟信号时,采用的是用方波信号表示0和1的方式,而ADSL采用的方法要复杂一些。一个原因是方波信号的波形容易失真,随着距离的延长错误率也会提高;另一个原因是方波信号覆盖了从低频到高频的宽广频道,信号频率越高,辐射出来的电磁噪声就越强,因此信号频谱太宽就难以控制噪声。

ADSL Modem采用了一种用圆滑波形(正弦波)对信号进行合成来表示0和1的技术,这种技术称为调制。调制有很多方式,ADSL采用的调制方式是振幅调制(ASK)和相位调制(PSK)相结合的正交振幅调制(QAM,也叫正交调幅)方式。如下图所示:

振幅调制是一种用信号的强弱,也就是振幅的大小来对应0和1的方式。如果增加振幅变化的级别,就可以对应更多的比特。例如,如果将振幅增加到4个级别,则振幅从小到大可分别对应00、01、10和11,这样就可以对应两个比特了。这样做可以将单位时间内传输的数据量加倍,也就能够提高速率。同样的,如果振幅级别太多,接收方对信号的识别就容易出错,因此振幅级别也不能太多。

相位调制是一种根据信号的相位来对应0和1的方式。Modem产生的信号是以一定周期振动的波,如下图所示:

上图中的角度就是相位,用角度来对应0和1的方式就叫做相位调制。例如,从0度开始的波为0,从180度开始的波为1,这是一种最简单的对应关系。和振幅调制一样,相位调制也可以通过将角度划分为更细的级别来增加对应的比特数量,从而提高速率。但是,角度太接近的时候也容易产生误判,因此这样提升速率还是有限度的。

ADSL使用的正交振幅调制就是将前面这两种方式组合起来实现的。如果信号的振幅可以表示4个比特,相位可以表示4个比特,那么加起来就可以表示16个比特,从而提高传输速率。当然,和单独使用振幅调制或相位调制的情况一样,级别过多就容易发生误判,因此这种方法提升的速率是有限的。

5、ADSL通过使用多个波来提高速率:

前面提到的都只是一个频率的波,实际上信号可以由不同频率的波合成,也可以用滤波器从合成的波中分离出某个特定频率的波。多个波合成的信号能够表示的比特数就可以成倍提高了。

ADSL使用间隔为4.3125kHz的上百个不同频率的波进行合成,每个波都采用正交振幅调制,而且根据噪声等条件的不同,每个波表示的比特数是可变的。也就是说,噪声小的频段可以给波分配更多的比特,噪声大的频段则给波分配较小的比特(一般情况下,一个波可以表示几个比特到几十个比特),每个频段表示的比特数加起来,就决定了整体的传输速率。如下图所示:

ADSL技术中,上行方向(用户到互联网)和下行方向(互联网到用户)的传输速率是不同的,原因也在这里。如果上行使用26个频段,下行则可以使用95个或223个频段,波的数量不同,导致了上下行速率不同。

当然,下行使用的频段较高,这些信号容易衰减而且更容易受到噪声的影响,因此这些频段可能只能表示较少的比特数,或者干脆无法传输信号。距离越远,频率越高,这种情况也就越显著,因此如果距离电话局太远,速率就会下降。

噪声和衰减等影响线路质量的因素在每条线路上都不同,而且会随着时间发生变化。因此,ADSL会持续检查线路质量,动态判断使用的频段数量,以及每个频段分配到的比特数。当Modem通电后,会发送测试信号,并根据信号的接收情况判断使用的频段数量和每个频段的比特数,这个过程称为训练(握手),需要几秒到几十秒到时间。

6、分离器的作用:

ADSL Modem将信元转换为电信号之后,信号会进入一个叫做分离器的设备,然后ADSL信号会和电话的语音信号混合起来一起从电话线传输出去。分离器在这里实际上并没有做什么事,而是在相反的方向,也就是信号从电话线传入的时候。这时,分离器需要负责将电话和ADSL的信号进行分离。如下图所示:

具体来说,分离器的功能是将一定频率以上的信号过滤掉,也就是过滤掉了ADSL使用的高频信号,以确保ADSL信号不会传入电话机。而对于另一头的ADSL Modem,则是传输原本的混合信号给它。ADSL Modem内部已经具备将ADSL频率外的信号过滤掉的功能,因此不需要在分离器进行分离。

除此之外,分离器还可以防止电话对ADSL产生干扰。因为在拿起电话听筒接通电话的状态和放下听筒挂断电话的状态下,信号的传输方式是不同的,会导致噪声等线路状态的改变,如果ADSL通信过程中拿起听筒导致线路状态改变,就需要重新训练(握手),这样会导致几十秒的通信中断,分离器可以防止发生这样的问题。当然G.992.2的ADSL规格就包含一种快速重新握手的技术,即使没有分离器也不会影响ADSL通信,但ADSL信号还是会影响电话,因此G.992.2的ADSL规格中一般还是需要使用分离器。

7、从用户到电话局:

从分离器出来,就是插电话线的接口,接着信号会通过室内电话线,然后到达大楼的IDF(Intermediate Distribution Frame,中间配线盘)和MDF(Main Distribution Frame,主配线盘),外面的电话线在这里和大楼内部的室内电话线相连接,没有配线盘的则直接与室外线连接。接着信号会到达保安器(内部有保险丝,用于保护电话线中产生过大的电流)。

接着,信号会进入电线杆上架设的电话电缆。电话线是一种直径0.32~0.9mm(信号线的直径不同,信号衰减率等特征也不同,线越细衰减率越高,因此距离电话局近的地方使用细线,当需要延伸较远的距离时使用粗线)的金属信号线,这些信号线如下图所示被捆绑在一起:

在电话局附近,电话线都是埋在地下的。集中埋设电缆的地方就形成了一条地道,这部分称为电缆隧道。通过电缆隧道进入电话局后,电缆会逐根连接到电话局的MDF上。

8、噪声的干扰:

电话线原本的设计并没有考虑到传输ADSL这样的高频信号,从这个角度上可以说它比以太网双绞线更容易受到噪声的干扰。

不过,电话线受到干扰的方式和双绞线有些不同。双绞线中只有一路方波信号,信号失真后就无法读取还原成数字信号,于是就会产生错误,但ADSL信号受到干扰后并不会立即造成错误。ADSL信号分布在多个频段上,只有和噪声频率相同的信号会受到影响而无法读取,即可用的信号数量减少,结果导致速率下降。

电话线一般会受到电车线路、AM电台广播和四芯线内部的干扰,或者相邻子单元的附近如果同时存在ADSL和ISDN信号线,ISDN发出的噪声也会干扰ADSL。

9、通过DSLAM到达BAS:

信号通过电话线到达电话局之后,会经过配线盘、分离器到达DSLAM(DSL Access Multiplexer,数字用户线接入复用设备,它是电话局用的多路ADSL Modem,可以理解为将多个ADSL Modem整合在一个外壳里的设备)。电信号在这里被还原成数字信息——信元。

用户端ADSL Modem具备以太网接口,可以与用户端的路由器和计算机交互,收发网络包,而DSLAM一般不用以太网接口,而是用ATM接口,和后方路由器收发数据时使用的是原始网络包拆分后的ATM信元形式(也有一些DSLAM是不将网络包拆分拆分成ATM信元的,而是直接以网络包的状态转换成ADSL信号,这样的DSLAM在和后方路由器收发数据时也是使用包的形式)。

接着信元从DSLAM出来,会到达一个叫作BAS的包转发设备。BAS也具有ATM接口,可以接收ATM信元,还可以将接收到的ATM信元还原成原始的包。然后将收到的包前面的MAC头部和PPPoE头部丢弃,取出PPP头部以及后面的数据。MAC头部和PPPoE头部的作用是将包送达BAS的接口。接下来,BAS会在包的前面加上隧道专用头部(一般情况下使用的隧道技术为L2TP,在这种情况下就会加上L2TP头部),并发送到隧道的出口。

然后,网络包会到达隧道出口的隧道专用路由器,在这里隧道头部会被去掉,IP包会被取出,并被转发到互联网内部。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

探索接入网和网络运营商——ADSL接入网的结构和工作方式 的相关文章

  • 大师兄!SLAM 为什么需要李群与李代数?

    from https mp weixin qq com s sVjy9kr 8qc9W9VN78JoDQ 作者 electech6 来源 计算机视觉life 编辑 Tony 很多刚刚接触SLAM的小伙伴在看到李群和李代数这部分的时候 都有点
  • 编译原理第二版4.4答案

    4 4 节的练习 4 4 1 为下面的每个文法设计一个预测分析器 并给出预测分析表 你可能先要对文法进行提取左公因子或者消除左递归的操作 练习 4 2 2 中 1 7 中的文法 解答 S gt 0 S 1 0 1 step1 提取左公因子
  • [1182]clickhouse的日期函数

    文章目录 时间获取 时间转换 时间计算 时间格式化 时间获取 获取当前时间戳 select toUnixTimestamp now 获取指定时间的时间戳 select toUnixTimestamp 2021 05 11 14 37 37
  • Java线程:并发协作-死锁

    本文转载至 http lavasoft blog 51cto com 62575 222074 Java线程 并发协作 死锁 线程发生死锁可能性很小 即使看似可能发生死锁的代码 在运行时发生死锁的可能性也是小之又小 发生死锁的原因一般是两个
  • 【系列 2】手写vue模板编译

    模板编译流程是什么 1 获取 outerHTML div name div 2 正则查找转义成 ast 语法树 ast tag div attrs name id value app children type 3 text name pa
  • Java 上传附件后端接口大体流程和逻辑

    Java 上传附件 后端接口大体逻辑 所谓的附件 即包括我们常见的图片 各类文档 压缩包等等 上传附件是我们日常开发过程中 经常遇到的一个场景 也是我们Java后端程序猿必须要会的 今天周五 事情做完 离下班还有点时间 来水水大体思路 本文
  • CSS——文字对齐方式

    横向对齐 方法1 单行块级元素水平居中只用添加text align即可 如P标签 垂直居中vertical align只适用于行内元素与单元格 所以设置行高与块高度相同即可 text align center 方法2 普通的文本居中只要设置
  • 【OpenCV3图像处理】Mat类详解 之 元素的获取与赋值 ( 对比.at<>()函数 和 .ptr<>()函数)

    Mat中像素的获取与赋值 计算机视觉中 图像的读取是图像处理的基础 图像就是一系列像素值 OpenCV使用数据结构cv Mat来存储图像 cv Mat是一个矩阵类 矩阵中每一个元素都代表一个像素 对于灰度图像 像素用8位无符号数 0表示黑色
  • Android 开发 改变某个Activity的系统字号

    Android系统的字号可以在设置里改变 常常会影响布局效果 如果是个别控件不想被改变大小 使用 dp 而非 sp 作为字体单位即可 转载请注明出处 http blog csdn net u013258802 article details
  • JDBC连接MySQL数据库及自定义JDBCUtils

    JDBC连接MySQL数据库及自定义JDBCUtils 前言 一 JDBC连接数据库 1 引入依赖 2 连接数据库 二 自定义JDBCUtils 1 JDBCUtils 2 BeanJDBCUtils 3 使用自定义JDBC类操作数据库 前
  • Docker练习

  • 数据挖掘(二):特征工程

    数据挖掘 二 特征工程 1 删除无关变量 2 数据类型分析 3 缺失值处理 4 变量筛选 5 模型训练和评估 导入包 import pandas as pd import numpy as np from scipy import stat
  • Elasticsearch 快速开始

    Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎 查询 Elasticsearch 允许执行和合并多种类型的搜索 结构化 非结构化 地理位置 度量指标 搜索方式随心而变 分析 找到与查询最匹配的十个文档是
  • C++类型支持之std::is_function

    std is function C 11 用于检查类型是否为函数 注意此处函数类型不包括std function lambda 有重载operator 的类 可能的实现 初等模板 template
  • JDBC(一)

    JDBC 什么是JDBC Java语言访问数据库的一种规范 是一套API JDBC Java Database Connectivity API 即Java数据库编程接口 是一组标准的Java语言中的接口和类 使用这些接口和类 Java客户
  • Wind River Workbench 3.x VxWorks项目类型

    今天学习了解了Wind River Workbench 3 x VxWorks项目类型及这些类型之间的关系 7种VxWorks项目类型如下图所示 如上图 Wind River Workbench 3 3 相关VxWorks项目类型有7种 分
  • c++ fibonacci

    代码示例 c 示例 include
  • Python虚拟环境工具

    以ubuntu 20 04环境为例 介绍Python虚拟环境工具的使用 一 venv Python 从3 3 版本开始 自带了一个虚拟环境 venv 支持创建独立的虚拟开发环境 用于管理所需包或模块的特定版本 1 工具安装 sudo apt
  • 【Ubuntu 18.04】安装terminator 并在右键菜单中添加open in termintor

    安装terminator sudo apt install terminator 一般会自动把其设置为默认终端 在右键菜单中添加open in terminator 这废了很大力气 安装Nautilus actions Nautilus a

随机推荐

  • 逆向效率提升工具与方法汇总(持续更新...)

    欢迎大家提供高效方法与工具 工具 油猴插件 SwitchyOmega Reres Fiddler插件编程猫 奇淫技巧 selenium Options常用参数 防检测 将浏览器navigator webdriver重置为False stea
  • STM32F103使用TIM3定时器输出两路PWM控制直流电机

    1 首先打开PWM输出实验例程 这里采用正点原子精英版例程 打开led c 对相关端口进行修改 void LED Init void GPIO InitTypeDef GPIO InitStructure RCC APB2PeriphClo
  • openlayers绘制范围圆

    drawCircleByStation参数是坐标 lng lat 绘制范围圆taylor drawCircleOld centerPosition radius 2000 callback color fff text let featur
  • springboot+顺利达驾校预约管理 毕业设计-附源码191748

    Springboot顺利达驾校预约管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化 电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用 信息时代的到来已成为不可阻挡的时尚潮流 人类发展的历史正进入一个新时
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 如何解决vue项目不能自动打开浏览器

    运行项目npm run dev 命令行中已经提示我们运行成功了 等了半天浏览器也没有自动打开 没办法我们只能自己手动输入了 那么我们如何在npm run dev之后自动打开浏览器呢 首先找到config index js文件 在文件modu
  • 扩栈

    int size 256 lt lt 20 256MB char p char malloc size size asm movl 0 esp n r p
  • linux下备份目录文件及目录

    一 关于Linux备份文件和应用的几个命令 tar和cp 在工作中 经常来备份文件和系统应用 常用到的主要是tar和cp命令 分别介绍如下 一 tar命令 这个现在经常使用用来打包 tar包指的是档案文件 tar cvf filename
  • Qt 中 QObjectCleanupHandler 使用总结

    背景 QObjectCleanupHandler 类用于清理 QObject 类对象 通常可以作为资源清理器使用 监视对象生命周期 概述 QObjectCleanupHandler 中管理的对象被 delete 后会自动从其管理到的象列表中
  • Java垃圾回收机制详解(万字总结!一篇入魂!)

    Java垃圾回收机制详解 之前在 Java内存区域详解 这篇文章中 详细介绍了JVM内存区域的划分 以及创建对象时内存的分配情况 Java的自动内存管理机制 除了自动申请内存还会自动释放内存 这篇文章就来说一说Java内存回收机制 首先我们
  • php验证密码账号,PHP密码验证

    我在PHP中进行了注册验证 我正在对每个字段进行故障排除 以查看代码是否符合标准 当我按下提交按钮时 唯一不起作用的部分是密码 确认密码代码块 我已经进行了几个小时的故障排除 似乎无法找到问题 有人可以指出这个问题吗 谢谢 define v
  • 超长上下文处理:基于Transformer上下文处理常见方法梳理

    原文链接 芝士AI吃鱼 目前已经采用多种方法来增加Transformer的上下文长度 主要侧重于缓解注意力计算的二次复杂度 例如 Transformer XL通过缓存先前的上下文 并允许随着层数的增加线性扩展上下文 Longformer采用
  • Zookeeper原理架构

    转自 http blog csdn net xuxiuning article details 51218941 本文纯属个人笔记 通俗易懂 转载请附上原文链接 部分资料摘自网络 如有雷同 纯属巧合 Zookeeper到底是什么 学一个东西
  • okhttp3源码解析(2)-拦截器 I

    okhttp3源码解析 2 拦截器 I 前言 上一篇博文讲到了无论发起同步请求还是异步请求 okhttp最后都通过getResponseWithInterceptorChain方法得到response 里面是一系列的拦截器通过责任链形式实现
  • Monkey命令详解

    命令 adb shell monkey 命令参数 所有的参数都需要放在monkey和设置的次数之间 参数的顺序可以调整 若带了 p p必须放在monkey之后 参数必须在 p和次数之间 2 monkey基础命令 adb shell monk
  • An error happened during template parsing 错误解决

    学习记录 idea启动web项目出现问题 An error happened during template parsing 出现原因 web资源路径没有正确导入 解决方法 添加或修改正确的路径
  • 一步步教你修改Windows本地hosts文件,轻松修改域名指向!

    一步步教你修改Windows本地hosts文件 轻松修改域名指向 简介 一 什么是hosts文件 二 准备工作 二 定位hosts文件 三 修改hosts文件 四 刷新DNS缓存 五 验证修改结果 结论 简介 在前端开发过程中 我们经常需要
  • 【Django学习笔记 - 18】:drf请求响应简介、基类(APIView、GenericAPIView)、mixin扩展类与三级视图、视图集与路由

    文章目录 drf请求响应简介 请求Request 常用属性 响应Response 构造方式 参数说明 Response常用属性 基类 APIView的使用 使用案例 案例一 查看drf的结构 案例二 使用post请求获取表单和非表单数据 案
  • 【Vue】学习笔记-组件传值

    Vue 学习笔记 组件传值 前言 1 父级向子级传递数据 2 子级向父级传递数据 常见错误总结 前言 组件之间的传值可以分为三种 1 父级向子级传递数据 2 子级向父级传递数据 3 非父子级传递数据 本文主要讲解父级向子级传递数据和子级向父
  • 探索接入网和网络运营商——ADSL接入网的结构和工作方式

    1 互联网的基本机构和家庭 公司网络是相同的 互联网的基本工作方式和家庭 公司网络一样 互联网也是通过路由器来转发包的 而且路由器的基本结构和工作方式也并没有什么不同 当然也有不同之处 其中之一就是与转发设备间的距离 在家庭 公司网络中 与