设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1242|回复: 2
收起左侧

[分享] 一个IP账号,为啥通过路由器就可供多人同时使用?

[复制链接]
发表于 2021-12-22 14:37:48 | 显示全部楼层 |阅读模式
本帖最后由 网络工程师-老杨 于 2021-12-22 14:40 编辑

一个IP账号,为啥通过路由器就可供多人同时使用?


今天我们聊聊路由器和IP地址


学习过IP中的小友都知道,IP的作用就是在网络通信中标识唯一一台主机。


那你有想过吗,为啥你购买了一个账号,运行商给你分配一个IP,通过路由器就可以供多人(多台电脑)同时使用?


这个时候不就和前面矛盾了吗?


如果做了网工多年,你对交换机、路由器、设备通信流转和NAT等基础网络知识点还是不太明白,理解的也比较粗浅,欢迎添加老杨微信(spotoa),咨询老杨,学习体系化的基础知识。


01 让两台电脑之间通信——网线

想让两台电脑之间通信,最简单的方式就是用一根网线连接双方即可。进行如下的配置:

1.png

(1)如果两台电脑之间通过网线连接是可以直接通信的,但是需要提前设置好IP地址以及网络掩码

(2)并且IP地址需要控制在同一网段内,例如:一台为192.168.1.1另一台为192.168.1.2则可以进行通信

(3)使用ping命令测试是否连通,然后就可以基于windows网路共享等实现一些基础网络操作


02 如何让三台电脑之间通信——集线器

一般一台电脑只有一个网线接口,如果我想让三台电脑互相通信,咋整?单独通过网线就实现不了,咱们这个时候可以使用集线器(hub)。

2.png


如上,三台或者多台设备通过集线器连接起来,就是大家把网口的另一端都连接在集线器上即可。


(1)当有多态电脑需要组成一个网时,那么可以通过集线器(Hub)将其链接在一起,配置同一网段IP。


(2)一般情况下集线器的接口较少。


(3)集线器有个缺点,它以广播的方式进行发送任何数据,即如果集线器接收到来自A电脑的数据本来是想转发给B电脑,如果此时它还连接着另外两台电脑C、D,那么它会把这个数据给每个电脑都发送一份,因此会导致网络拥堵。


(4)使用ping命令测试是否连通,然后就可以基于windows网路共享等实现一些基础网络操作


03 如何让三台电脑之间通信(高级)——交换机

通过交换机(switch)连接多台设备,目前交换机已经基本替代了集线器。

3.png



(1)克服了集线器以广播发送数据的缺点,当需要广播的时候发送广播,当需要单播的时候又能够以单播的方式进行发送。

初始化添加网路时,会广播形式发送arp获取每个设备的mac地址,这样再跟某个设备通信时会使用IP+mac的形式,非请求mac不会发送数据。


(2)交换机目前已经替代了之前的集线器。企业中就是用交换机来完成多态电脑设备的链接成网络的。


04 如何让三台网络电脑之间通信——路由器
4.png



通过交换机,可以实现少量的电脑设备之间进行通信。


但是,如果是多台电脑,且不再同一个地方,同一个网段,如何进行通信,显然上面交换机已经不能满足需求。


这里,就要用到路由器router。路由器的核心就是链接多个不同网段的局域网成为一个大的局域网。


如下图,如果想让同一个路由器连接的设备之间进行通信,要咋实现?


比如:让路由器左边的局域网段的192.168.1.1(PC0)和路由器右边的局域网段192.168.2.1(PC3)进行通信。


这时候,底层数据是如何流转的?

5.png



(1)因为PC0和PC3不在同一个网段,所以PC0首先把数据发送给默认网关(路由器Router0)。

目的IP:192.168.2.1
目的mac:路由器左边的虚拟网卡的mac地址

注意:如果是首次联网通信的话,PC0是不知道路由器左边虚拟网卡的mac地址的,这个时候PC0就会先发送arp,得到其mac地址。


(2)这个时候,路由器根据目的IP网段解析,将数据发送给路由给右边的虚拟网卡(即192.168.2网段的网关)。

