gyro永不抽风

ああああああああああああああああおおおおおおおおおおおおおおおお

面包人小课堂 - 0x00 - IP地址

0x01 - 绪论

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

0x02 - 上课

「首先 计算机之间想要交流」
「在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的网段而言,我是处于最顶层的」
「所以我就可以直接用台式机开服务器了」
「(虽然学校并不允许」

__EOF__
-------------本文结束感谢您的阅读-------------

本文标题:面包人小课堂 - 0x00 - IP地址

文章作者:gyro永不抽风

发布时间:2020年03月08日 - 21:03

最后更新:2020年03月16日 - 12:03

原始链接:http://gyrojeff.moe/2020/03/08/%E9%9D%A2%E5%8C%85%E4%BA%BA%E5%B0%8F%E8%AF%BE%E5%A0%82-%E7%BD%91%E7%BB%9C-0x00/

许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 转载请保留原文链接及作者!

真的不买杯奶茶吗?T^T

欢迎关注我的其它发布渠道