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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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 网络间设备通信与流转过程

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

(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地址。

(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的请求,发送给对应国家与城市的路由器去处理,最终请求到达一个具体的设备。

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

所谓的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年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值