网络知识入门,用户如何连接互联网,ADSL调制解调器的妙用,PPP上网的三种方式(十二)

互联网与家庭网络的区别

 
     互联网是一个遍布世界的巨大而复杂的系统 但其基本工作方式却出奇地简单。 和家庭 公司网络一样 互联网也是通过路由器来转发包的 , 而且路由器的基本结构和工作方式也并没有什么不同(如 )。 因此 我们可以将互联网理解为家庭、 公司网络的一个放大版
 
 

      当然,互联网也有一些和家庭、公司网络不同的地方,其中之一就是与转发设备间的距离 在家庭 公司网络中 ,与转发设备之间的距离不过几十米到几百米, 在这种情况下 只要延长以太网线就可以到达相邻的转发设备了 然而 互联网可不能这么搞 因为你家到最近的电话局至少也有几公里的距离, 而从日本连接到美国甚至要跨越太平洋 用以太网线是无法实现这种连接的。 除了距离之外,路由器在如何控制包的转发目标上也不一样 尽管从基本原理来看, 互联网也是根据路由表中的记录来判断转发目标的 但路由表记录的维护方式不同 互联网中的路由器上有超过 10 万条路由记录, 而且这些记录还在不断变化 当出现线路故障时 或者新的公司加入互联网时, 都会引发路由的变化 人工维护这些路由信息是不现实的,必须实现自动化 公司的路由器也有自动维护路由表的机制 但出于各种原因, 互联网中采用的机制和公司有所区别
 
  距离的不同和路由的维护方式,就是互联网与家庭、公司网络之间最主要的两个不同点
 

 

 

用户接入互联网:接入网

    网络包通过交换机和路由器的转发一步一步地接近它的目的地, 在通过互联网接入路由器之后 就进入了互联网 刚才讲过, 路由器的转发操作都是相同的, 简单来说,就是根据包 IP 头部中的接收方 IP 地址在路由表的目标地址中进行匹配,找到相应的路由记录后将包转发到这条路由的目标网关 不过 互联网接入路由器发送网络包的操作和以太网路由器有一点不同, 互联网接入路由器是按照接入网规则来发送包的 所谓接入网 就是指连接互联网与家庭 公司网络的通信线路 一般 家用的接入网方式包括 ADSL B FTTH C CATV 电话线 ISDN 公司 则还可能使用专线 接入网的线路有很多种类 我们无法探索所有这些线路, 因此下面先介绍一个比较有代表性的例子 —— ADSL
 
 
 

ADSL Modem 

 
     ADSL 技术使用的接入线路 其内部结构如图 所示 在这张图中 网络包是从右往左传输的。 用户端路由器 发出的网络包通过 ADSLModem 和电话线到达电话局 然后到达 ADSL 的网络运营商 ISP 互联网服务提供商)。 在网络包从用户传输到运营商的过程中 会变换几种不同的形态, 整个过程如图 所示。
 
 
 
 

接入网:  接入网这个词表示的是通信线路的用法,而并不表示通信线路的结构。例 如公司里使用的专线,当它用来连接互联网时就叫作接入网,而用来连接 总公司和分公司时就不叫接入网。此外,接入网这个词也不仅限于互联 网,当使用运营商提供的通信服务时,一般都会将用户与运营商之间的线 路叫作接入网。
 
ADSL Asymmetric Digital Subscriber Line ,不对称数字用户线。它是一种利用架设在电线杆上的金属电话线来进行高速通信的技术,它的上行方向 (用户到互联网)和下行方向(互联网到用户)的通信速率是不对称的。
 
ADSL Modem (也叫路由型 ADSL Modem ),其实就是把路由器和 ADSL Modem 装到一个外壳里而已。
 
