说起这个就不得不祭奠和缅怀下我的大学生活和我的网络工程专业,给不了解这个专业的人解释下哈,网络工程专业真的不只是接个网线和重启电脑的事情,文前三道香。
言归正传,首先介绍下概念,局域网是指在某一区域内由多台计算机互联成的计算机组。
随着计算机技术的普及,现在搭建一个局域网的成本也越来越低,操作也越来越简单,从两台机器之间的网线直连,到后面使用HUB集线器,再到家庭中可见的路由器等,在这十几年中,咱们的网络技术可以说经历了翻天覆地的变化。下面介绍下这几种方式操作方法和背后的基本原理
使用路由器搭建局域网,是建立在第三层上的,我们先从第一层物理层开始说明。
- 网线直连
这种方式是找一根网线,两个头,分别接在两个电脑的网卡上,进行联机。不过这样的话,在以前应该是通不了的,需要在水晶头的做交叉线发,普通的接水晶头的方式是有个口诀“橙白,橙, 绿白,蓝,蓝白,绿,棕白,棕”,分别按照顺序给他们由1~8进行编号,所谓的交叉线法就是1-3,2-6交叉接法。
原因是水晶头的1,2和3,6脚,分别承担着收发信号的作用,将1,3和2,6互换下位置就可以实现从一端到另一端的收发信号了(现在的计算机貌似是不用了)。当然,两台设备的IP也是需要配置到一个网段中,否则也是接不通的。(需要注意的还是那个问题:网络可以没有上层,但是必须要有下层。也就是说两台电脑之间的网络也必须要MAC层,进行层层封装到网络层)
2.HUB集线器
据我们大学老师说,他们年轻的时候,交换机还是很贵的,不是随随便便就买得起的,当宿舍中有两台以上计算机需要联机打CS的时候,就会考虑使用集线器这种设备。这种设备与交换机相比较而言,没有逻辑处理功能,只在物理层进行工作,它将所有收到的消息,都会广播到其他端口上。
实际上这回产生很大的麻烦,例如,我本来想面向某个人发出的一个消息,我怎么才能知道我要发送的那个人是哪台设备?大家一起发,那么该谁先发谁后发呢?
显然,这个问题不能直接从物理层进行解决。这个问题也就自然而然的上省到了数据链路层,也就是我们平时常说的MAC层。百度了下,MAC的全称为 Medium Access Control(媒体访问控制),其实就是在控制往媒体发送数据的时候,谁先发谁后发。其实这个里面还有个概念,叫做多路访问。举个例子了解下多路访问,现在的以太网,采用的多路访问策略是:有消息就发出去,如果发现现在网络堵塞较为严重的时候,就回去,等到了不堵的时候在发出去,咱们平时说的随机接入协议就是指这种方式。多路访问还有其他的协议,例如轮流协议,信道划分等,有兴趣的同学可以去了解下。
那么该如何知道消息发给谁呢?这里就要用到我们的老朋友MAC地址了(要注意的是MAC地址是网卡的唯一地址,是个链路层地址),为了帮助理解,以下是一个网络包的格式图例说明。
网络包格式
目标MAC地址和源MAC地址好理解,当源设备读取缓存知道目标设备的时候,可直接将MAC放入,当不知道的时候,会使用ARP协议询问MAC地址,缓存并放入。类型的话实际上大部分是IP数据包(里面包含着TCP,HTTP什么的,都是里层封装的事情了)。对于以太网最后面的CRC(循环冗余检测),通过XOR异或的算法,来计算出整包是否在发送过程中出现错误。
3.交换机
当设备较少的时候使用集线器还是可以的,但是当设备多了的时候,由于集线器是用广播的方式的,那样会造成很大的浪费,和很大概率上的冲突,是不可取的了,所以应该使用另一种设备了,就是交换机(可以记录MAC地址,那样就不会去转发其他不是的端口了)。
实际上交换机也不是上来就知道每台设备的,他有个记录的过程,也即是说,当交换机没有缓存这个的数据的时候,他会进行广播,得到了目标之后,会进行记录,等到下层再向那里发送的时候,便会直接发送,不会再进行广播询问了,这个记录的对应表叫做转发表。需要注意的是,这个是一个临时的,是存在过期时间的,因为每台机器的IP地址会变,所在端口也可能会变。
4.更大的局域网,多个交换机
说到这里不得不说一个复杂到令人发指的情景,就是办公环境。公司在设备很多的时候,一台交换机明显是不够用的,就会涉及到多台交换机,组成一个相对复杂的拓扑结构,每台交换机的工作方式不会因为拓扑网内有多台而造成改变。
那样我们就会遇到一个严峻的问题。就是在局域网中做ARP广播时,交换机会讲一个端口收到的包转发,当转发到另一个交换机的时候,同理另一个交换机也会全部转发。如果期间存在一个环路的话,数据就会被循环广播转发,就形成了广播风暴,导致带宽被占满,解析协议的硬件过载。
我们该如何破除环路呢?我们需要用到的是STP协议。在数据结构中,我们将又换的叫做图,没有环的叫做树,实际上这个协议就是为我们找到最小生成树。
STP具体一些介绍可参看:
https://blog.csdn.net/simple_jd/article/details/73916725
https://blog.csdn.net/luoshixian099/article/details/51908175
如何解决广播问题和敏感数据安全问题呢?
公司有很多部门,但是部门与部门之间的某些资料应该是不共享的,例如人员薪资档案应该都是在人事手中保存着,但是当人事要将资料部门内发送的时候,懂技术的人,可以通过抓包的方式去获取到这个内容,这是一个较为敏感的安全问题。
一般我们会采用两种方法:
物理隔离:每个部门有一台单独的交换机,配置单独的子网,部门与部门之间的沟通靠路由器。这是种简单的处理方案,但是会遇到问题,例如我某个部门有3个人,另一个部门有30个人,我都需要为其部署相应网段,那样的话,会有挺大的浪费,要是部门人更多,有回导致可能交换机口不够用。
虚拟隔离:也就是我们常说的VLAN,虚拟局域网。实际上也就是在二层头里面加一个TAG,进行标注一个12位的VLAN ID。只有相同VLAN的包才能互相转发,不同的VLAN的包是相互不可见的。而且对于每个VLAN的口都是可以设置的,这十分的灵活。注意的是必须要交换机支持VLAN才可以采用这种方式,交换机间连接要连载Trunk口。
总结下:
1.MAC是解决多路访问问题的
2.交换机最开始不知道目标MAC的时候,会通过ARP方式取得目标MAC地址,然后缓存一段时间,对应表叫做转发表。知道的话就不会广播了。
3.CRC是检测发送中间是否发生错误的。
4.广播风暴是由于交换机环路导致的,解决需要用到STP协议。
5.交换机间的网络隔离有物理隔离和虚拟隔离两种方式。
网友评论