新闻  |   论坛  |   博客  |   在线研讨会
关于路由器和交换机
王祖袖 | 2014-12-05 15:08:34    阅读:596   发布文章

    之所以写这篇文章,是因为昨晚的那通电话。
    昨晚,一名学弟向我咨询路由器的问题。他在做一件类似于挑战杯性质的产品,想法非常大胆且独具特色。他想通过路由器为用户提供免费的wifi业务,通过从中跳出广告来获取利润。说这想法大胆是因为单单的跳出广告这一点,就已经上升到了黑客级别。这也是windows系统的缺陷之一--安全性太差。提到这里,先说点题外话吧。
    我们或多或少地知道些棱镜门事件,其实之所以一些正规的或军方软件只能运行于Linux,就是因为windows系统太不安全了。何以见得?相信大家对腾讯360大战还有印象吧!当时,凡是你计算机里装有360杀毒软件的,都不能登录QQ;而360也无病呻吟,要将腾讯软件作为病毒处理。腾讯是如何知道你计算机里有360的呢?显而易见,因为当你安装一款软件时,它肯定会在你的C盘占据一席之地。C盘是什么?系统盘。没错,你计算机里可见的隐藏的若干信息都在这个盘里。它们进来,可能你觉得没什么,但它却可以肆意妄为。所以,倘若军方使用的软件基于windows,那无异于洗澡遭人偷窥。而Linux的三大特色(安全性高、效率高、稳定性好)之一的安全性高在于它的大公无私,这就得牵扯到它的历史了,以后有机会再跟大家分享。说它无私,是因为它的代码开源,不得用作商业用途。所以,没有人可以打它的主意。使用过的人也知道,在你想打开或试图修改一个重要文件的时候,它会要求你输入password,关于加密这里也不多说了,你应该懂我的意思。
    话题扯太远了,赶紧收回来。通过路由器,提供wifi,貌似没有任何问题;跳出广告,获取利润,也完全合理。问题出在哪?“从中”两个字。能提供wifi的并不是我们传统意义上的路由器,而是无线猫,充其量是个低级的交换机。使用那玩意确实可以让终端覆盖于无线网络之中,但是你不能对它本身作任何操作,如何跳出广告?能够对其操作的,那是真正的路由器,我们可以对其同步编程,使其具有灵魂。但是跳出广告,跟路由器应该没有一点关系吧!
    什么叫路由器?百度百科上说:路由器是连接因特网中各广域网、局域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。明白了吗?我想作为一个圈外人士,你要是能看明白的话,我就没有必要写这篇文章了。
    我们所建立并使用的网络模型是OSI七层协议模型,从下而上依次是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。上面说的弹出广告,显然是应用层的事情。而传输层以上,是end-to-end(端到端)的。我们所说的,将两个网络相连接的过程,是网络层的事情,是路由器的事情。换句话说,路由器的一个重大的功能便是,连接不同网络。
    为什么会有不同的网络呢?这是为了方便同一地域终端之间的数据传输和管理。IPv4规定了A、B、C、D等几类IP地址的开头几位二进制数,而32位的IP地址是由网络号和主机号构成的。网络号用以区分不同的网络,主机号用以区分同一网络内的不同主机。那为什么又要有广域网、局域网之分呢?网络根据地域范围的大小分为私人网、局域网、城域网、广域网和万维网(WWW)等。由于IP地址的有限性,加上IEEE组织设立地点的他国性,我们国家分到的网络地址少之又少。如何合理地使用这些地址?这便是设置局域网、广域网的原因。
    知道了这一点之后,便是解决网络连接的问题了。我们知道,设立不同的网络,是鉴于地理位置或更加私密的信息交流。而一个网络内部的信息又并不总是愿意和别的网络进行分享的,我们不能简单地将不同网络之间的信息随便沟通,所以才有了交换机这样的设备。
    交换机,英文叫(Switch),其实把它译为开关更加合理一点,因为它是提供电信号通路的,而电路只有通断之分。但技术人员当初给它取名叫交换机,又不无道理。我们来看一下百科上关于交换机的解释:交换机是一种用于电信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。好了,它是用于电信号转发的,与交换两字确实有联系。但是转发,这个词用的太官方了。我想问得是:转发给谁呢?如何转发呢?这些在官方的解释中并没有得到很好的回答。
    其实说到底,交换机就是一个开关。你可能会傻里傻气地问:“那为什么不直接用按键或单刀单掷开关呢?”用途不一样!交换机可以识别出不同的网络,它行吗?所以,它能卖到好几千一台并不是坑人的。我们从PC机上的网络连接中可以查看或修改网络信息,包括网络地址、网关号和子网掩码。网络地址和子网掩码按位与可以得到网络号,是你当前主机所处的网络的IP。而剩下那些位是你的主机号。主机号是用来区分信息发送的来源和归宿,确保数据在到达网段之后能准确地到达你的PC。和交换机直接相关的,是网关。关,是开关的关。它是软硬件的结合体,是及其复杂的设备。其IP地址与PC号形式相同但不能重叠,可人为设置。所有企图出当前网络的数据,都要问问网关可以出去不。单纯的将两台主机用我们所谓的数据线相连,是可以相通的。但怎样将多台主机相连呢?用电缆连接水晶头,都插在交换机端口上就行了。前提是,它们属于同一个网络。看网关设置是否一致。只有属于同一个网络的不同主机才允许数据交流。不同网络的数据无法传输,因为这时候的数据是通不过网关这道门的。我想解释这么多,交换机这个词应该明白了吧!
    解决了一个网络内部的数据交换问题,如何解决不同网络之间的数据传输呢?没错,路由器。上面已经介绍了一点它的用途,是连接不同网络的。还有一点非常重要的用途,是路由选择。每一台路由器都要内置自己各端口的网络信息,方法是对其编程。 
    在完成这步工作之后,便要考虑应该使用怎样的协议算法才能更好的实现路由的选择功能。我们要写的程序可能只是一两行,交代是OSPF,或是RIP即可。大量的运算由路由器自己去完成。它会选择代价最小的路径,将分组重装组包之后发送到最短路径对应的那个端口,然后数据包在链路上传输,到达下一个路由器,再选择,直到数据到达目的网络。然后获取主机号,完成数据的端到端传输。网络连接、路由选择是路由器最重要的功能,对于圈外人士,知道这两点就足够了。
    写到这里,基本把路由器和交换机的一些概念、功都介绍的差不多了。由于笔者才疏学浅,恐有疏漏及错误之处,欢迎在下面留言告之,不胜感激。另外,如果读者对本文的内容或有其他疑惑的,可以留言,笔者会在第一时间予以答复。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客