Modem:调制解调器,一般自己家里如果有联网的话都有接触过这个东西。
 

 
     首先 客户端生成的网络包 ①和② 先经过集线器和交换机到达互联网接入路由器(   ), 并在此从以太网包中取出 IP 包并判断转发目标( 接下来 包发送的操作也很类似 。如果互联网接入路由器和 ADSL Modem 之间是通过以太网连接的 那么就会按照以太网的规则执行包发送的操作, 发送信号本身的过程跟之前是一样的 , 但以太网的头部会有一些差异。 这部分的具体情况各运营商会有所不同 , 而且还需要一些关于BAS A 位于接入网另一端的包转发设备 的知识 因此相关的细节我们在探索 BAS 的时候再具体讲解 这里大家先记住 网络包会加上 MAC 头部 PPPoE 头部 PPP B 头部总共 3 种头部 ), 然后按照以太网规则转换成电信号后被发送出去。
 

    每一个小格子称为一个信元 信元是一个非常小的数据块 开头是有 5 个字节的头部, 后面是 48 个字节的数据 用于一种叫作 ATM A 的通信技术 。 大家可以将信元理解为一种更小一号的包, 原理上跟 TCP/IP 将应用程序的数据拆分成块装进一个个包的过程是一样的 。 说点题外话, 其实之所以要将包拆分成信元 原因是这样的 当初开发 ADSL 技术时 通信业比较看好 ATM 技术 各运营商也在 ATM 相关的 设备上投入了很多资金。 在这样的情况下 如果使用信元来传输数据 就比较容易和其他设备进行整合, 可以降低开发投入和设备投入 如果不是出于这样的原因, 其实并不需要将包拆分成信元 实际上也有一些 ADSL 运营商使用的 ADSL Modem 是不进行数据拆分的
 
ATM Asynchronous Transfer Mode ,异步传输。它是在以电话线为载体的传统电话技术基础上扩展出来的一种通信方式。它的数据传输是以“信元”为单位来进行的,这和以包为单位传输数据的 TCP/IP 很像,但这种方式并不适用于计算机通信。
 
 
 
 

ADSL工作方式

 

     将网络包拆分成信元之后 接下来就要将这些信元转换成信号了(上图 )。 以太网采用的是用方波信号表示 0 1 的方式 这种方式很简单 但同样是将数字信息转换成模拟信号, ADSL 采用的方法要复杂一些 其中有两个原因 一个原因是方波信号的波形容易失真, 随着距离的延长错误率也会提高 另一个原因是方波信号覆盖了从低频到高频的宽广频段, 信号频率越高 辐射出来的电磁噪声就越强, 因此信号频谱太宽就难以控制噪声 因此,ADSL Modem 采用了一种用圆滑波形(正弦波)对信号进行合成来表示 0 和 1 的技术,这种技术称为调制
 
     调制有很多方式,ADSL 采用的调制方式是振幅调制(ASK)和相位调制(PSK)相结合的正交振幅调制(QAM)方式
 
 
 振幅调制(ASK)
 
     下面先来看一下它的两个组成要素 振幅调制是用信号的强弱,也就是信号振幅的大小来对应 0 和 1 的方式 如图 b ), 振幅小的信号为 0 振幅大的信号为 1 这是一种最简单的对应关系。
 

    在这个例子中振幅大小只有两个级别如果增加振幅变化的级别,就可以对应更多的比特例如如果将振幅增加到 4 个级别, 则振幅从小到大可分别对应 000110 11这样就可以表示两个比特了。这样做可以将单位时间内传输的数据量加倍也就能够提高速率以此类推,如果振幅有 8 个级别就可以表示 3 个比特16 个级别就可以表示 4 个比特速率也就越来越高不过信号会在传输过程中发生衰减,也会受到噪声影响而失真,如果振幅级别太多接收方对信号的识别就容易出错,因此振幅级别也不能太多。

 

 
相位调制(PSK)
 

      另一个组成要素是相位调制这是一种根据信号的相位来对应 0 1 的方式。Modem 产生的信号是以一定周期振动的波如图所示振动的起始位置不同,波的形状也就不同如果将波的一个振动周期理解为一个圆,则起始位置就可以用 0 度到 360 度的角度来表示这个角度就是相位,用角度来对应 0 1 的方式就叫作相位调制例如,从 0 度开始的波为 0,从 180 度开始的波为 1,这是一种最简单的对应关系如图c)所示。和振幅调制一样相位调制也可以通过将角度划分为更细的级别来增加对应的比特数量,从而提高速率但是角度太接近的时候也容易产生误判,因此这样提升速率还是有限度的。

     注意:在上图(c)中,在虚线处,波以多少度的角进入,下一个虚线区间就代表其进入角度对应的数字

