当前位置:C++技术网 > 精选软件 > 路由器是什么,以程序员的角度认识路由器的本质

路由器是什么,以程序员的角度认识路由器的本质

更新时间:2016-01-30 21:35:38浏览次数:1+次

    前面我们学习了路由表的本质,从程序员的角度深入认识的,见文章《图解说明什么是路由表,分分钟明白路由表是什么》。那么本文也站在程序员的角度,让程序员更加深入的了解路由器。我们不要停留在网上购买的那样的路由器上面,而是要在路由器的本质上深入了解。并不是有几个网络口的那样的东西就叫做路由器哦。
    路由器可以是电脑,比如DNS服务器,就是标准的路由器。还有我们的购买的叫做路由器的设备。当然,手机也可以是一个路由器。我们现在的智能手机,都可以当做一个路由器哦。如果你知道路由器的本质,自然也就可以发现更多从前不知道的秘密哦。我们后面会利用手机做路由器实现两台笔记本组成局域网。那么本文就是一个基础理论的讲解。如果你不知道路由器的本质,当你发现手机可以当做路由器组局域网,那还不惊呆了。如果你惊呆了,那只能说,你学的网络知识不够深刻。
    路由表是路由器的核心数据,数据转发是路由器的核心动作。只要具备这两个特点的设备,就是路由器。怎么理解这句话呢?
    我们需要知道,路由器到底是什么?是一个硬件?还是一个软件?这个问题可能你从未想过吧。而大多数人的印象,就是能够组网的路由器硬件。
    而实际上,这是错误的。这个硬件只是一个承载体罢了。路由器只是一个程序而已。只不过,组网用的路由器硬件,内含路由器程序罢了。只要路由器通电,这个路由器程序就启动运行了。
    而路由器之所以是路由器,就必须要有路由器的使命。就像军人一定是守卫家园是其使命。否则成天争权斗势或者贪图享乐的,不叫军人。那些人只是顶着军人的职位罢了,不完成军人职责的人,不配是一名军人。同理,路由器也是这样。那么路由器的天职就是路由!
    那么什么是路由?路由就是一个路径的节点。由可以解释为“从哪里来到哪里去”。路由就是路径从哪里来,要到哪里去。所以,路由器的天职就是一个指路人!对,就是指路!!
    而路由器是计算机网络的一个设备,所以它指的路就是一个计算机的路。在计算机中,要找到另一个计算机,就是通过IP链。我的计算机IP为192.168.1.45,要找到IP为21.23.45.9的计算机,那么就通过一系列的路径来找到。因为路径不唯一,所以我举例的路径只是其中一种,如192.168.1.45(我的计算机IP地址)->192.168.1.1(路由器网关的IP地址,即我们计算机要通过路由器上网必须经过的内院的大门)->21.23.4.8(中间一个路由器的IP)->21.23.45.9(目的地的计算机的IP,假设这个计算机拥有独立的公网IP,简化问题)。
    如果你觉得这个有点不好懂,我们举一个通俗的例子。我在武汉,我要到深圳去,如何去。我现在的地址就是武汉咯,目标地址就是深圳。这个和网络的路径起始地址IP和目的地址IP就是一个道理。然后我要经过湖南长沙,所以湖南长沙是其中一个必经之地。而我是坐火车回去的,那么湖南长沙的铁路指挥中心,就会告诉我坐的火车下一步走那个线路可以到达深圳。我们现实中的路径就和IP路径是一样的。
    那么我们的路由器程序到哪查路径呢?自然就是路由表了。前面提到的文章,详细介绍了路由表。路由表也就是路由器的一个核心数据了。有了路由表,路由器就知道来往的数据请求下一步往哪走。查到了路径后,路由器程序要做的事情就是将这个数据请求包再发到下一个路由器。这些请求包只是一段数据而已,它自己不会走。所以需要路由器程序转发一下。而我们前面提到的火车,因为自己有动力,所以就可以自己跑。铁路指挥中心只提供路径查询的功能,也就是充当路由表的功能。
    所以,路由器程序需要具备路由表数据和转发请求的功能。而转发请求会按照正确的路径将数据推出去。这个路径就是端口号。路由器只要将这个数据从一个端口塞出去即可完成转发。所以,在路由表中只有IP和端口就可以完成指路。而你要了解的就是,路由表实际上只完成上一站和下一站的指路,也就是相对的路径了。远了路由器不负责。整个网络系统的所有路由器都这么工作,就可以完成一个IP到另一个IP的通信了。这个通信过程就和路由器密切相关了。
    所以,路由器的本质,就是路由表+数据转发。只要拥有这两个特点的,就是路由器了。如果再精简,那就是数据转发。因为有可能一个路由器只有一个上一站和下一站,所以它不需要路由表,程序写死,直接转发即可。但是通常都会有路由器,而且还是动态建立的。具体的看计算机网络书籍。