《网络是这样连接的》读书笔记2
文章目录
6. 从网线到网络设备——探索集线器、交换机和路由器
6.1信号在网线和集线器中传输
两个关注点:
- 信号是如何在网线和集线器传输
- 如何抵制信号传输中的衰减和噪声干扰
发包
每个包都是独立传输,且转发设备会根据包头部中的控制信息,在转发设备内部一个写有转发规则的表中进行查询,以此来判断包的目的地。转发设备不考虑保内装有的是什么内容。(这种情况在计算机网络中随处可见)
一图胜千言
啥是防止信号衰弱?
网卡中的PHY(MAU)模块负责将包转换成电信号。以太网信号的本质是正负变化的电压。从网卡到集线器的接口仅仅是电信号在网线上传输。
但是信号到达集线器后并不是与发送之前一模一样。
网线越长,信号衰减就越严重。并且信号能量损失并非只是变弱,以太网中的信号波形是方形的,但损失能量会让信号的拐角变圆,这是因为电信号的频率越高,能量的损失率越大。如果本来就已经衰减的信号再进一步失真,就会出现对0和1的误判,这就是产生通信错误的原因。
噪声是如何产生的?
电磁波接触到金属等导体时,在其中就会产生电流。网线周围存在电磁波,就会在网线中产生和原本的信号不同的电流,而信号的本质是一种带有电压变化的电流,二者混杂在一起,导致信号的波形失真。
“双绞线”抑制噪声
双绞”的意思就是以两根信号线为一组缠绕在一起,这种拧麻花一样的设计是为了抑制噪声的影响。
影响网线的电磁波分为两种:
- 电机、荧光灯、CRT显示器等网线之外的设备泄漏出来的电磁波。
果我们将信号线缠绕在一起,信号线就变成了螺旋形,其中两根信号线中产生的噪声电流方向就会相反,从而使得噪声电流相互抵消,噪声就得到了抑制。
- 另一种电磁波是从网线中相邻的信号线泄漏出来的。这种内部产生的噪声称为串扰。
要抑制这种噪声,关键在于双绞线的缠绕方式。在一根网线中,每一对信号线的扭绞间隔(节距)都有一定的差异,这使得在某些地方正信号线距离近,另一些地方则是负信号线距离近。由于正负信号线产生的噪声影响是相反的,所以两者就会相互抵消。从网线整体来看,正负的分布保持平衡,自然就会削弱噪声的影响。(自己看图吧)
总结来说:
- 通过两根信号线的缠绕抵消外源性噪声;
- 通过改变节距抑制内源性噪声。
集线器将信号发往所有线路
以太网的基本架构就是将包发到所有的设备,然后由设备根据接收方MAC地址来判断应该接收哪些包。集线器就是以太网架构的忠实体现,它就是负责按照以太网的基本架构将信号广播出去。
集线器每个接口的后面装有和网卡中的PHY(MAU)功能相同的模块。信号到达集线器的PHY(MAU)模块后,会进入中继电路。中继电路的基本功能就是将输入的信号广播到集线器的所有端口上。(仅此而已)
6.2 交换机的包转发操作
(交换机有操作哦)
结构与功能
- 信号到达网线接口,并由PHY(MAU)模块进行接收。这一部分和集线器是相同。
- PHY(MAU)模块会将网线中的信号转换为通用格式,然后传递给MAC模块。(MAC模块将信号转换为数字信息,然后通过包末尾的FCS校验错误,如果没有问题则存放到缓冲区中。网线接口和后面的电路部分加在一起称为一个端口,也就是说交换机的一个端口就相当于计算机上的一块网卡。但交换机的工作方式和网卡有一点不同,交换机的端口不具有MAC地址。)(还有一种说法是多端口的网桥)
- 将包存入缓冲区后,接下来需要查询一下这个包的接收方MAC地址是否已经在MAC地址表中有记录了。
- 当网络包通过交换电路到达发送端口时,端口中的MAC模块和PHY (MAU)模块会执行发送操作,将信号发送到网线中。
(学过数字逻辑的朋友应该非常熟悉吧)
MAC地址表的维护(自学习功能)
对MAC地址表的内容进行维护,维护操作分为两种:
- 第一种是收到包时,将发送方MAC地址以及其输入端口的号码写入MAC地址表中。
- 另一种是删除地址表中某条记录的操作,这是为了防止设备移动时产生问题。
交换机会自行更新或删除地址表中的记录,不需要手动维护;具备管理功能的高端交换机提供手动维护地址表的功能。
特殊操作
- 当交换机发现一个包要发回到原端口时,就会直接丢弃这个包。(交换机一个端口只连接一个“设备”)
- 地址表中找不到指定的MAC地址,广播,将包转发到除了源端口之外的所有端口上,无论该设备连接在哪个端口上都能收到这个包。
- 如果接收方MAC地址是一个广播地址,那么交换机会将包发送到除源端口之外的所有端口。
双工模式可以同时进行发送和接收
交换机的全双工模式可以同时发送和接收信号
使用双绞线时,发送和接收的信号线是各自独立的,因此在双绞线中信号不会发生碰撞,也就不需要半双工模式中的碰撞检测。
自动协商:确定最优的传输速率
(高级!)
如何在全双工和半双工模式之间进行切换?
自动切换工作模式的功能可以由相互连接的双方探测对方是否支持全双工模式,并自动切换成相应的工作模式。此外,除了能自动切换工作模式之外,还能将自己能够支持的工作模式和传输速率相互告知对方,并从中选择一个最优的组合并自动切换。这种自动切换的功能称为自动协商。
在以太网中,当没有数据在传输时,网络中会填充一种被称为连接脉冲的脉冲信号。人们设计出了具有特定排列的脉冲信号,通过这种信号可以将自身的状态告知对方。
交换机可同时执行多个转发操作
当一个包在转发时,其他端口都是空闲的,这些端口可以传输其他的包。
6.3 路由器的包转发操作
结构与功能
路由器是基于IP设计的,而交换机是基于以太网设计的。工作在不同的协议层次。
路由器包括转发模块和端口模块两部分。**转发模块负责判断包的转发目的地,端口模块负责包的收发操作。**大家可以将路由器的转发模块想象成IP模块,将端口模块想象成网卡。
通过更换网卡,计算机不仅可以支持以太网,也可以支持无线局域网,路由器也是一样。(利用基于不同通信技术的物理网络)
路由器的各个端口都具有MAC地址和IP地址。 路由器根据“IP地址”判断转发目标。
路由表
关于子网掩码的一些问题
路由器中子网掩码的作用就是告诉路由器,只匹配子网掩码中为1的那些位。
地址本身的子网掩码和路由表中的子网掩码是不一致的,这是路由聚合的结果。路由聚合
我们现在有3个子网,分别为10.10.1.0/24、10.10.2.0/24、10.10.3.0/24,路由器B需要将包发往这3个子网。在这种情况下,路由器B的路由表中原本应该有对应这3个子网的3条记录,但在这个例子中,无论发往任何一个子网,都是通过路由器A来进行转发,因此我们可以在路由表中将这3个子网合并成10.10.0.0/16,这样也可以正确地进行转发,但我们减少了路由表中的记录数量,这就是路由聚合。经过路由聚合,多个子网会被合并成一个子网,子网掩码会发生变化,同时,目标地址列也会改成聚合后的地址。
相对地,还有另外一些情况,如将一个子网进行细分并注册在路由表中,然后拆分成多条记录。划分子网的结果
跃点计数,它表示距离目标IP地址的距离是远还是近。这个数字越小,表示距离目的地越近;数字越大,表示距离目的地越远。
路由表的维护
- 由人手动维护路由记录
- 根据路由协议机制,通过路由器之间的信息交换由路由器自行维护路由表的记录(RIP、OSPC、BGP等)
路由器的包接受操作
路由器的端口都具有MAC地址,只接收与自身地址匹配的包,遇到不匹配的包则直接丢弃。
查询路由表确定输出端口
完成包接收操作之后,路由器就会丢弃包开头的MAC头部。一对MAC地址只在一段线路(不经过路由器的线路)中有效。
接下来,路由器会根据MAC头部后方的IP头部中的内容进行包的转发操作。
- 从第一行开始将目的IP地址与该行子网掩码中相与(只取考虑/根据网络号来判断往哪儿转发),如果这个结果与该行IP地址一致,则转发对应接口。但是可能有多行的相与结果都匹配,这时,路由器首先寻找网络号比特数最长的一条记录(网络号比特数越长,说明主机号比特数越短,也就意味着该子网内可分配的主机数量越少,即子网中可能存在的主机数量越少)有时候路由表中会存在网络号长度相同的多条记录,选择跃点计数较小的记录。
- 如果在路由表中无法找到匹配的记录,路由器会丢弃这个包,并通过ICMP消息告知发送方。(不能像交换机一样广播,因为路由器工作环境是互联网、规模太太太太太大,如果将不知道应该转发到哪里的包发送到整个网络上,那就会产生大量的网络包,造成网络拥塞)
- 不可能将所有的转发目标都配置在路由表中,找不到匹配路由时选择默认路由。路由表中子网掩码为0.0.0.0的记录表示“默认路由”。(其实这里的默认路由与正向代理有类似之处)
包的有效期
路由器转发网络包之前要更新IP头部中的TTL(Time toLive,生存时间)字段。包每经过一个路由器的转发,这个值就会减1,当这个值变成0时,就表示超过了有效期,这个包就会被丢弃。
防止包在一个地方陷入死循环。
通过分片功能拆分大网络包
路由器的端口并不只有以太网一种,不同的线路和局域网类型各自能传输的最大包长度也不同。(这里要注意)因此输出端口的最大包长度可能会小于输入端口[插图]。即便两个端口的最大包长度相同,也可能会因为添加了一些头部数据而导致包的实际长度发生变化。
遇到这种情况,可以使用IP协议中定义的分片功能对包进行拆分,缩短每个包的长度。需要得知输出端口的MTU。当然、分片之前还需要看一下IP头部中的标志字段,确认是否可以分片。(如若不能,你把路堵死啦,我只能用ICMP打报告啦。)
数据被拆分后,每一份数据前面会加上IP头部,其大部分内容都和原本的IP头部一模一样,但其中有部分字段需要更新,这些字段用于记录分片相关的信息。
路由器的发送操作和计算机相同
知道对方的IP地址之后,接下来需要通过ARP根据IP地址查询MAC地址,并将查询的结果作为接收方MAC地址。路由器也有ARP缓存,因此首先会在ARP缓存中查询,如果找不到则发送ARP查询请求。(计算机网络就是一个 各种缓存/表/代理/隧道/分层协议)
路由器判断下一个转发目标的方法如下。
- 如果路由表的网关列内容为IP地址,则该地址就是下一个转发目标。
- 如果路由表的网关列内容为空,则IP头部中的接收方IP地址就是下一个转发目标。(到地方啦,目的设备就在这个路由器连接的局域网内)
路由器与交换机的关系
路由器是基于IP设计的,而交换机是基于以太网设计的,因此IP与以太网的关系也就是路由器与交换机的关系。换句话说,路由器将包的传输工作委托给交换机来进行。当然,这里讲的内容只适用于原原本本实现IP和以太网机制的纯粹的路由器和交换机,实际的路由器有内置交换机功能。
另外:
给包加上MAC头部并发送,从本质上说是将IP包装进以太网包的数据部分中,委托以太网去传输这些数据。(这是IP协议的功能)IP协议本身没有传输包的功能,因此包的实际传输要委托以太网来进行。(以太网的功能)
路由器根据IP转发到一个端口、发送,碰上交换机、根据MAC地质转发到端口、发送,直到找到下一个路由器或者到主机。IP(路由器)负责将包送达通信对象这一整体过程,而其中将包传输到下一个路由器的过程则是由以太网(交换机)来负责的。
6.4 路由器的附加功能
地址转换有效利用IP地址(地址转换协议NAT)
假如有A、B两家公司,它们的内网是完全独立的。这种情况下,两家公司的内网之间不会有网络包流动,即使A公司的某台服务器和B公司的某台客户端具有相同的IP地址也没关系,因为它们之间不会进行通信。只要在每家公司自己的范围内,能够明确判断网络包的目的地就可以了。(规定某些地址是用于内网的,这些地址叫作私有地址)
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
内网和互联网之间需要传输包怎么办?
公司内网分成两个部分,一部分是对互联网开放的服务器,另一部分是公司内部设备。
- 其中对互联网开放的部分分配公有地址,可以和互联网直接进行通信。
- 内网部分则分配私有地址,内网中的设备不能和互联网直接收发网络包,而是通过一种特别的机制进行连接,这个机制就叫地址转换。
地址转换的基本原理是在转发网络包时对IP头部中的IP地址和端口号进行改写
在对外只能使用一个公有地址的情况下,可以用不同的端口号来区别内网中的不同终端。
改写端口号的原因
客户端一方的端口号本来就是从空闲端口中随机选择的,因此改写了也不会有问题。端口号是一个16比特的数值,总共可以分配出几万个端口[插图],因此如果用公有地址加上端口的组合对应一个私有地址,一个公有地址就可以对应几万个私有地址,这种方法提高了公有地址的利用率。
从互联网访问公司内网
除非公司主动允许,否则是无法从互联网向公司内网发送网络包的。这种机制具有防止非法入侵的效果。
一般来说,用于外网访问的服务器可以放在地址转换设备的外面并为它分配一个公有地址,也可以将服务器的私有地址手动添加到地址转换设备中,这样就可以从互联网访问到这台具有私有地址的服务器了。
只要事先将地址和端口的关联信息添加到地址转换设备的对应表中,就可以从互联网访问内网中的设备了。
路由器的包过滤功能
包过滤就是在对包进行转发时,根据MAC头部、IP头部、TCP头部的内容[插图],按照事先设置好的规则决定是转发这个包,还是丢弃这个包。我们通常说的防火墙设备或软件,大多数都是利用这一机制来防止非法入侵的。
7. 通过接入网接入互联网内部——探索接入网和网络运营商
这本书在这一部分讲解的内容较多,我个人感觉比较难以理解,我觉得知道大概的流程即可,黑盒。
7.1ADSL接入网的结构和工作方式
互联网的结构
互联网通过路由器来转发包。我们可以将互联网理解为家庭、公司网络的一个放大版。
互联网也有一些和家庭、公司网络不同的地方,其中之一就是与转发设备间的距离。
除了距离之外,路由器在如何控制包的转发目标上也不一样。尽管从基本原理来看,互联网也是根据路由表中的记录来判断转发目标的,但路由表记录的维护方式不同。互联网中的路由器上有超过10万条路由记录,而且这些记录还在不断变化,必须实现自动化。
距离的不同和路由的维护方式,就是互联网与家庭、公司网络之间最主要的两个不同点。
接入网是啥?
接入网,就是指连接互联网与家庭、公司网络的通信线路。
一般家用的接入网方式包括ADSL(利用原有电话线路)、FTTX(光纤到*)、CATV(有线电视)、电话线、ISDN等,公司则还可能使用专线。接入网的线路有很多种类,我们无法探索所有这些线路,因此下面先介绍一个比较有代表性的例子——ADSL。
用户端路由器发出的网络包通过ADSL Modem(调制解调器,猫)和电话线到达电话局,然后到达ADSL的网络运营商(即ISP,互联网服务提供商)
部分名词解释:
BAS:Broadband Access Server,宽带接入服务器。它也是一种路由器。
PPP:Point-to-Point Protocol,点到点协议。它是电话线、ISDN 等通信线路所使用的一种协议,集成了用户认证、配置下发、数据压缩、加密等各种功能。
互联网接入路由器会在网络包前面加上MAC头部、PPPoE头部、PPP头部总共3种头部,然后发送给ADSL Modem (PPPoE方式下)。
ADSL Modem将包拆分成信元,并转换成电信号发送给分离器。
ADSL将信元“调制”成信号
以太网采用的是用方波信号表示0和1的方式,这种方式很简单,但同样是将数字信息转换成模拟信号,ADSL采用的方法要复杂一些。其中有两个原因,一个原因是方波信号的波形容易失真,随着距离的延长错误率也会提高;另一个原因是方波信号覆盖了从低频到高频的宽广频段,信号频率越高,辐射出来的电磁噪声就越强,因此信号频谱太宽就难以控制噪声。
ADSL Modem采用了一种用圆滑波形(正弦波)对信号进行合成来表示0和1的技术,这种技术称为调制。调制有很多方式,ADSL采用的调制方式是振幅调制(ASK)和相位调制(PSK)相结合的正交振幅调制(QAM)方式
振幅调制是用信号的强弱,振幅小的信号为0,振幅大的信号为1。例如,如果将振幅增加到4个级别,则振幅从小到大可分别对应00、01、10和11,这样就可以表示两个比特了。如果振幅级别太多,接收方对信号的识别就容易出错,因此振幅级别也不能太多。
另一个组成要素是相位调制,这是一种根据信号的相位来对应0和1的方式。Modem产生的信号是以一定周期振动的波振动的起始位置不同,波的形状也就不同。如果将波的一个振动周期理解为一个圆,则起始位置就可以用0度到360度的角度来表示,这个角度就是相位,用角度来对应0和1的方式就叫作相位调制。例如,从0度开始的波为0,从180度开始的波为1。相位调制也可以通过将角度划分为更细的级别来增加对应的比特数量,从而提高速率。但是,角度太接近的时候也容易产生误判,因此这样提升速率还是有限度的。
ADSL使用的正交振幅调制就是将前面这两种方式组合起来实现。
ADSL通过使用多个波来提高速率
实际上信号不一定要限制在一个频率。不同频率的波可以合成,也可以用滤波器从合成的波中分离出某个特定频率的波。因此,我们可以使用多个频率合成的波来传输信号,这样一来,能够表示的比特数就可以成倍提高了。
每个波都采用正交振幅调制,而且,根据噪声等条件的不同,每个波表示的比特数是可变的。也就是说,噪声小的频段可以给波分配更多的比特,噪声大的频段则给波分配较少的比特[插图],每个频段表示的比特数加起来,就决定了整体的传输速率。
如果上行使用26个频段,下行则可以使用95个或者223个频段,波的数量不同,导致了上下行速率不同。(上行少,下行多,主要用于日常使用)
当然,下行使用的频段较高,这些信号容易衰减而且更容易受到噪声的影响,因此这些频段可能只能表示较少的比特数,或者干脆无法传输信号。距离越远,频率越高,这种情况也就越显著,因此如果你家距离电话局太远,速率就会下降。
ADSL会持续检查线路质量,动态判断使用的频段数量,以及每个频段分配到的比特数。当Modem通电后,会发送测试信号,并根据信号的接收情况判断使用的频段数量和每个频段的比特数。
分离器的作用
ADSL Modem将信元转换为电信号之后,信号会进入一个叫作分离器的设备,然后ADSL信号会和电话的语音信号混合起来一起从电话线传输出去。这时,分离器实际上并没有做什么事。
信号从电话线传入的时候。这时,分离器需要负责将电话和ADSL的信号进行分离,以确保ADSL信号不会传入电话机。
具体来说,分离器的功能是将一定频率以上的信号过滤掉,也就是过滤掉了ADSL使用的高频信号。
但对于另一头的ADSLModem,则是传输原本的混合信号给它。ADSLModem内部已经具备将ADSL频率外的信号过滤掉的功能,因此不需要在分离器进行过滤。
从用户到电话局
从分离器出来,就是插电话线的接口,信号从这里出来之后,会通过室内电话线,然后到达大楼的IDF和MDF,外面的电话线在这里和大楼内部的室内电话线相连接。
名词解释:
IDF:Intermediate Distribution Frame,中间配线盘。
MDF:Main Distribution Frame,主配线盘(总配线架)
通过配线盘之后,信号会到达保安器。保安器是为了防止雷电等情况下电话线中产生过大电流的一种保护装置,内部有保险丝。
接下来,信号会进入电线杆上架设的电话电缆。
在电话局附近,电话线都是埋在地下的。由于电话局附近的地下电缆很多,集中埋设电缆的地方就形成了一条地道,这部分称为电缆隧道。通过电缆隧道进入电话局后,电缆会逐根连接到电话局的MDF上。
噪声的干扰
ADSL信号受到干扰后并不会立即造成错误。ADSL信号分布在多个频段上,只有和噪声频率相同的信号会受到影响而无法读取,即可用的信号数量减少,结果导致速率下降。
通过DSLAM到达BAS
信号通过电话线到达电话局之后,会经过配线盘、分离器到达DSLAM。在这里,电信号会被还原成数字信息——信元。
用户端ADSL Modem具备以太网接口,可以与用户端的路由器和计算机交互,收发以太网包,而DSLAM一般不用以太网接口,而是用ATM接口,和后方路由器收发数据时使用的是原始网络包拆分后的ATM信元形式。
DSLAM具有ATM接口,和后方路由器收发数据时使用的是原始网络包拆分后的ATM信元形式。
名词解释:
DSLAM:DSL Access Multiplexer,数字用户线接入复用设备。它是一种电话局用的多路 ADSL Modem,可以理解为将多个 ADSL Modem整合在一个外壳里的设备。
ATM:Asynchronous Transfer Mode,异步传输。它是在以电话线为载体的传统电话技术基础上扩展出来的一种通信方式。它的数据传输是以“信元”为单位来进行的,这和以包为单位传输数据的 TCP/IP 很像,但这种方式并不适用于计算机通信。
信元从DSLAM出来之后,会到达一个叫作BAS的包转发设备。BAS和DSLAM一样,都具有ATM接口,可以接收ATM信元,还可以将接收到的ATM信元还原成原始的包。
它会将收到的包前面的MAC头部和PPPoE头部丢弃,取出PPP头部以及后面的数据。MAC头部和PPPoE头部的作用是将包送达BAS的接口,当接口完成接收工作后,它们就完成了使命,可以被丢弃了。
BAS会在包的前面加上隧道专用头部,并发送到隧道的出口。
BAS负责将ATM信元还原成网络包并转发到互联网内部。
7.2光纤接入网(FTTH)
光纤
光纤的结构如图所示,它是由一种双层结构的纤维状透明材质(玻璃和塑料)构成的,通过在里面的纤芯中传导光信号来传输数字信息。ADSL信号是由多个频段的信号组成的,比较复杂,但光信号却非常简单,亮表示1,暗表示0。
单模与多模
首先,我们来看看光源发出的光是如何进入纤芯的。光源在所有方向上都会发光,因此会有各种角度的光线进入纤芯,但入射角度太大的光线会在纤芯和包层(纤芯外沿部分)的边界上折射出去,只有入射角较小的光线会被包层全反射,从而在纤芯中前进。
不过,也不是所有入射角小的光线都会在纤芯中传导。当光线在纤芯和包层的边界上反射时,会由于反射角产生相位变化。当朝反射面前进的光线和被反射回来的光线交会时,如果两条光线的相位不一致,就会彼此发生干涉抵消,只有那些相位一致的光线才会继续在光纤中传导。(这部分知道就行)
几个特定的角度下,向反射面前进的光和反射回来的光的相位是一致的,只有以这些角度反射的光才能继续向前传导。
换句话说,单模和多模实际上表示相位一致的角度有一个还是多个。
多模光纤中,多条反射角不同的光线同时传导,其中反射角越大的光线反射次数越多,走过的距离也就越长;相对地,反射角越小的光线走过的距离越短,通过的距离越长,到达接收端的时间越长,结果,多条光线到达的时间不同,信号的宽度就会被拉伸,这就造成了失真。
单模光纤则不会出现这样的问题。
通过光纤分路来降低成本
用光纤来代替ADSL(主流规格是和 ADSL 一样采用 PPPoE 方式进行接入)将用户端接入路由器和运营商的BAS连接起来的接入方式就是FTTH(FTTX的一种),从形态上可大致分为两种。
-
一种是用一根光纤直接从用户端连接到最近的电话局。这种类型的FTTH中,用户和电话局之间通过光纤直接连接。
- 用户端的光纤收发器将以太网的电信号转换成光信号这一步只进行电信号到光信号的转换,而不会像ADSL一样还需要将包拆分成信元,大家可以认为是将以太网包原原本本地转换成了光信号。
- 光信号通过连接到光纤收发器的光纤直接到达BAS前面的多路光纤收发器。
- 多路光纤收发器将光信号转换成电信号,BAS的端口接收之后,将包转发到互联网内部。
- 把网络包发送到互联网之后,服务器会收到响应,响应包的光信号也是沿着同一条光纤传输到用户端的。这里,前往互联网的上行光信号和前往用户的下行光信号在光纤中混合在一起,通过波分复用。
-
另一种光纤的接入方式是在用户附近的电线杆上安装一个名为分光器的设备,通过这个设备让光纤分路,同时连接多个用户。在这种方式下,用户端不使用光纤收发器,而是使用一个叫作ONU的设备,它将以太网的电信号转换成光信号之后,会到达BAS前面的一个叫作OLT的设备。
多个用户同时收发网络包时信号会在分光器产生碰撞。因此,OLT和ONU中具备通过调整信号收发时机来避免碰撞的功能。
OLT会调整信号发送时机并向ONU下发指令,ONU则根据OLT的指令来发送数据。
反过来,当BAS端向用户发送数据时,分光器只需要将信号发给所有用户就可以了,这里并不会发生碰撞,但这样做会导致一个用户收到其他所有用户的信号,造成信息泄露的问题,因此需要在每个包前面加上用于识别ONU的信息,当ONU收到信号后,会接收发给自己的信号并将其转换成以太网信号。
名词解释:
光纤收发器:将以太网的电信号转换成光信号的设备,也叫“终端盒”。
ONU:Optical Network Unit,光网络单元。它和光纤收发器一样,可以将电信号转换成光信号,除此之外还具有和电话局的 OLT 相互配合避免信号碰撞的功能。这个设备有时也被叫作终端盒,因此终端盒这个词本身是对光纤收发器和 ONU 等光纤终端设备的统称。
OLT:Optical Line Terminal,光线路终端。
7.3接入网中使用的PPP和隧道
用户认证和配置下发
ADSL和FTTH接入网中,都需要先输入用户名和密码[插图],登录之后才能访问互联网,而BAS就是登录操作的窗口。
BAS使用PPPoE方式来实现这个功能。PPPoE是由传统电话拨号上网上使用的PPP协议发展而来
名词解释:
PPPoE:Point-to-Point Protocol over Ethernet,以太网的点对点协议。
PPP拨号上网的工作方式
- 用户向运营商的接入点拨打电话
- 电话接通后输入用户名和密码进行登录操作。
- 用户名和密码通过RADIUS协议从RAS[插图]发送到认证服务器,认证服务器校验这些信息是否正确。
- 当确认无误后,认证服务器会返回IP地址等配置信息,并将这些信息下发给用户。
- 用户的计算机根据这些信息配置IP地址等参数,完成TCP/IP收发网络包的准备工作,接下来就可以发送TCP/IP包了。
在接入互联网时,必须为计算机分配一个公有地址,但这个地址并不是事先确定的。因为在拨号连接时,可以根据电话号码来改变接入点,而不同的接入点具有不同的IP地址,因此无法事先在计算机上设置这个地址。所以,在连接时运营商会向计算机下发TCP/IP配置信息,其中就包括为计算机分配的公有地址。
名词解释:
RADIUS:Remote Authentication Dial-in User Service,远程认证拨号用户服务。
RAS:Remote Access Server,远程访问服务器。
在以太网上传输PPP消息
ADSL和FTTH接入方式也需要为计算机分配公有地址才能上网,这一点和拨号上网是相同的。不过,ADSL和FTTH中,用户和BAS之间是通过电缆或光纤固定连接在一起的,因此没有必要验证用户身份。所以实际上并不需要PPP的所有这些功能。然而,通过用户名和密码登录的步骤可以根据用户名来切换不同的运营商,这很方便。因此,接入运营商在ADSL和FTTH中一般也会使用PPP。
PPP协议:PPP协议中没有定义以太网中的报头和FCS等元素,也没有定义信号的格式,因此无法直接将PPP消息转换成信号来发送。要传输PPP消息必须有另一个包含报头、FCS、信号格式等元素的“容器”,然后将PPP消息装在这个容器里才行。于是,在拨号接入中PPP借用了HDLC协议作为容器。
ADSL和FTTH并不能使用HDLC,因此需要寻找另一个机制作为替代,并且以太网和PPP在设计上有所不同,为了弥补这些问题就重新设计了一个新的规格,这就是PPPoE。
PPPoE是将PPP消息装入以太网包进行传输的方式。
通过隧道将网络包发送给运营商
BAS除了作为用户认证的窗口之外,还可以使用隧道方式来传输网络包。所谓隧道,就类似于套接字之间建立的TCP连接。也就是说,我们将包含头部在内的整个包从隧道的一头扔进去,这个包就会原封不动地从隧道的另一头出来,就好像在网络中挖了一条地道,网络包从这个地道里穿过去一样。
如果在BAS和运营商路由器之间的ADSL/FTTH接入服务商的网络中建立一条隧道,将用户到BAS的接入网连接起来,就形成了一条从用户一直到运营商路由器的通道,网络包通过这条通道,就可以进入互联网内部了,这样的机制就类似于将接入网一直延伸到运营商路由器。
隧道有几种实现方式,刚才提到的TCP连接就是其中一种实现方式,另一种基于封装(encapsulation)的隧道实现方式。
无论任何机制,只要能够将包原封不动搬运到另一端,从原理上看就都可以用来建立隧道。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
接入网的整体工作过程
互联网接入路由器通过PPPoE的发现机制查询BAS的MAC地址。
BAS下发的TCP/IP参数会被配置到互联网接入路由器的BAS端的端口上,这样路由器就完成接入互联网的准备了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G9kzqiAo-1612074585878)(https://i.loli.net/2021/01/31/YIc6oD3LaCZtwe5.png)]
BAS在收到用户路由器发送的网络包之后,会去掉MAC头部和PPPoE头部,然后用隧道机制将包发送给网络运营商的路由器。
不分配IP地址的无编号端口
互联网接入路由器在发送包的时候为什么要加上那些头部呢?头部里面的值基本上都是事先定好的,跟路由表里面的默认网关地址根本没什么关系。当采用一对一连接,也就是两台路由器的端口用一根线直接连起来的情况下,一端发送的包肯定会到达另一端,那么这种情况下就没有必要按照路由表查询默认网关来判断转发目标地址了。如果没有必要判断转发地址,那么网关的地址也就没什么用了;如果网关地址没用,那么目标路由器的端口也用不着分配IP地址了。上面的性质对于所有一对一连接都是适用的。
PPPoE 是工作在以太网上的协议,可以通过集线器与路由器和 BAS 连接,因此从物理层面的连接形态来看并不是一对一的。不过,通过发现机制开始和 BAS 通信后,逻辑层面上就是一对一通信,因此这一性质也是适用的。
一对一连接的端口可以不分配IP地址,这种方式称为无编号。
互联网接入路由器将私有地址转换成公有地址
[插图]。刚才我们讲过,BAS会向用户端下发TCP/IP的配置信息,如果将这些信息配置在计算机上,就相当于计算机拥有了公有地址,这种情况下不需要进行地址转换也可以访问互联网,其实TCP/IP原本的设计就是这样的。
然而,如果使用路由器来上网,BAS下发的参数就会被配置在路由器上,而且公有地址也是分配给路由器的。这样一来,计算机就没有公有地址了。
这时,计算机会被分配一个私有地址,计算机发送的包需要通过路由器进行地址转换然后再转发到互联网中。
遇到应用程序因地址转换无法正常工作的情况时,我们可以不使用路由器,而是直接让计算机接收来自BAS的PPPoE消息[插图],也就是采用最原始的上网方法。这样一来,计算机就具有了公有地址,不需要地址转换也可以上网了。
上网的计算机拥有公有地址,这意味着来自互联网的包可以直接到达计算机,这可能导致计算机被攻击。因此,对于直接上网的客户端计算机,我们应该采取安装防火墙软件等防御手段。
除PPPoE之外的其他方式
PPPoA方式不添加MAC头部和PPPoE头部,而是直接将包装入信元中。
还有一种DHCP方式,它不使用PPP,而是将以太网包直接转换成ADSL信号发送给DSLAM。(看不太懂,不多介绍)
7.4网络运营商的内部
互联网内部
网络包通过接入网之后,到达运营商POP的路由器。
POP和NOC是啥?
POP的结构根据接入网类型以及运营商的业务类型不同而不同,POP中包括各种类型的路由器。
NOC:Network Operation Center,网络运行中心,是运营商的核心设备,从 POP 传来的网络包都会集中到这里,并从这里被转发到离目的地更近的
POP,或者是转发到其他的运营商。这里也需要配备高性能的路由器。
NOC和POP并没有非常严格的界定。NOC里面也可以配备连接接入网的路由器,很多情况下是和POP共用的。从IP协议的传输过程来看,也没有对两者进行区分的必然性,因为无论是哪个路由器,其转发网络包的基本工作原理都是相同的。因此,大家可以简单地认为,NOC就是规模扩大后的POP。
(实际上 POP 和 NOC 中的设备不只有路由器。因为运营商还会提供如网
站、邮件等各种服务,所以机房里面还会配备各种服务器。)
室外通信线路的连接
- 对于自己拥有光纤[插图]的运营商来说,可以选择最简单的方式,也就是用光纤将NOC和POP直接连接起来。
- 其他运营商租借光纤,拥有光纤的公司一般都会提供光纤租用服务。不拥有光纤的运营商则可以使用租借通信线路的方式将相距较远的NOC和POP连接起来
- 光纤是可以复用的,一条语音数据只占其通信能力的一部分。电话公司可以将自己的光纤的一部分通信能力租借给客户。
- 其中也有一些公司不对光纤进行细分,而是直接将整条光纤租借出去,直驳光纤。
7.5跨越运营商的网络包
运营商之间的连接
到达POP路由器之后,网络包是如何前往下一站。
如果最终目的地Web服务器和客户端是连接在同一个运营商中的,那么POP路由器的路由表中应该有相应的转发目标。
如果服务器的运营商和客户端的运营商不同,网络包需要先发到服务器所在的运营商。
运营商之间的路由信息交换
要让相连的路由器告知路由信息就可以了。只要获得了对方的路由信息,就可以知道对方路由器连接的所有网络,将这些信息写入自己的路由表中,也就可以向那些网络发送包了。
这个路由信息交换的过程是由路由器自动完成的,这里使用的机制称为BGP
-
一类是将互联网中的路由全部告知对方
如果运营商D将互联网上所有路由都告知运营商E,则运营商E不但可以访问运营商D,还可以访问运营商D后面的运营商B、A和C。然后,通过运营商D就可以向所有的运营商发送包。像这样,通过运营商D来发送网络包的方式称为转接。
-
另一种类型是两个运营商之间仅将与各自网络相关的路由信息告知对方。这样,只有双方之间的网络可以互相收发网络包,这种方式称为非转接,也叫对等。
名词解释:
BGP:Border Gateway Protocol,边界网关协议。
互联网内部使用BGP机制在运营商之间交换路由信息。。
与公司网络中自动更新路由表机制的区别
公司中使用的方式是寻找与目的地之间的最短路由,并按照最短路由来转发包,因此,周围的所有路由器都是平等对待的。但运营商之间就不行了。运营商之间的路由交换是在特定路由器间一对一进行的。这样一来,运营商就可以只将路由信息提供给那些交了费的运营商,那些没交费的运营商也就无法将网络包发送过来了。在判断路由时,该机制不仅可以判断是否是最短路由,还可以设置其他一些判断因素。例如当某个目的地有多条路由时,可以对每条路由设置优先级。
IX的必要性
名词解释:
IX:Internet eXchange,中文一般叫作“互联网交换中心”。
运营商如何通过IX互相连接
IX所在的大楼都装有自主发电设备,并具有一定的抗震能力。其实这样的要求也不仅限于IX,运营商的NOC也是一样。IX的核心是具有大量高速以太网端口的二层交换机。二层交换机的基本原理和一般交换机相同,大家可以认为IX的核心就是大型的、高速的交换机。
各个运营商的路由器连接到IX核心交换机上:
- 当运营商NOC和IX位于同一幢大楼里时,只要从NOC中将光纤延长出来接到IX交换机就可以了。
- NOC和IX不在同一幢大楼里
- 一种是从路由器延伸出一根通信线路并连接到IX交换机上。
- 另一种是将路由器搬到IX机房里,用通信线路将路由器和NOC连起来,再将路由器连到IX交换机上。
8. 第二部分完
第四章(文章第七部分)内容个人认为有些繁琐,而且现在只要知道大概就可以。
明天一定一定完成最后一部分。