180度进入,代表1:

0度进入,代表0:

 

正交振幅调制(QAM)

      ADSL 使用的正交振幅调制就是将前面这两种方式组合起来实现的 。 图 d 就是将图 b 和图 c 组合起来的一个例子 大家应该一看就明白了。 如果信号的振幅可以表示 1 个比特 相位可以表示 1 个比特 , 那么加起来就可以表示 2 个比特 因此 将两种方式组合起来 正交振幅调制就可以用一个波表示更多的比特, 从而提高传输速率 正交振幅调制中 通过增加振幅和相位的级别 ,就可以增加能表示的比特数。 例如 如果振幅和相位各自都有 4 个级别 那么组合起来就有 16 个级别, 也就可以表示 4 个比特的值 当然 和单独使用振幅调制或相位调制的情况一样, 级别过多就容易发生误判 因此这种方法提升的速率是有限度的。
 

 

ADSL使用多个波来提高速率

    上面的例子中的信号是一个频率的波实际上信号不一定要限制在一个频率。不同频率的波可以合成,也可以用滤波器从合成的波中分离出某个特定频率的波因此我们可以使用多个频率合成的波来传输信号, 这样一来,能够表示的比特数就可以成倍提高了。 ADSL 就是利用了这一性质通过多个波增加能表示的比特数来提高速率的。具体来说如图所示ADSL 使用间隔为 4.3125 kHz 的上百个不同频率的波进行合成,每个波都采用正交振幅调制而且根据噪声等条件的不同,每个波表示的比特数是可变的也就是说,噪声小的频段可以给波分配更多的比特,噪声大的频段则给波分配较少的比特,每个频段表示的比特数加起来,就决定了整体的传输速率

 

 
     ADSL 技术中 上行方向(用户到互联网)和下行方向(互联网到用户)的传输速率是不同的 原因也在这里 如果上行使用 26 个频段 下行则可以使用 95 个或者 223 个频段 波的数量不同 导致了上下行速率不同。 当然, 下行使用的频段较高 这些信号容易衰减而且更容易受到噪声的影响, 因此这些频段可能只能表示较少的比特数 或者干脆无法传输信号。 距离越远 频率越高 这种情况也就越显著 因此如果你家距离电话局太远, 速率就会下降 。 噪声和衰减等影响线路质量的因素在每条线路上都不同, 而且会随着时间发生变化。 因此 ADSL 会持续检查线路质量 动态判断使用的频段数量, 以及每个频段分配到的比特数 具体来说 Modem 通电后 会发送测试信号, 并根据信号的接收情况判断使用的频段数量和每个频段的比特数, 这个过程称为训练 握手 ), 需要几秒到几十秒的时间
 
 
 

分离器的作用

 
     ADSL Modem 将信元转换为电信号之后 信号会进入一个叫作分离器的设备, 然后 ADSL 信号会和电话的语音信号混合起来一起从电话线传输出去。 在信号从用户端发送出去时,电话和 ADSL 信号只是同时流到一条线路上而已,分离器实际上并没有做什么事。 分离器的作用其实在相反的方向,也就是信号从电话线传入的时候 。 这时, 分离器需要负责将电话和 ADSL 的信号进行分离 电话线传入的信号是电话的语音信号和 ADSL 信号混合在一起的 如果这个混合信号直接进入电话机, ADSL 信号就会变成噪音 导致电话难以听清 为了避免这样的问题, 就需要通过分离器将传入的信号分离 以确保 ADSL信号不会传入电话机。 具体来说 分离器的功能是将一定频率以上的信号过滤掉, 也就是过滤掉了 ADSL 使用的高频信号 这样一来 只有电话信号才会传入电话机, 但对于另一头的 ADSL Modem 则是传输原本的混合信号给它。 ADSL Modem 内部已经具备将 ADSL 频率外的信号过滤掉的功能 因此不需要在分离器进行过滤。
 
 

      大家可能会认为分离器的功能只是过滤掉高频信号,防止 ADSL 对电话产生干扰,而实际上它还可以防止电话对 ADSL 产生干扰 如果没有分离器, 拿起电话听筒接通电话的状态 和放下听筒挂断电话的状态下 信号的传输方式是不同的。 当放下听筒时 电话机的电路和电话线是断开的 , 当拿起听筒时电话机就和电话线相连, 电话机的信号就会传到电话线上 。 这两种状态的差异会导致噪声等线路状态的改变, 如果 ADSL 通信过程中拿起话筒导致线路状态改变, 就需要重新训练 握手 ), 这就会导致几十秒的通信中断, 分离器可以防止发生这样的问题 当然,也有一种技术能够快速重新握手,即便没有分离器也不会影响 ADSL 通信,G.992.2 的 ADSL规格就包含这种技术 ADSL 信号还是会影响电话 因此 G.992.2 的ADSL 规格中一般还是需要使用分离器

 

 

