在家中访问一个网站的思考
- 1、家庭网络简介
- 2、家庭WLAN + DHCP
- 2.1、家庭路由器PPPOE拨号
- 2.2、DHCP(动态主机配置协议)
- 2.3、接入家庭网的主机IP地址
- 2.4、家庭总线型以太网
- 2.5、Mac地址
- 2.6、ARP协议
- 2.7、IP协议 & UDP/TCP协议
- 2.8、NAT(Network Address Translation,网络地址转换)
- 3、Router路由器
- 3.1、源IP & 目的IP
- 3.2、路由表
- 3.3、路由器是如何知道到达所有的网络的通路的呢?
- 4、 总结
1、家庭网络简介
- 要连接公网,通过 Modem 光猫 pppoe 拨号。
- wlan路由器的wan口链接ADSL 猫,一般情况下会动态获取一个公网IP地址,在广域网内,任何一个主机,均可以访问到该ip地址。
- 终端可以通过有线或者无线的方式通过共享无线路由器的wan口访问公网。
- 台式机、手机、ipad、笔记本等终端通过路由器的dhcp协议自动获取的地址是局域网地址。
- 局域网内终端通过NAT协议进行源、目的IP,源、目的端口号的转换后共享WAN口地址上网。
- 局域网内终端之间通信可通过arp协议学习其他网口的mac地址,网卡通过mac地址过滤数据帧。
- 公网内路由器之间数据传输一般是ppp协议。
2、家庭WLAN + DHCP
家用路由器也是路由器一种,只是他只能连接两个网络,一个是局域网,一个是与运营商连接的那个网络。
2.1、家庭路由器PPPOE拨号
- 家用路由器上网通常是通过PPPoE拨号上网,账号密码由运营商提供。
- 拨号成功后会获得一个公网IP。如果拥有一个固定的公网IP,那么此处也可以设置固定ip。
-
登录管理界面
以TP-LINK为例,打开 http://192.168.1.1网页,在弹出的设置管理密码界面中,设置6~15位的管理密码,点击 确定,登录路由器管理界面。
-
选择上网方式: PPPoE(ADSL虚拟拨号)
-
输入上网宽带账号和密码
-
设置无线参数
SSID 即无线网络名称(可根据实际需求设置),选中 WPA-PSK/WPA2-PSK 并设置 PSK密码,点击 下一步。
-
设置完成,重启,查看 WAN口状态
2.2、DHCP(动态主机配置协议)
路由器开启dhcp并配置一个IP地址范围,开启DHCP客户端的主机接入LAN网络时就可以自动获得DHCP分配的IP地址、子网掩码、租期、网关、DNS等配置信息。
如上地址池是192.168.0.100~192.168.0.199;终端连接家用路由器之后会获得地址其中的一个地址。
2.3、接入家庭网的主机IP地址
我的笔记本是通过无线路由器连接的无线Wi-Fi。本机无线网卡信息配置信息如下:
ipconfig /all
2.4、家庭总线型以太网
基于IEEE802.11标准的无线局域网大多使用的是 2.4GHz 或 5GHz 的射频。
如下总线型网络中,主机B向主机D发送数据,总线上的每一个工作的计算机都能检测到 B 发送的数据信号。由于只有计算机 D 的MAC地址与数据帧首部的目标MAC地址一致,因此只有 D 才接收这个数据帧。其他所有的计算机(A, C 和 E)都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧而不能够收下来。这样就在具有广播特性的总线上实现了一对一的通信。
随机访问 介质访问控制 协议 对比:
ALOHA 协议:不听就说 ;
CSMA 协议:先听再说 ;
CSMA/CD 协议:先听再说 , 边听边说 ;
CSMA/CA 协议:先听再说 , 边听边说 ;
CSMA/CD(Carrier Sense Multiple Access / Collision Detection)载波监听多点接入 / 碰撞检测 【有线】。
CSMA/CA(Carrier Sense Multiple Access With Collision Avoidance)载波监听多点接入 / 碰撞避免 【无线】。
2.5、Mac地址
- 在以太网中,硬件地址又称为物理地址,或 MAC 地址,6个字节,共48 位。
- IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位)。
- 适配器从网络上每收到一个数据帧就首先用硬件检查数据帧中的 MAC 地址,如果是发往本站的帧则收下进行其他的处理;否则就将此帧丢弃不再进行其他的处理。
2.6、ARP协议
假如我们要访问局域网中的另外一个pc上的进程,假设我们只知道对方的IP地址,那么如何才能知道对方的mac地址呢?可以通过ARP协议。
ARP(地址解析)协议是一种解析协议,本来主机是完全不知道这个IP对应的是哪个主机的哪个接口,当主机要发送一个IP包的时候,会首先查一下自己的ARP高速缓存(就是一个IP-MAC地址对应表缓存),如果查询的IP-MAC值不存在,那么主机就向网络发送一个ARP协议广播包。
这个广播包里面就有待查询的IP地址,而直接收到这份广播的包的所有主机都会查询自己的IP地址,如果收到广播包的某一个主机发现自己符合条件,那么就准备好一个包含自己的MAC地址的ARP包传送给发送ARP广播的主机。
而广播主机拿到ARP包后会更新自己的ARP缓存(就是存放IP-MAC对应表的地方)。发送广播的主机就会用新的ARP缓存数据准备好数据链路层的的数据包发送工作。
Windows 的arp表查询
arp -a
2.7、IP协议 & UDP/TCP协议
2.8、NAT(Network Address Translation,网络地址转换)
NAT将有助于减缓可用的IP地址空间的枯竭。在RFC 2663中有对NAT的说明。经过NAT转换的数据包IP地址替换见下图:
- 从局域网内部发往路由器的数据包,源ip和源port【10.0.0.1:3345】,经过路由器之后源ip和源port替换为【138.76.29.7:5001】。
- 从服务器返回的数据包的目的ip和目的port【138.76.29.7:5001】,经过路由器之后目的ip和目的port替换为【10.0.0.1:3345】。
- 完美。
3、Router路由器
路由器(Router)是互联网的主要结点设备。路由器通过路由策略决定数据的转发。
作为不同网络之间互相连接的枢纽,路由器系统构成了基于TCP/IP 的国际互联网络Internet 的主体脉络。
家庭常用的路由器通常有一个Wan口,4个Lan口。既可以通过网线连接,也可以通过无线连接,通常带宽100M到1000M。
还有在大型机房中性能强悍的带宽可高达T级大型路由器。
以下是1个企业级网络的组网拓扑图,我们通常用图中的图标表示路由器:企业级网络拓扑结构
路由器的一些使用规则:
- 路由器工作在IP(网络)层;
- 路由器用来连接不同的网络;
- 路由器的每一个接口都必须是不同网段的;
- 路由器之间互联是接口直接连接,一般用ppp协议通信;
- 处于不同网络中的2个设备要想互相通信,必须通过路由器;
- 一个成熟稳定的网络,路由器必须知道每一个网络设备到达另外一个网络的通路,否则会直接丢弃,路由器通过路由表来维护这些通路;
- 路由器只解析到数据包的IP层(传输层和应用层不会查看)
3.1、源IP & 目的IP
公网中的数据包都是ip数据包,ip数据包头中有个非常重要的协议字段:「目的地址」。
一口君随机抓取了一个本机网络通信的ip数据包:
如上图所示, 源ip地址是:192.168.0.104 目的ip地址是:140.246.147.33
很显然,源地址是一个c类地址,就是本机地址,也是一个私网地址, 目的地址是一个公网地址。
路由器之所以能转发数据包就是靠路由表和ip数据包的目的ip地址+源ip地址。
3.2、路由表
以下是windows下的路由表 windows路由表
route print
路由表中包含了若干个路由条目。
「PC路由条目:」
名称 | 说明 |
---|---|
网络目标 | 表示要到达某个网段的网络,可以查询该条路由条目 |
网络掩码 | 点分十进制法,配合网络目标,可得出最终的目标网络号 |
网关 | 数据包要发送给哪个网口所在的路由器 |
接口 | 表示数据包要从哪个本地的接口发送出去 |
跃点数 | 数据包在网络中最多能经过多少个路由器,放置数据包在网络中无限转发 |
永久路由:
网络地址 | 网络掩码 | 网关地址 | 跃点数 |
---|---|---|---|
0.0.0.0 | 0.0.0.0 | 192.168.0.1 | 默认 |
该条路由其实是一条默认路由,表示如果查找不到路由条目,就将数据包发送给192.168.0.1这个ip地址所在的路由器。
3.3、路由器是如何知道到达所有的网络的通路的呢?
通常借助ospf、rip等协议可以动态学会到达各个网络的协议。
广域网中的设备路由协议更加复杂,往往需要专业的网络工程师搭建网络。
4、 总结
综上,我们可知,粉丝的问题答案:
- 路由器的IP地址分wan口和lan口,wan口地址是PPPoE拨号时运营商的其他设备分配的用于公网寻址,lan口地址在路由器中设置, 用于和局域网内终端通信
- 终端连接无线路由器时,路由器通过dhcp协议给终端分配了动态ip地址,通过DHCP的地址池可以设置分配的ip地址的范围
- 分配ip地址的时候,同时终端会将无线路由器的lan口地址设置为自己的默认网关,所以pc访问外网,所有的数据包都会发送给网关,就是无线路由器
- 当用户要访问外网的时候,需要知道网关的mac地址,如果arp缓存中没有对应的的arp条目,那么就通过arp协议找到lan口的mac地址,因为网关地址已分配
- 局域网内终端通过共享WAN地址上网,所有走wlan路由器的数据包都要通过NAT协议进行源、目的IP,源、目的端口号的转换