POP和NOC
POP
:
Point of Presense
,中文一般叫作“接入点”
网络到达了网络运营商的路由器,将是如何工作的呢?。
路由器是互联网的入口。
互联网的实体并不是由一个组织运营管理的单一网络,
而是由多个运营商网络相互连接组成的(如图
)。
ADSL
、
FTTH
等接入网是与用户签约的运营商设备相连的,
这些设备称为
POP
,
互联网的入口就位于这里。
那么
,
POP
里面是什么样的呢
?
POP
的结构根据接入网类型以及运营商的业务类型不同而不同,
大体上是下图
中的这个样子
。
POP
中包括各种类型的路由器,
路由器的基本工作方式是相同的
,
但根据其角色分成了不同的类型。
图
中
,
中间部分列出了连接各种接入网的路由器,这里的意思就是根据接入网的类型需要分别使用不同类型的路由器。
我们从上面开始看,
首先是专线
,
这里用的路由器就是具有通信线路端口的一般路由器。
专线不需要用户认证
、
配置下发等功能
,
因此用一般的路由器就可以了。
接下来是电话
、
ISDN
等拨号方式的接入网
,
这里使用的路由器称为 RAS。
拨号接入需要对用户拨电话的动作进行应答
,
而RAS 就具备这样的功能
。
此外
,
之前我们讲过通过
PPP
协议进行身份认证和配置下发的过程,
RAS
也具备这些功能
。
再往下是
PPPoE
方式的
ADSL和 FTTH
。
PPPoE
方式中
,
ADSL、FTTH 接入服务商会使用 BAS,运营商的路由器则与 BAS 相连
。
PPPoE
中的身份认证和配置下发操作由接入服务商的 BAS
来负责
,
运营商的路由器只负责对包进行转发
,
因此这里也是使用一般的路由器就可以了。
如果
ADSL
采用
PPPoA
方式接入
,
那么工作过程会有所不同,
DSLAM 通过 ATM 交换机与 ADSL 的运营商的 BAS 相连,然后再连接到运营商的路由器
。
用户端传输的信号先经过
ADSL Modem 拆分成
ATM
信元并进行调制
,
然后
DSLAM
将信号还原成信元
, 通过 ATM
交换机转发到
BAS
,
最后
BAS
将信元还原成网络包
,
再通过运营商的路由器转发到互联网内部。
NOC
:
Network Operation Center
,网络运行中心
对于连接接入网的部分来说,由于要连接的线路数量很多,所以路由器需要配备大量的端口,但能传输的网络包数量相对比较少,这是因为接入网的速率比互联网核心网络要低
。
因此
,
端口多且价格便宜的路由器适
用于这些场景
。
相对地
,
图中左侧的路由器用于连接运营商和核心 NOC以及其他 POP,所有连接接入网的路由器发出的包都会集中到这里,使用的线路速率也比较高,因此这里需要配备转发性能和数据吞吐量高的路由器
。
NOC
是运营商的核心设备
,
从
POP
传来的网络包都会集中到这里
, 并从这里被转发到离目的地更近的 POP
,
或者是转发到其他的运营商
。
这里也需要配备高性能的路由器。话说回来,
到底需要多高的性能才行呢
?
我们来看实际产品的参数
。面向运营商的高性能路由器中有些产品的数据吞吐量超过 1 Tbit/s
B
,
而一般 面向个人的路由器的数据吞吐量也就 100 Mbit/s
左右
,
两者相差
1
万多倍
。 当然,
路由器的性能不完全是由吞吐量决定的
,
但从这里可以看出规模和性能的差异。 其实,
NOC
和
POP
并没有非常严格的界定
。
NOC
里面也可以配备连接接入网的路由器,
很多情况下是和
POP
共用的
。
从 IP 协议的传输过程来看,也没有对两者进行区分的必然性,因为无论是哪个路由器,其转发网络包的基本工作原理都是相同的。因此,大家可以简单地认为,NOC 就是规模扩大后的 POP。
通信线路的连接:电话公司的通信线路租借服务
POP
和
NOC
遍布全国各地
,
它们各自的规模有大有小
,
但看起来跟公司里的机房没什么太大区别,
都是位于一幢建筑物中的
,
其中的路由器或者通过线路直接连接,
或者通过交换机进行连接
,
这些和公司以及家庭网络都是相同的。
只不过
,
公司的机房一般使用双绞线来连接设备
,
但运营商的网络中需要传输大量的包,已经超过了双绞线能容纳的极限,因此一般还是更多地使用光纤
。
大楼室内可以用线路直接连接,
对于距离较远的
NOC
和
POP
来说
,它们之间的连接方式可以分为几种。
对于自己拥有光纤 的运营商来说,可以选择最简单的方式,也就是用光纤将 NOC 和 POP 直接连接起来
。这种方式虽然想法简单,
但实现起来却并不简单
。
光纤需要在地下铺设,
需要很大的工程费用
,
而且当线路发生中断时还必须进行维修
,
这些维护工作也需要费用。
因此
,
只有有限的几家大型运营商才拥有光纤
。
那么,
其他运营商怎么办呢
?
其实也不难
,
只要从其他公司租借光纤就可以了,
但所谓租借并不是光纤本身
。 拥有光纤的公司一般都会提供光纤租用服务。
以电话公司为例
,
电话公司会在其拥有的光纤中传输语音数据,
但一条光纤并不是只能传输一条语音数据,光纤是可以复用的,一条语音数据只占其通信能力的一部
分
。换句话说,
电话公司可以将自己的光纤的一部分通信能力租借给客户
。
对于客户来说,
只要支付一定的费用就可以使用其中的通信能力了
。
对于电话公司来说,
其拥有的光纤不会全部自己使用
,
通过租借的方式也可以带来一定的收益,
无论其业务本质是电话还是互联网
,
这一点都是共通的
。 这种服务就叫作通信线路服务。 不拥有光纤的运营商则可以使用租借通信线路的方式将相距较远的 NOC 和
POP
连接起来
。
电话使用的通信线路
(
电话线
)
只能传输语音这种单一形式的数据,
但运营商使用的通信线路则种类繁多
。
首先
,
在速率上
就分为很多种
,
其中比较快的种类
,
其速率为电话线的
100
万倍左右
。除了速率之外,
数据的传输方式也分为很多种
。
以前
,
将多条电话线捆绑在一起的方式比较主流,
现在我们有了各种类型的通信线路
,
其中也有一些公司不对光纤进行细分,
而是直接将整条光纤租借出去
。
不同的通信方式和速率对应着不同的价格,
对于不拥有光纤的运营商来说
,
需要根据需要从中进行选择。
运营商之间的连接
让我们重新回到运营商内部
,
看一看到达
POP
路由器之后
,
网络包是如何前往下一站的。
首先
,
如果最终目的地
Web
服务器和客户端是连接在同一个运营商中的,
那么
POP
路由器的路由表中应该有相应的转发目标
。
运营商的路由器可以和其他路由器交换路由信息,从而自动更新自己的路由表,通过这一功能,路由信息就实现了自动化管理
。
于是
,
路由器根据路由表中的信息判断转发目标,
这个转发目标可能是
NOC
,
也可能是相邻的 POP
,
无论如何
,
路由器都会把包转发出去
,
然后下一个路由器也同样根据自己路由表中的信息继续转发。
经过几次转发之后
,
网络包就到达了Web 服务器所在的 POP 的路由器
,
然后从这里被继续转发到
Web
服务器
。
那么,如果服务器的运营商和客户端的运营商不同又会怎样呢?
这种情况下,
网络包需要先发到服务器所在的运营商
,
这些信息也可以在路由表中找到,
这是因为运营商的路由器和其他运营商的路由器也在交换路由信息。
路由表中能找到对方运营商的路由信息,
这时网络包会被转发到对方运营商的路由器
。
总之,对于互联网内部的路由器来说,无论最终目的地是否属于同一家运营商,都可以从路由表中查到,因此只要一次接一次按照路由表中的目标地址来转发包
,
最终一定可以到达
Web
服务器所在的
POP
。
这样一来,
我们就可以把包发到任何地方
,
包括地球的另一面
。
运营商之间的信息交换
只要路由表中能够查到
,
我们当然可以把包发到任何地方
,
包括地球的另一面,
但这些路由信息是如何写入路由表的呢
?
如果路由表中没有相应的路由信息,路由器就无法判断某个网络的位置,也就无法对包进行转发,也就是说,仅仅用线路将路由器连起来,是无法完成包转发的。
下面我们来看看运营商之间是如何交换路由信息,
并对路由器进行自动更新的。
其实方法并不难
。
如图
所示
,
只要让相连的路由器告知路由信息 就可以了。
只要获得了对方的路由信息
,
就可以知道对方路由器连接的所有网络,
将这些信息写入自己的路由表中
,
也就可以向那些网络发送包了
。
获得对方的路由信息之后
,
我们也需要将自身的路由信息告知对方
。这样一来,
对方也可以将发往我们所在子网的包转发过来
。
这个路由信息交换的过程是由路由器自动完成的,这里使用的机制称为 BGP(BGP:Border Gateway Protocol,边界网关协议)
。根据所告知的路由信息的内容,
这种路由交换可分为两类
。
一类是将互联网中的路由全部告知对方。
例如图
中
,
如果运营商
D
将互联网上所有路由都告知运营商 E
,
则运营商
E
不但可以访问运营商
D
,
还可以访问运营商 D
后面的运营商
B
、
A
和
C
。
然后
,
通过运营商
D
就可以向所有的运营商发送包。
像这样
,
通过运营商
D
来发送网络包的方式称为转接。
另一种类型是两个运营商之间仅将与各自网络相关的路由信息告知对方。
这样
,
只有双方之间的网络可以互相收发网络包
,这种方式称为非转接
,
也叫对等
。
图
中有一个叫作
IX
的东西
,
我们来说说它是干什么用的
。
对于两个运营商来说,
像图
中运营商
D
和运营商
C
这样一对一的连接是最基本的一种连接方式,
现在也会使用这种方式
。
但这种方式有个不方便的地方,
如果运营商之间只能一对一连接
,
那么就需要像图
(
a
)
这样将所有的运营商都用通信线路连接起来。
现在光国内就有数千家运营商,
这样连接非常困难
。
对于这种情况
,
我们可以采用图
(
b
)
的方式
,设置一个中心设备,
通过连接到中心设备的方式来减少线路数量
,
这个中心设备就称为 IX
。
探索IX
下面我们来探索一下
IX
。
首先是
IX
的部署场所
。
为了保证在遇到停电、
火灾等事故
,
以及地震等自然灾害时
,
路由器等网络设备还能继续工作,
IX
所在的大楼都装有自主发电设备
,
并具有一定的抗震能力
。
其实这样的要求也不仅限于 IX
,
运营商的
NOC
也是一样
。
现在在中国
,
拥有如此高安全性的大楼其实并不多,
因此符合这样要求的大楼里面都可能会有NOC 和
IX
。
运营商和
IX
运营机构会租下大楼中的一块地方用于放置
NOC
和
IX
的设备
,
换句话说
,
IX
就在这些大楼中某一层的某个角落中。
IX的核心是具有大量高速以太网
端口的二层交换机
(图B)
。
二层交换机的基本原理和一般交换机相同,
大家可以认为
IX
的核心就是大型的、
高速的交换机
。 接下来就是将各个运营商的路由器连接到 IX
核心交换机上
,
连接方法有几种。
首先
,
当运营商
NOC
和
IX
位于同一幢大楼里时
,
只要从
NOC
中将光纤延长出来接到 IX
交换机就可以了
(
图
①
)。
这种情况和公司
、
家庭网络 中的路由器与交换机的连接方法是相同的。
这种方法很简单
,
但如果
NOC
和IX 不在同一幢大楼里又该怎么办呢
?
我们可以用通信线路将路由器和交换机连起来。
这种情况下有两种连法
,
一种是从路由器延伸出一根通信线路并连接到 IX
交换机上
(
图
②
),
另一种是将路由器搬到
IX
机房里
,
用通信线路将路由器和 NOC
连起来
,
再将路由器连到
IX
交换机上
(
图
③
)。 以前 IX
交换机都是放在一个地方的
,
也就是呈点状分布的
。
现在这些点状设施已经逐步扩张,
在数据中心等网络流量集中的地方一般都会设置
IX终端交换机,
各运营商的路由器在这里连接到终端交换机上
(
图
④
)。
IX 已经从点扩张到线
,
甚至到面了
。 下面我们来看一看网络包具体是如何传输的。
其实这里并没有什么特别需要解释的,
因为
IX
的交换机和一般的交换机在工作方式上没有区别
, 路由器发送网络包时,
先通过
ARP
查询下一个路由器的
MAC
地址
,
然后将其写入 MAC
头部发送出去即可
。
只要填写了正确的
MAC
地址
,
就可以向任何运营商的路由器发送包。
不过实际上
,
要成功发送包还需要正确的路由信息,
对于没有进行路由交换的运营商
,
我们是无法向其发送包的
。 这需要运营商之间通过谈判签订合约,
然后按照合约来交换路由信息
,
实现网络包的收发。
运营商之间可以直接连接
,
也可以通过
IX
连接
,
无论是哪种方式,最终网络包都会到达服务器所在的运营商,
然后通过
POP
进入服务器端的网络。
路由器自动交换信息:公司路由器与运营商路由器的区别
路由器之间相互交换信息自动更新路由表的方式在公司网络中也会用到,
不过公司内部和运营商之间在路由交换方式上是有区别的
。 公司中使用的方式是寻找与目的地之间的最短路由,
并按照最短路由来转发包,
因此
,
周围的所有路由器都是平等对待的
。
公司内部采用这样的方式没问题,
但运营商之间就不行了
。
假设某个运营商拥有一条连接日本和美国的高速线路,那么要访问美国的地址时, 可能这条线路是最短路由。如果单纯采用最短路由的方式,那么其他运营商的包就都会走这条线路,这时,该运营商需要向其他运营商收取相应的费用,否则就成义务劳动了
。
在这种情况下
,
如果使用最短路由的方式
, 就无法区分哪个运营商交了费,
哪个运营商没交费
,
也就是说无法阻止那些没交费的运营商使用这条线路,
这样就很难和对方进行交涉了
。
正是出于这样的原因,互联网中不能单纯采用最短路由,而是需要一种能够阻止某些来源的网络包的机制
,
互联网的路由交换机制就具有这样的功能。
首先,
互联网中可以指定路由交换的对象
。
公司中
,
路由信息是在所有路由器间平等交换的,
但运营商之间的路由交换是在特定路由器间一对一进行的。
这样一来,运营商就可以只将路由信息提供给那些交了费的运营商,那些没交费的运营商也就无法将网络包发送过来了
。
其次
,
在判断路由时
,
该机制不仅可以判断是否是最短路由
,还可以设置其他一些判断因素。
例如当某个目的地有多条路由时
,
可以对每条路由设置优先级。 运营商之间需要对交换路由信息的对象进行判断和筛选,
但这样一来
, 对于没有交换路由信息的运营商网络,
我们就无法将网络包发送过去了
, 如果要访问的 Web
服务器就在那个运营商网络中
,
我们不就访问不了了吗?
其实不用担心
,
运营商在进行路由交换时会避免出现这样的情况
。
互联网中有很多运营商,
每个运营商都和其他多个运营商相互连接
。
因此
, 如果一个运营商走不过去,
可以走另一个运营商
,
无论网络包要发送到什么地方,
都会确保能够获取相应的路由信息
。
如果某个运营商做不到这一点,
那它也就该倒闭了
。