从用户电话机到电话局

 
    从分离器出来 就是插电话线的接口 信号从这里出来之后 会通过室内电话线, 然后到达大楼的 IDF A MDF B 外面的电话线在这里和大楼内部的室内电话线相连接。 如果是独栋住宅 就可以将室外线和室内线直接连起来。 通过配线盘之后 信号会到达保安器 保安器是为了防止雷电等情况下电话线中产生过大电流的一种保护装置, 内部有保险丝 。接下来, 信号会进入电线杆上架设的电话电缆 电话线是一种直径0.32~ 0.9 mm C 的金属信号线 这些信号线如图 4.8 所示被捆绑在一起

 

   电话电缆在用户住宅附近一般是架设在电线杆上 但中途会沿电线杆侧面的金属管进入地下。 由于电话线必须进入很多住宅和大楼 所以电话局附近就会集结数量庞大的电缆, 这么多电缆要通过电线杆引入电话局是非常不现实的, 电话局周围得密密麻麻地立满了电线杆 而且电线杆上架设过多的电缆, 还会产生防灾方面的问题 因此 在电话局附近 电话线 都是埋在地下的 由于电话局附近的地下电缆很多 ,集中埋设电缆的地方就形成了一条地道, 这部分称为电缆隧道 如照片 )。 通过电缆隧道进入电话局后, 电缆会逐根连接到电话局的 MDF 上。

 

 
 

 

通过DSLAM到达BAS

DSLAM DSL Access Multiplexer ,数字用户线接入复用设备。它是一种电话局用的多路 ADSL Modem ,可以理解为将多个 ADSL Modem 整合在一个外壳里的设备。

 

     信号通过电话线到达电话局之后 会经过配线盘 分离器到达 DSLAM A(上图 )。 在这里 电信号会被还原成数字信息 —— 信元 )。 DSLAM 通过读取信号波形 根据振幅和相位判断对应的比特值 将信号还原成数字信息, 这一过程和用户端的 ADSL Modem 在接收数据时的过程是一样的。 因此 如果在电话局里安装一大堆和用户端一样的 ADSL Modem, 也可以完成这些工作 只不过安装这么多 Modem 需要占用大量的空间, 而且监控起来也非常困难 因此,电话局使用了 DSLAM 设备, 它是一种将相当于很多个 ADSL Modem 的功能集中在一个外壳里的设备 。 不过, DSLAM 和用户端 ADSL Modem 相比还是有一个不同的地方 。 用户端 ADSL Modem 具备以太网接口 可以与用户端的路由器和计算机交互, 收发以太网包 DSLAM 一般不用以太网接口 而是用 ATM 接口 和后方路由器收发数据时使用的是原始网络包拆分后的 ATM 信元形式 。信元从 DSLAM 出来之后 会到达一个叫作 BAS 的包转发设备
 
     BAS DSLAM 一样 都具有 ATM 接口 可以接收 ATM 信元, 还可以将接收到的 ATM 信元还原成原始的包 图 11 )。 到这里 , BAS 的接收工作就完成了 接下来 它会将收到的包前面的 MAC 头部和PPPoE 头部丢弃 取出 PPP 头部以及后面的数据 图 13 )。 MAC 头部和PPPoE 头部的作用是将包送达 BAS 的接口 当接口完成接收工作后 它们就完成了使命, 可以被丢弃了 具有以太网接口的路由器在接收到包之后也会丢弃其中的 MAC 头部 道理是一样的 接下来 BAS 会在包的前面加上隧道专用头部 并发送到隧道的出口 14 。 然后, 网络包会到达隧道出口的隧道专用路由器 图15 ), 在这里隧道头部会被去掉, IP 包会被取出 16 ), 并被转发到互联网内部 图 17 )。
 
 
 

