一:路由器
路由器也就是网关路由器, 在网络中的位置如下

电脑想要上网,就需要经过网关。网关直接和ISP(联通)的网络相连,假如某台路由器有一个外网地址:61.52.247.112。
由于只有一个外网地址,如果都使用这个ip,局域网内部的电脑不能同时上网。所以需要一个办法让局域网内部的电脑能同时上网:NAT(网络地址转换)
1.网络地址转换
现在的路由器不仅仅是一个路由器,同时是一个DHCP服务器,DHCP也就是动态主机配置协议,其实就是给局域网内部的电脑分配ip用的。
现在这台路由器所在局域网内有一台电脑TP-Link 7954想要上网,路由器给他分配了一个ip是192.168.1.2 ,这是一个内网ip,所以这个ip本身是无法上网的。(每个路由器都可以给自己局域网内的电脑分配192.168.1.2的ip)。
注意:我们需要知道内网IP段有哪些
1 | A类:10.0.0.0-10.255.255.255 |
电脑TP-Link 7954想要上网必须经过这个路由器。现在电脑TP-Link 7954想要访问百度,他通过交换机发来一个数据帧:

路由器把数据链路层的外衣去掉,发现数据包的目标地址是115.239.211.112,路由器就知道这是要向外网发出请求了。于是路由器开始干下面的事情:
1️⃣路由器把IP数据包的源地址192.168.1.2替换成路由器从联通那里拿到的外网地址61.52.247.112。
2️⃣这还不够,路由器会创建一个新的端口号2001,把TCP数据包中的源端口也替换掉,数据包变成了这样:

所以路由器就是把TCP层的端口号和IP层的源地址IP号替换掉,目的是让外部认为这是路由器自身发出的消息,外界根本不知道TP-Link 7954这台电脑。
然后路由器再给这个IP数据包穿上数据链路层的外衣,把数据包发送给联通的网络剩下的事情就不管了。

注意:以太网帧的mac地址,源地址已经是路由器的地址了,而不再是TP-Link 7954了, 因为路由器是我和联通网络之间的数据链路。
像上面那样替换源地址(包括源IP地址和源mac地址)和端口号就叫做网络地址转换,也就是NAT
当然不止TP-Link7954通过这个路由器上网,还有很多别的电脑也通过这个路由器上网,路由器需要把这些信息记录下来,形成这张表:

过了不久,百度网站的回复信息就会通过别的路由器转到这个路由器来,这个路由器需要反过来处理一下。
首先去掉数据链路层的外衣,发现TCP和IP数据包包含这样的消息:
目的地IP : 61.52.247.112 , 端口 2001
这时候去查表,找到192.168.1.2:3345,这就表明是发给TP-Link 7954的信了。
那就再次把数据报表中的IP地址和端口号改了,让TP-Link 7954 认为这个数据包就是路由器给他的。
就这样, 路由器成功的用区区一个外网的IP就支持了局域网内多个电脑的上网需求, 并且局域网内的电脑根本就不知道是怎么回事!
(在我看来,路由器就是一个代理功能)
2.路由器和交换机的区别
工作层次不同:
交换机工作在数据链路层(第二层)
路由器工作在网络层(第三层)
转发依据不同:
交换机转发所依据的对象:MAC地址(物理地址)
路由器转发所依据的对象:IP地址(网络地址)
主要功能不同:
交换机主要是用于组件局域网,在局域网内部使用
路由器主要是将交换机组建好的局域网连接起来,或者接入Internet
交换机能做的,路由器都能做,交换机不能分割广播域,路由器可以。路由还可以提供发防火墙的功能。
通俗的说:
交换机:转发数据
路由器:找路
交换机是连接一个局域网内的设备的,路由器是连接不同网络的设备
3. 特殊IP地址
1️⃣ 上面提到的内网IP段
2️⃣ 广播地址:255.255.255.255 。用于向局域网内广播信息
主机号全部为1的地址是子网广播地址,如:192.168.1.255
主机号全部为0的地址是代表该子网的网络地址,如:192.168.1.0
3️⃣ 0.0.0.0:所有未知的主机和目的网络(类似于默认匹配)