0x00 - 绪论

我,因为水课,成为了一个网络白痴。隔壁茶铺的老板于心不忍,拯救了我。【这个时候是不是要说一句:啊,被治愈了(笑】

0x01 - 上课

「首先 计算机之间想要交流」
「在19*0年代」
「那时候还没有网络」
「此时科学家开始拿一根电线把两台电脑连了起来」
「然后这两台电脑就能通过这根线开始交流了」
「然后 他们想要让第三台电脑也连进来」
「最初的方案是,把3号电脑连在2号电脑上
「这样2号电脑就连接了1和3两台电脑」
「3如果要和1说话,只要在说的话前面加上:“我要和1说”就可以了」
「现在的网络是1-2-3这样连的」
「3要和1说话必须要经过2」
「当他们有了很多很多台电脑」
「他们现在就有了1-2-3-4-5-6-7-8-9」
「这样2-8之间的每台电脑都有两个网口,连接了两台设备」
「但是这样的话」
「9要和1说话,就必须先经过8765432」
「这样的话太慢了」
「效率太低」
「所以科学家们想到能把9和1连起来」
「这样就是1-2-3-4-5-6-7-8-9-1」
「连成了一个圆环」
「但是这样还是慢:如果4想要和9说话,必须要途中的每台机器都先接收,再发送」
「对于当时低性能的设备来说,这样的时延是巨大的」
「有什么办法能直接让4和9说话呢」
「那就让4和9在一根线上就好了」
「此时他们使用一根网线 将1-2-3-4-5-6-7-8-9-1串在了一起,此时每台机器就只需要一个网口了!」
「当4发出信号时,9能够直接接收到4在这根线上发出的信号」
「(与此同时1235678也能同时接收到这个信号」
「总之就是像并联小灯泡那样的把所有的电脑都接在了同一根线上」
「这样一台电脑发出信号的时候任何其他的电脑都能收得到」
「(但是两台电脑不能同时发出信号,否则信号会被干扰(极性相同,短路倒不至于,但是传输的信号就废掉了)」
「这点很关键」
「此时的电脑之间是不能同时发送信息的」
「每次只能有一个人说话」
「网络中不可能存在多个人同时说话的情况」
「刚刚是用了一根特制的线」
「将所有的电脑连在了同一根线上」
「那这样的话每次都手工做一根线太烦了」
「所以就发明出了hub(做一个有好多网线插口的小盒子,这些网线插口连在同一根线上,互相导通)」
「只要用正常的网线把电脑连在hub上就可以了」
「所以这时候遇到了一个问题」
「一次只能有一个人说话」
「如果连了64个机器」
「那么每台机器只能有1/64的时间可以说话」
「这是坏文明」
「所以人们发明出了交换机」
「交换机拥有一个芯片」
「里面记录了每个人的MAC地址」
「每个人在说话时,都会加上目标计算机的物理地址」
「然后交换机拿到这封信后,会开始检索自身的数据库:这个物理地址对应的是这台交换机的几号端口」
「然后交换机会将这封信转发给相应的端口」
「交换机可以同时处理很多封信」
「所以交换机上的所有设备可以同时说话」
「同一网段下的设备接在交换机上」
「路由器将子网接入更大的父网中」
「路由器内自带一个交换机」
「路由器的作用是把小树连上大树」
「小树下面分叉的任务是交给路由器中的交换机功能来完成的」
「(可以集成在同一芯片上」
「在交换机出现时」
「计算机之间都还只需要用物理地址来标记目的地」
「(因为交换机里的“数据库”记着所有连在上面的设备的物理地址」
「当时人们的需求也仅限于同一个交换机下的设备互相连接罢了」
「但是后来逐渐出现了新的需求:」
「不同的电脑组之间 需要连接起来」
「比如说一个公司的某台大交换机下的50台设备需要有访问另一个公司的某台交换机下的50台设备的渠道」
「由于交换机只负责收信,看地址,送信」
「因此交换机本质上需要把所有的信头都看一遍」
「另外 交换机不分层」
「交换机内的所有设备之间都是互相透明的」
「即使用另一台交换机连在两台交换机上也是如此」
「而且对于交换机来说」
「每一封信都是需要被重新投递的」
「所以此时如果要将成千上万的不同电脑连接起来的话,交换机要忙死的」
「(在这种情况下最大的那台交换机就得记成千上万个地址,搜索的时候还必须瞬间搜索完成,这几乎是不可能的」
「(对于当时的设备而言」
「所以产生了网段的划分」
「通过路由器,将路由器下面的设备划分在一个较低级的网段,将路由器上面的设备划分在一个较高级的网段」
「这样的话对于再上层的设备而言,就只有少数的几个路由器连在其上,使运算量一下子低了许多数量级」
「(此处忽略了网桥的兴衰史」
「此时遇到一个问题」
「该怎么访问到一个与你不在同一层级上的设备」
「如果还用物理地址的话 就意味着上层设备又得再次把下层设备的所有地址都给记住了 就偏离初心了」
「所以此时出现了ip地址」
「(此处省略了TCP协议,以及ip地址的前几代演化史」
「ip地址的作用之一是 定义了每一台设备的不同层级」
「ip地址是和端口号协同工作的」
「以下内容已经经过了大跃迁,跳过了常识性的部分」
「对于本地局域网而言,定义中的网段有:
10.*.*.*
172.16~31.*.*
192.168.*.*

「任何一台电脑,看到这样的ip,根据定义,都可知这是本地局域网内的ip地址」
「除此之外的ip被认为是公网ip,也就是因特网上的ip」
「(刚刚说的除了那些本地ip以外还有一些保留的ip,因为对此处用处不大所以先忽略掉了


「这是保留ip的列表,除了这些ip以外都是公网ip」
「然后比如说你的电脑在本地的ip是192.168.1.5(举例)」
「那么你的路由器的ip便应该是192.168.1.1」
「(网关」
「如果要访问一台为192.168.1.7的电脑,那么路由器明白192.168.1.7是本地地址,因此不会访问外网的设备」
「但是如果访问一台ip地址为59.78.13.84的电脑」
「那么路由器就知道这台电脑不归自己管,因此要把这封信送到上级的路由器那里」
「对于一个路由器而言」
「它永远有两个ip地址」
「一个ip地址针对上层网络,一个ip地址针对下层网络」
「路由器在192.168.1.*网段内可以有一个自己的ip地址,目的是和192.168.1.1交流」
「路由器在192.168.110.*内也有一个自己的ip地址,目的是和192.168.110.*内的设备交流」
「然后对电脑而言」
「192.168.110.*都是可见的」
「与此同时」
「对电脑而言」
「192.168.1.*也都是可见的」
「但是如果存在一台设备,接在光猫上,ip地址为192.168.1.3」
「那么对于192.168.1.3这台设备而言,192.168.1.*都是可见的,但是192.168.110.*都是不可见的」
「一般来说」
「如果192.168.1.3要与192.168.110.101互相连接」
「连接不可能由192.168.1.3主动发起(因为192.168.110.101对其是不可见的,它只能看到有一台路由器存在,不知道路由器下面有哪些东西)」
「此时连接由192.168.110.101主动发起」
「对于一个设备而言」
「它上级的设备全部是可见的」
「(如果没有防火墙的话」
「实际情况中会存在各种各样的防火墙 所以仅仅是按需可见的」
「所以说」
「我在学校里的时候」
「我会选择直接将电脑连在交换机上」
「而不是连接在路由器上」
「我的路由器的上级ip是59.78.13.237,下级ip是10.0.0.1」
「这样我如果把台式机连接在与路由器同级的交换机上,那么就拥有了59.78.13.84这个公网ip」
「此时对于ip的网段而言,我是处于最顶层的」
「所以我就可以直接用台式机开服务器了」
「(虽然学校并不允许」

最后修改:2021 年 01 月 02 日 10 : 55 AM
真的不买杯奶茶嘛....qwq