接入网时使用的PPP和隧道

 
    刚才已经简单讲过 用户发送的网络包会通过 ADSL FTTH (光纤) 等接入网到达运营商 的 BAS(Broadband Access Server 宽带接入服务器 )。 互联网本来就是由很多台路由器相互连接组成的,因此原则上应该是将接入网连接到路由器上 随着接入网发展到 ADSL FTTH 接入网连接的路由器也跟着演进, 而这种进化型的路由器就叫作 BAS
 
     下面我们来具体讲一讲。首先是用户认证和配置下发功能。 ADSL 和 FTTH 接入网中,都需要先输入用户名和密码,登录之后才能访问互联网,而 BAS 就是登录操作的窗口。BAS 使用 PPPoE (PPPoE:Point-to-Point Protocol over Ethernet,以太网的点对点协议。)方式来实现这个功能 PPPoE 是由传统电话拨号上网上使用的 PPP 协议发展而来的 所以我们先来看一看 PPP 拨号上网的工作方式。
 
ppp工作方式
 
       在使用电话线或者 ISDN 拨号上网时 PPP 是如图 这样工作的 首先 ,用户向运营商的接入点拨打电话( -1 ), 电话接通后   -2 )输入用户名和密码进行登录操作(   -2 )。 用户名和密码通过 RADIUS 协议从 RAS G 发送到认证服务器 认证服务器校验这些信息是否正确 。当确认无误后, 认证服务器会返回 IP 地址等配置信息 并将这些信息下发给用户 (图   -3 )。 用户的计算机根据这些信息配置 IP 地址等参数 完成 TCP/IP 收发网络包的准备工作 接下来就可以发送 TCP/IP 包了   )。 这个过程的重点在于图 -3 下发 TCP/IP 配置信息的步骤 在接入互联网时,必须为计算机分配一个公有地址,但这个地址并不是事先确定的。因为在拨号连接时,可以根据电话号码来改变接入点,而不同的接入点具有不同的 IP 地址,因此无法事先在计算机上设置这个地址。所以,在连接时运营商会向计算机下发 TCP/IP 配置信息,其中就包括为计算机分配的公有地址。
 
 

RAS Remote Access Server ,远程访问服务器
RADIUS Remote Authentication Dial-in User Service ,远程认证拨号用户服务。
 
 
 

PPP上网的三种方式

 
 
    ADSL FTTH 接入方式也需要为计算机分配公有地址才能上网 这一点和拨号上网是相同的。 不过 ADSL FTTH 用户和 BAS 之间是通过电缆或光纤固定连接在一起的,因此没有必要验证用户身份,所以实际上并不需要 PPP 的所有这些功能 然而 通过用户名和密码登录的步骤可以根据用户名来切换不同的运营商, 这很方便 因此 接入运营商在ADSL 和 FTTH 中一般也会使用 PPP 。 不过, 拨号上网的 PPP 是无法直接用于 ADSL FTTH 要理解这里的原因, 我们先来看看 PPP 协议是如何传输消息的 。 传输 PPP 消息的思路和将 IP 包装入以太网包中传输是一样的 PPP 协议中没有定义以太网中的报头和 FCS 等元素 也没有定义信号的格式 因此无法直接将 PPP 消息转换成信号来发送 要传输 PPP 消息 必须有另一个包含报头、 FCS 信号格式等元素的 容器 ”, 然后将 PPP 消息装在这个容器里才行。 于是 在拨号接入中 PPP 借用了 HDLC C 协议作为容器 而 HDLC 协议原本是为在专线中传输网络包而设计的 拨号接入方式对这一规格进行了一些修正。 最终 PPP 消息就是像图 a 这样来进行传输的 。 ’
 