路由器网关再根据目的IP进行解析,将数据发送给PC3。注意这个时候目的mac变成了192.168.2.1的mac地址。


(3)在网络传输中IP地址不变,但是目的mac是不断变化的。

这就好比你寄个东西从北京到上海,目的IP是上海不变的,但是中间可能会先送到mac山东,在从山东送到南京mac,在从南京送到上海mac。


05 网络间设备通信与流转过程

6.png


在网路链路中进行通信,实际底层数据流转如下:


(1)在PC0的浏览器中输入一个网址www.baidu.com时,需要将它先解析出IP地址来。


具体如何解析,去哪里解析,这个时候要看你电脑配置DNS服务器,所以PC0先将网址发送给对应的DNS服务器进行解析。


其实,在我们电脑C:\Windows\System32\drivers\etc目录下有个Hosts文件,其主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定。


当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,浏览器会立即打开对应网页,如果没有找到,则浏览器会将网址提交DNS服务器进行IP地址解析。


这也是提高快速打开网页的方法,所以可以将常见IP和网址映射写入到hosts文件里。


我这里使用的是联通的宽带,默认的DNS服务器地址和默认的网关地址一样。


当然这里,你也可以自定义DNS服务器地址,比如8.8.8.8是一个是Google提供的免费DNS服务器的IP地址,也可以配置多个DNS地址。

7.png



(2)当得到IP地址之后,浏览器以tcp的方式3次握手链接服务器,中间以上面路由的方式进行层层传递。当然,这里实际其实牵扯到路由路径的选择。


(3)以tcp的方式发送http协议的请求数据发送给服务器

(4)服务器tcp的方式回应http协议的应答数据给浏览器


假设,现在我从北京请求登录美国网站:


首先,我得在浏览器输入网址https://github.com


这个时候,通过DNS解析到了github对应的IP。


你思考一个问题:为什么我有了github的IP以后路由器就会自动把我的请求发送给“美国”对应的路由器与服务器?


以IPv4来说,NIC给全球每个国家,每个城市的分配得到的公网IP段是确定的,所以比如我访问github,使用ping命令,查看该网站的IP是13.229.188.59的归属地是新加坡。(可能因为github将全亚洲的所有请求都发送到了新加坡的github服务器处理,具体是根据亚洲的IP网段判断)


同理,路由器就可以根据每个国家,每个城市的的公网IP段将目的IP的请求,发送给对应国家与城市的路由器去处理,最终请求到达一个具体的设备。

8.png
9.png


06 路由器如何实现共享同一个IP上网原理——NAT
10.png


所谓的NAT是指网络地址转换器:


(1)用宽带链接上网时,会把网线(光纤)-->调制解调制(简称猫)-->电脑等设备直接连接上网


(2)电脑会得到来自电信服务商的一个公网IP地址(切记只有公网IP地址才能上网)


(3)为了能够让多台设备都可以上网,需要将数据进行“分流”网线(光纤)-->调制解调制(简称猫)-->路由器-->电脑等设备


(4)此时路由器的一端有一个公网IP地址,剩下的几个端口(或无线)可以接入电脑等设备,并且路由器给它们分配私有IP(例如 192.168.1.2)。


(5)当一个电脑(192.168.1.2)上网时,先通过DNS协议解析出某个域名对应的IP,然后发送数据时,在经过路由器时转换为公网IP以及路由器自己分配的临时端口:



192.168.1.2:6789

-->192.168.1.1 路由器116.226.52.212:6539

-->猫-->万维网



接收数据时,在经过路由器时转换为路由器之前记录的IP以及port:


万维网-->猫

-->116.226.52.212:6539 路由器 192.168.1.1

-->192.168.1.2:6789





老杨,一个从事网工行业8年的中年吃货,和你每天聊几句关于网工的那些事儿。
微信图片_20211203090946.png

发表于 2024-5-14 11:56:29 | 显示全部楼层
华为认证,值得拥有!
沙发 2024-5-14 11:56:29 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2024-5-14 11:56:34 | 显示全部楼层
华为认证,值得拥有!
板凳 2024-5-14 11:56:34 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-23 21:30 , Processed in 0.066244 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表