网络连接(2)-交换机-路由器-网关

网络连接(2)-交换机-路由器-网关

周日连了一下午服务器的网线,正好找个机会补习一下网络连接方面的基本知识.. 小时和我爸联机打红警的时候看他折腾过局域网,以后也再也没有什么机会接触过.. (或许以后搭建自己的住处时能用上..)

交换机

交换机 (switch)的作用是连接数个相同网段的不同主机,比如下面这个小组服务器的网络连接结构,实际上是把旧服务器、新服务器管理节点、计算节点1、计算节点2全部连接到同一台交换机上,其中新服务器的管理节点引出了两根网线连接到交换机上. 手动设置旧服务器、新服务器管理节点其中一个端口的IP地址为192.168.2.*,就实现了他们两个之间在192.168.2这个网段之间的互相连接. 手动设置新服务器管理节点的另一个端口、计算节点1、计算节点2的IP地址为172.16.10.*,就实现了他们三个之间在172.16.10这个网段之间的互相连接. 而旧服务器和两个计算节点间是无法连接的,旧服务器也无法通过172.16.10.10这个地址找到新服务器管理节点,因为他们处在不同网段中,虽然他们都连接到了同一台交换机上.

现在大部分日常生活中能见到的都是路由-交换-联网一体机,所有的功能都模糊混杂在一起,有时候不是太好厘清楚里面的很多概念..

网关与路由器

网关 (Gateway),指的是网络中的一个出口,进出子网的数据都要经过网关,网关来帮助两个不能直接互通的网络之间进行数据转发. 路由器可以起到网关的功能,将我们的局域网和互联网相连. 网关只是一个概念,我们的手机也可以起到网关的作用,手机开了热点,笔记本连接进来,笔记本的数据通过手机来实现和互联网之间的相互转发. 像上面我们讨论过的,不同网段之间是不能够直接连接的,要实现不同网段之间的通信,需要借助网关. 交换机只有连接相同网段的主机的功能,不具备实现不同网段之间通信的功能. 下面这个示意图还是挺直观的,村子A里的米娜桑通过交换机互相连接到一起,然后这个交换机连接到路由器A上,路由器A就相当于村子A的网关,A村的小A想要发消息给B村的小甲,数据包的路径就是小A-交换机A-路由器A-路由器B-小甲.

下面有另一个例子,这个路由器具有两个网段,0口的网段是192.168.1,1口的网段是192.168.2,pc1连在了路由器的0口上,pc2连在了路由器的1口上. 因此,要想实现pc1和pc2的通信,我们要指定pc1的默认网关 (一个pc可能会存在多个网关,就好像一个房间存在多扇门一样,数据包可以通过不同的出口与外界交换. 当未指定可用的网关时,就把数据包发送给默认网关处理)为路由器0口的IP 192.168.1.254,这样pc1就把自己的数据包默认先发送给路由器0口,路由器收到了数据包后,会查看数据包的IP,然后查看自己的路由表,即储存了目标地址和转发目标之间的对应关系的一张记录表. 根据路由表中记录的对应关系,判定将这个数据包从GE 0/0/1口发出,可以送达目的地. 于是就将数据包从GE 0/0/1口发送给pc2,从而实现了不同网段之间数据转发.

路由器与交换机的包转发

数据包

机器A向机器B发送数据时,实际上发送的是封装好的数据包,这个数据包从发送方创建发送开始,经由网络中的各个转发设备,比如交换机、路由器等等,最终到达接收方. 这个数据包中包含了数据内容,也包含了基本控制信息,所以各个转发设备才能正确地将这个包邮寄给接受方. 一个网络包的基本结构如下图所示,由包含各种控制信息的头部和数据两部分组成. 根据设备所工作的协议的不同其参考的头部也不相同,比如集线器和交换机根据以太网协议工作,那么他们通过MAC头部来判断包的传输方向;路由器是基于IP协议设计的,其会根据IP头部来判断接下来将包发往哪个位置.

交换机的MAC地址表

将相同网段的不同主机接入交换机后,可以实现他们之间的互通,这个互通的含义就是机器A发送的数据包可以经过交换机传递给机器B,因此交换机需要确定连在交换机上的各个机器和交换机各个端口之间的对应关系,以实现正确的数据包传递. 在交换机中,这个机器与对应端口的对应表叫作MAC地址表,交换局根据MAC地址表查找对应数据包接收方的MAC地址,并确定其对应端口,然后将信号发送到相应的端口.

路由器的IP地址路由表

路由器包含转发模块和端口模块两部分,转发模块负责判断包的转发目的地,端口模块负责包的收发操作. 路由器在转发包时,首先会通过端口将发过来的包接收进来,这一步的工作过程取决于端口对应的通信技术. 对于以太网端口 (比如网线),就按照以太网规范操作,对于无线局域网端口则按照无线局域网的规范工作. 端口按照对应规范将包收进来之后,转发模块根据包的IP头部中记录的接收方IP地址,在路由表中进行查询,路由表是一张目标IP地址和端口的对应表,以此判断转发的目标. 然后,转发模块将包转移到转发目标对应的端口,将包转发出去.

关于校园网

我才发现虽然办公室里我的电脑的IP地址是101.6.*.*,这台台式机可以上网,查询公网IP也是这个地址,但是公网是无法反过来直接访问这个IP的.. 如果想要访问办公室里的台式机,必须连接到校园网或者使用VPN让自己的IP变成101.*.*.*.. 但是对于系馆内部的台式机或者服务器来说,他们都是通过院里的路由器由线连接的,因此无论是否可以访问公网,他们之间都是可以互相连通的. 联网要比联通复杂许多..

大概所有的校园网都是类似的设计 华工校园网路由与 NAT 研究 (https://zhuanlan.zhihu.com/p/34417921),不过理解清楚这件事就需要更多的相关知识储备了.. 暂时还没理解好这个整个过程..

参考

百哥 https://www.zhihu.com/question/21787311

薛定谔不在家 https://www.zhihu.com/question/22007235

户根勤. 网络是怎样连接的.