HDLC High-level Data Link Control ,高级数据联接控制
 
      对于 ADSL 和 FTTH,如果可以和前面一样借用 HDLC 来作为容器,PPP 协议就可以直接使用了 但是 ADSL FTTH 并不能使用 HDLC ,因此需要寻找另一个机制作为替代。 于是 如图 b ③和图 c ) ③所示, 我们用以太网包代替 HDLC 来装载 PPP 协议 此外 以太网和PPP 在设计上有所不同 为了弥补这些问题就重新设计了一个新的规格 , 这就是 PPPoE
 

 
 

 

除PPPoE之外的方式:PPPoA

 
PPPoA Point-to-Point Protocol over ATM
 
     刚才我们讲的内容都是基于 PPPoE 方式的 实际的接入网还有其他一些方式,比如PPPoA。
 
      首先, 我们先看看使用 PPPoA A 方式的 ADSL 接入网 ADSL 使用PPPoE 方式时 是先将 PPP 消息装入以太网包中,然后再将以太网包拆分并装入信元,而 PPPoA 方式是直接将 PPP 消息装入信元(下图) 由于只是开头加不加 MAC 头部和 PPPoE 头部的区别 PPP 消息本身是没有区别的, 因此密码校验 下发 TCP/IP 配置参数 收发数据包等过程都是和PPPoE 基本相同的 不过 虽然开头加不加 MAC 头部和 PPPoE 头部看上去只是很小的区别, 但却会对用户体验产生一定的影响
 
   PPPoA 方式不添加 MAC 头部和 PPPoE 头部,而是直接将包装入信元中。 由于 PPPoA 没有 MAC 头部,所以 PPP 消息是无法通过以太网来传输的,这就意味着需要和 BAS 收发 PPP 消息的设备,也就是计算机和路由器,必须和 ADSL Modem 是一体的,否则 PPP 机制就无法工作了 这个一体化的方式主要有以下两种。第一种是将计算机和 ADSL Modem USB 接口连接起来 这样ADSL Modem 就和计算机成为一体了 不过 这种方式最终并没有普及。
 

     另一种方式是像下图 所示的这样 ADSL Modem 和路由器整合成一台设备。 这种方式和 PPPoE 中使用路由器上网的方式基本没什么区别 因此得到了广泛的普及。 不过 正如我们刚才提到的 当由于地址转换产生问题时, 这种方式就不容易处理了 因为我们无法抛开路由器用计算机直接上网。
 

 
      当然 PPPoA PPPoE 相比也有一些优势 PPPoE 方式中 需要添加 PPPoE 头部和 PPP 头部 这意味着 MTU(最大传输单元)  就相应变小了 , 这可能会降低网络的效率。 PPPoA 不使用以太网包来传输 PPP 消息 ,因此不会发生 MTU 变小的问题 。 PPPoE 会降低网络效率 PPPoA 也有 ADSL Modem 和路由器无法分 离的限制 这两个问题其实都是由 PPP 引起的 因此 ,有一些运营商不使用 PPP 他们使用 DHCP 协议从 BAS 向用户端下发 TCP/IP 配置信息 。 DHCP 经常用于通过公司网络向客户端计算机下发 TCP/IP 配置信息 , 其原理如图 所示 首先客户端请求配置信息 ), 然后 DHCP服务器下发配置信息(   ), 非常简单 不需要像 PPP 那样需要多个步骤, 也不需要验证用户名和密码 没有用户名和密码 就意味着无法通过用户名来切换运营商网络, 但这种方式也有优势 它可以单纯地直 接传输以太网包 不需要添加额外的 PPP 头部 因此不会占用 MTU。此外, 采用 DHCP 的运营商使用的 ADSL Modem 也和 PPPoE PPPoA方式不同, 这种 ADSL Modem 不使用信元 而是直接将以太网包调制成ADSL 信号 因此没有 ADSL Modem 和路由器无法分离的问题
 

 

