ADSL获取的IP地址与网关相同,却能上网的原理
2009-12-18 08:57
169 查看
这时你的子网掩码肯定是32位的也就是 255.255.255.255
网关与IP地址相同都是正确的,原因和BAS(接入服务器)的工作原理有关。
BAS的主要功能有两个:
1)终结PPPOE的session,给发送请求的主机分配IP地址; 2)转发上网流量
我们分析一下PPPOE用户上网的过程,首先用户会在主机上运行PPPOE拨号程序(如ETHERNET600或XP自带的拨号程序),拨号的主要目的就是拿到IP地址,请求到达BAS后,在BAS上会配置的PPPOE Server负责回应请求,进行认证检查(最基本的就是看用户名密码是否正确),决定是否给发送请求的主机分配IP地址。认证通过后BAS就从IP POOL(IP地址池)中挑选一个地址发给主机,这个地址就是你看到的掩码32位的地址。 说了好多废话,见晾^-^。马上回答你的第一个问题,掩码为什么是32位,网关为什么是自己? 前面提到了主机地址是从IP POOL中得到的,IP POOL一般都配成一段地址,如一个或半个C类地址等等。所有的PPPOE拨号主机的地址都从IP POOL中分配,对于主机来讲32位掩码地址已经足够,并不影响正常通讯,打个比方,router的Loopback0地址是32位掩码的,我们经常用这个地址作为telnet,Ftp的通讯地址,主机用32位掩码地址的道理与Loopback0地址类似,它并不影响服务。还有就是为了节约地址资源,大家知道如果掩码是30位的话,4个地址中要浪费两个地址作为网络地址和广播地址,主机地址只能用另外两个。32位掩码节约了大量的地址资源。至于网关和地址为什么一样,我想它没法不一样,呵呵。累了吧,break一下,我们继续。 主机得到地址后,网关是自己,那它如何通讯呢?这就是BAS的基本功能了,主机拨号得到地址后,就相当于与BAS直连的一个虚端口,BAS上面增加一条针对主机地址的直连路由。然后我们分析上网的过程,主机开始发送数据包,数据包到达BAS,BAS此时就象一个router,它检查从主机过来的数据包中的目的地址,如果路由表中有针对此目的地址的条目,那么BAS将数据包发送到下一跳,如果没有,BAS按照缺省路由指定的下一跳转发。通常主机发送的数据包都是按照缺省路由转发的,除非是连到同一个BAS的两个PPPOE主机之间的通讯。 现在我们知道主机发出的数据包如何被转发了,那么回到主机的数据包怎么办呢? 很简单,通常来讲,BAS上面就是router,在router上面做一条针对IP POOL的静态路由,指到BAS,然后将它发布到internet。这样,目的地址是某PPPOE主机的数据包首先会到达BAS,然后BAS会按照32位掩码地址将其转发给指定的主机。 路由器的POS接口地址掩码是30位是因为它需要和对端互通,30位掩码是最合适的,够用而且不浪费。ARP表中不显示应该是因为POS接口是点对点通讯,不象 ethernet是点到多点的通讯,需要知道每个MAC地址与IP地址的捆绑关系。有的设备POS接口是有MAC地址的,但是在ARP表中只会显示本地 POS接口和IP地址的捆绑关系,不象ethernet接口,即有本地接口的MAC地址与IP地址的捆绑关系,又有通过ARP学习到的对端地址的MAC地址与IP地址的捆绑关系。
网关与IP地址相同都是正确的,原因和BAS(接入服务器)的工作原理有关。
BAS的主要功能有两个:
1)终结PPPOE的session,给发送请求的主机分配IP地址; 2)转发上网流量
我们分析一下PPPOE用户上网的过程,首先用户会在主机上运行PPPOE拨号程序(如ETHERNET600或XP自带的拨号程序),拨号的主要目的就是拿到IP地址,请求到达BAS后,在BAS上会配置的PPPOE Server负责回应请求,进行认证检查(最基本的就是看用户名密码是否正确),决定是否给发送请求的主机分配IP地址。认证通过后BAS就从IP POOL(IP地址池)中挑选一个地址发给主机,这个地址就是你看到的掩码32位的地址。 说了好多废话,见晾^-^。马上回答你的第一个问题,掩码为什么是32位,网关为什么是自己? 前面提到了主机地址是从IP POOL中得到的,IP POOL一般都配成一段地址,如一个或半个C类地址等等。所有的PPPOE拨号主机的地址都从IP POOL中分配,对于主机来讲32位掩码地址已经足够,并不影响正常通讯,打个比方,router的Loopback0地址是32位掩码的,我们经常用这个地址作为telnet,Ftp的通讯地址,主机用32位掩码地址的道理与Loopback0地址类似,它并不影响服务。还有就是为了节约地址资源,大家知道如果掩码是30位的话,4个地址中要浪费两个地址作为网络地址和广播地址,主机地址只能用另外两个。32位掩码节约了大量的地址资源。至于网关和地址为什么一样,我想它没法不一样,呵呵。累了吧,break一下,我们继续。 主机得到地址后,网关是自己,那它如何通讯呢?这就是BAS的基本功能了,主机拨号得到地址后,就相当于与BAS直连的一个虚端口,BAS上面增加一条针对主机地址的直连路由。然后我们分析上网的过程,主机开始发送数据包,数据包到达BAS,BAS此时就象一个router,它检查从主机过来的数据包中的目的地址,如果路由表中有针对此目的地址的条目,那么BAS将数据包发送到下一跳,如果没有,BAS按照缺省路由指定的下一跳转发。通常主机发送的数据包都是按照缺省路由转发的,除非是连到同一个BAS的两个PPPOE主机之间的通讯。 现在我们知道主机发出的数据包如何被转发了,那么回到主机的数据包怎么办呢? 很简单,通常来讲,BAS上面就是router,在router上面做一条针对IP POOL的静态路由,指到BAS,然后将它发布到internet。这样,目的地址是某PPPOE主机的数据包首先会到达BAS,然后BAS会按照32位掩码地址将其转发给指定的主机。 路由器的POS接口地址掩码是30位是因为它需要和对端互通,30位掩码是最合适的,够用而且不浪费。ARP表中不显示应该是因为POS接口是点对点通讯,不象 ethernet是点到多点的通讯,需要知道每个MAC地址与IP地址的捆绑关系。有的设备POS接口是有MAC地址的,但是在ARP表中只会显示本地 POS接口和IP地址的捆绑关系,不象ethernet接口,即有本地接口的MAC地址与IP地址的捆绑关系,又有通过ARP学习到的对端地址的MAC地址与IP地址的捆绑关系。
相关文章推荐
- Android 手机上获取手机当前上网IP地址(手机网关给手机号分配的IP)
- C#中获取本机IP地址,子网掩码,网关地址
- Android 命令设置获取、IP地址、网关、dns
- ip地址冲突导致无法上网、ping不通网关和自己
- 获取ADSL上网帐号密码并自动保存到D盘
- C#中通过调用webService获取上网IP地址的区域的方法
- 通过WifiManager,DhcpInfo获取android IP地址及网关等信息(两种方式)
- 风云防火墙导致无法上网的问题解决(无法获取正确的网关MAC)
- Android 手机上获取手机当前上网IP地址
- IOS获取本地IP地址以及网关IP地址
- adsl 加 路由器 网关不能上网的 原因
- Swift3.0 Swift2.3 获取IP地址 获取网关地址
- 为什么电脑的ip地址要和网关的ip同一个子网才可以上网?
- shell 获取网卡IP地址 子网掩码 默认网关 广播地址 MAC地址
- [置顶] C#中通过调用webService获取上网IP地址的区域的方法
- Linux如何自动获取IP地址及配置静态IP地址上网
- linux dhcp 获取ip地址能上网,设置静态ip地址则不能上网
- Android shell 命令设置(获取)IP地址、网关、dns
- 获取一个ip地址所经过的所有网关
- C#编程获取IP地址、子网掩码、网关地址