通过隧道将网络包发给运营商

 
      BAS 除了作为用户认证的窗口之外,还可以使用隧道方式来传输网络包。所谓隧道,就类似于套接字之间建立的 TCP 连接
 
     TCP 连接中 , 我们从一侧的出口( 套接字 放入数据 数据就会原封不动地从另一个出口出来, 隧道也是如此 也就是说 我们将包含头部在内的整个包从隧道的一头扔进去, 这个包就会原封不动地从隧道的另一头出来 就好像在网络中挖了一条地道, 网络包从这个地道里穿过去一样 。 像这样, 如果在 BAS 和运营商路由器之间的 ADSL/FTTH 接入服务商的网络中建立一条隧道, 将用户到 BAS 的接入网连接起来 就形成了一条从用户一直到运营商路由器的通道, 网络包通过这条通道 就可以进入互联网内部了, 这样的机制就类似于将接入网一直延伸到运营商路由器 。 隧道有几种实现方式, 刚才提到的 TCP 连接就是其中一种实现方式 (图 a ))。
 

    这种方式中首先需要在网络上的两台隧道路由器之间建立 TCP 连接然后将连接两端的套接字当作是路由器的端口并从这个端口来收发数据。换句话说在路由器收发包时是基于隧道的规则向隧道中放入或取出网络包,这时TCP 连接就好像变成了一根网线包从这里穿过到达另一端。图b中还介绍了另一种基于封装encapsulation的隧道实现方,这种方式是将包含头部在内的整个包装入另一个包中传输到隧道的另一端。在这种方式中包本身可以原封不动地到达另一端的出口从结果上看和基于 TCP 连接的方式是一样的都实现了一个可供包进行穿梭的通道通过前面的介绍大家可以发现,无论任何机制,只要能够将包原封不动搬运到另一端,从原理上看就都可以用来建立隧道。

 

 

 

用户接入互联网的步骤纵览

 

      理解了 PPPoE 和隧道的原理之后下面来看看接入网的整体工作过程。

1)接入网的工作从用户端的互联网接入路由器进行连接操作开始

     首先, 接入路由器中需要配置运营商分配的用户名和密码 然后接入路由器会根据 PPPoE 的发现机制来寻找 BAS这一机制和 ARP 一样是基于广播来实现的,过程如下很简单。 用户询问:“BAS 在不在在的话请报告 MAC 地址。” BAS 回答:“我在这里我的 MAC 地址是 xx:xx:xx:xx:xx:xx。” 这样用户端就知道了 BAS MAC 地址也就可以和 BAS 进行通信了。大家可以认为前面这个过程相当于拨号上网中拨通电话的动作。 互联网接入路由器通过 PPPoE 的发现机制查询 BAS 的 MAC 地址。

2)接下来,进入用户认证和下发配置的阶段

    这里的工作过程有点复杂我们只说重点第一个重点是用户名和密码如何发送给 BAS这里有两种方式一种是将密码进行加密的 CHAPB 方式另一种是不加密的 PAPC 方式在互联网接入路由器的设置画面中可以选择。进行加密的 CHAP 方式显然安全性更高一般也推荐使用这种方式,但也并不是说使用不加密的 PAP 方式密码就立刻会被窃取由于明文密码只在 BAS 和用户端路由器之间传输 ,所以如果要窃取密码,要么在路由器和 ADSL Modem 中间进行窃听,要么爬到电线杆上安装窃听装置拾取电缆中泄漏的电磁波不过光纤是不会泄漏电磁波的因此无法通过第二种方式进行窃听。

     第二个重点是,在校验密码之后 BAS 如何向用户下发 TCP/IP 配置信息。这里下发的配置信息包括分配给上网设备的 IP 地址 、DNS 服务器的IP 地址以及默认网关的 IP 地址。当使用路由器连接互联网时,路由器会根据这些信息配置自身的参数。这样一来,路由器的 BAS 端的端口就有了公有地址,路由表中也配置好了默认网关,接下来就可以将包转发到互联网中了接下来客户端就会开始发送用来访问互联网的网络包比如有人在浏览器里输入了一个网址,这时网络包就开始发送了这些包的目的地是互联网中的某个地方,这个地方或许在互联网接入路由器的路由表里是找不到的。这时路由器会选择默认路由并将这个包转发给默认路由的网关地址,也就是 BAS 下发的默认路由这里的操作过程和路由器转发包的过程相同 只不过在通过路由表判断转发目标之后包不是按照以太网规则转发,而是按照 PPPoE 规则转发具体的过程如下

     首先,如图 要发送的包会被加上头部信息并设置相应的字段第一个 MAC 头部中接收方 MAC 地址填写通过 PPPoE 发现机制查询到的BAS 的 MAC 地址发送方 MAC 地址填写互联网接入路由器的 BAS 端的端口的 MAC 地址然后以太类型填写代表 PPPoE 8864十六进制)。接下来是 PPPoE 头部和 PPP 头部它们包含的字段如图所示其中除了载荷长度之外,其他的值都是可以事先确定的,载荷长度就是需要传输的包的长度再往后的部分就是包含 IP 头部在内的原始网络包可以说,这里的转发操作中基本上不需要根据头部中的信息进行判断,只要将事先准备好的头部加上去就可以了。然后网络包会被转换成信号从相应的端口发送出去。

 

 
3)去头部
 
     接下来 网络包会到达 BAS BAS 会将 MAC 头部和 PPPoE 头部去掉, 取出 PPP 头部以及后面的部分 然后通过隧道机制将包发送出去 。 最后, PPP 包会沿隧道到达另一端的出口 也就是网络运营商的路由器

 

不分配IP地址的无编号端口号

      前面介绍了 PPPoE 的工作过程 这里面有一个有趣的问题 就是互联网接入路由器在发送包的时候为什么要加上那些头部呢? 头部里面的值基本上都是事先定好的, 跟路由表里面的默认网关地址根本没什么关系 当采用一对一连接,也就是两台路由器的端口用一根线直接连起来的情况下, 一端发送的包肯定会到达另一端,那么这种情况下就没有必要按照路由表查询默认网关来判断转发目标地址了 如果没有必要判断转发地址 那么网关的地址也就没什么用了; 如果网关地址没用 那么目标路由器的端口也用不着分配 IP 地址了 上面的性质对于所有一对一连接都是适用的 。 以前, 即便是在这样的场景中 还是会为每个端口分配 IP 地址 这是因为有一条规则规定所有的端口都必须具有 IP 地址 然而,当公有地址越来越少时,就提出了一个特例,即一对一连接的端口可以不分配 IP 地址。 现在,在这种场景中按惯例都是不为端口分配 IP 地址的 ,这种方式称为无编号(unnumbered) 这种情况下 BAS 下发配置信息时就不会下发默认网关的 IP 地址。

 

互联网接入路由器:将私有地址转换为公有地址

 
       前面的介绍里面其实遗漏了一个地方 那就是互联网接入路由器在转 发包时需要进行地址转换 刚才我们讲过 BAS 会向用户端下发 TCP/IP的配置信息, 如果将这些信息配置在计算机上 就相当于计算机拥有了公有地址, 这种情况下不需要进行地址转换也可以访问互联网 其实 TCP/IP 原本的设计就是这样的。然而,如果使用路由器来上网,BAS 下发的参数就会被配置在路由器上,而且公有地址也是分配给路由器的。 这样一来 , 计算机就没有公有地址了。 这时, 计算机会被分配一个私有地址 计算机发送的包需要通过路由器进行地址转换然后再转发到互联网中。 Web 和电子邮件等应用程序不会受到地址转换的影响, 但有些应用程序会因为地址转换无法正常工作 这一点需要大家注意。 这是因为有些应用程序需要将自己的 IP 地址告知通信对象或者告知控制服务器, 但在有地址转换的情况下这些操作无法完成 遇到应用程序因地址转换无法正常工作的情况时,我们可以不使用路由器,而是直接让计算机接收来自 BAS 的 PPPoE 消息,也就是采用最原始的上网方法 这样一来 计算机就具有了公有地址 不需要地址转换也可以上网了
 
      不过,不用路由器上网也有一点需要注意,因为上网的计算机拥有公有地址,这意着来自互联网的包可以直接到达计算机,这可能导致计算机被攻击。因此,对于直接上网的客户端计算机,我们应该采取安装防火
墙软件等防御手段。
 
 网络电话、聊天、对战游戏等需要客户端之间直接收发网络包的应用程序都需要将自己的 IP 地址告知对方。这些应用程序会受到地址转换的影响,但现在已经有很多解决方案,因此不能说这些应用程序全都不能正常工作。对于某个应用程序来说,如果不知道它是否采用了相应的解决方案, 就无法判断它是否会受到地址转换的影响。
 
  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值