zoukankan      html  css  js  c++  java
  • 通俗的计算机网络通信的软文——转载知乎

    https://www.zhihu.com/question/19718686

    好巧,又是半夜复习计网,看到很多小哥哥们指出的错误,敲开心哟
    做了一些修改,在最后又做了一些补充~


    半夜复习计网,顺路回答缕缕思路...

    首先计网不是难= =,是知识点太多!!!毕竟那是一大坨历史啊喂

    然后,计网很有趣啊
    你就不想知道,你们翻墙看的小电影,是怎么传输过来的么?

    其次,网络的构成就像一个社会,
    它的每一次迭代,都是为了解决一个具体的问题
    编程是逻辑,计网也是逻辑啊喂
    (有答案说计网不像编译这些,没逻辑,宝宝不服

    你要是非说他难,估计是,自顶向下的厚度吓到你了,或者密密麻麻的字催你睡着了吧
    (斜眼笑

    以下个人速成计网后的理解,如果说错了...
    ...那你快告诉我让我考试别丢分啊!!!

    计网的目的是通信,是为了连接端到端

    所以我们首先要考虑——网怎么设计

    我们有两种网:1.分组交换 2.电路交换(电话)

    在很久很久以前,你记不记着,有个“拨号连接”,有个叫做“猫”的东西?没错,就是那个,一上网就打不了座机的时代,此时,我们还是电路交换哟

    这样太蠢了!!!
    如果我只是想上网看下小电影的简介,那我打开介绍小电影的网站,就暂时不会再通信了所以,没必要一直给我连接着啊!于是,我们用起了分组交换,分组交换还有两种方式:
    1.虚电路,如ATM(模拟电话线路);2.数据报,如因特网

    为啥因特网不用虚电路?肯定是因为,大多数时候,虚电路没必要啊,而且麻烦不好用啊,为啥虚电路没必要;不好用?因为大多数时候,互联网没有实时要求啊;他的面向连接浪费资源啊

    好嘞,现在我们知道了,因特网使用的是,数据报,我们先不管数据报是什么,我们先考虑下如何传输数据报

    我们的因特网,肯定是基于物理电路的,因此,我们需要一个,将数据转化为物理信号的层,于是,物理层诞生啦

    有了处理物理信号的物理层,可我们还得知道,信号发给谁啊

    你肯定知道,每个主机都有一个,全球唯一的MAC地址吧,所以,我们可以用MAC地址来寻址啊,恭喜你,链路层诞生啦

    别急,你知道MAC地址,是扁平化的吧,也就是说,MAC地址的空间分布,是无规律的!如果你有十万台主机,要通过MAC地址来寻址,无F**K可说,不管你设计什么样的算法,数据量都太大了!!!所以,我们需要IP地址啊,PS,IP里的有趣的东西太多啦,所以我补充在了最后,有了IP地址,恭喜你,网络层诞生啦

    然而,一台主机不能只和一台服务器通信啊,毕竟下小电影,也要同时货比三家啊,那如何实现并行通信呢?嘿嘿,我们有端口号啊

    再基于不同需求:有人想要连得快,不介意数据丢失,比如你的小电影,有人必须要数据可靠,比如发一个电子邮件,于是产生了UDP&TCP恭喜你,运输层诞生啦

    别急,你知道的吧,不同应用,有不同的传输需求,比如,请求网页,发送邮件,P2P...而且,还有DHCP服务器啊,为了方便开发者,我们就对这些常用需求,进行了封装
    恭喜你,应用层诞生啦

    至此,自底向上,讲述了计网。待我考完试,我可以写一部,计算机网络·从下向顶方法

    细节补充

    来我们思考先一个问题:如果有四台电脑,要互相能通信,咋办?

    每一台电脑都和另外三台连起来?那我要是再来十台电脑,你在电脑上给我再加十个接口?

    那,把他们连接到一个小盒子上,让小盒子帮着通信?哎这个可以有啊,那如果我有一万台电脑,一个小盒子能够用?

    嘿嘿,那让每一个小盒子连一百台,然后把一百台小盒子再连给一个小盒子

    我们可以用“电话线,宽带,和光纤”,把电脑接给小盒子,它们被称作“接入网”而ISP就像小盒子,帮你在网络里做通信而ISP的分层,无非就是,终端太多了,没办法不分层好了,现在你已经明白了网络的层次化

    你肯定是知道,为了在辣么多计算机里,找到目标,我们采用了,有规律的IP地址而路由器,又叫分组交换机,就是帮我们在公网里,做IP寻址的,最初,IP地址是IPv4,首先,IP地址是分成了五类(ABCDE)奈何不够用啊,于是,我们是使用了子网划分,然鹅,手动分配子网IP,会死人的!于是,DHCP来,
    md还是不好用啊,于是,诞生了无分类编址(CIDR)奈何,还是不够用啊于是,NAT出现啦,于是专用网的IP不再占用公网IP

    首先,啥是专用网啊

    1.局域网,比如,公用一个路由器的宿舍啊,家啊
    2.部分广域网,比如军队、铁路、交通、电力等部门,拥有自己专用的通信网和计算机网。然鹅,这些网络不对内部外的用户开放。这些网络覆盖的地理范围很广,因此,这些专用网都是广域网。

    保密性质的广域网,通信要扯到VPN,宝宝没学到这里,先埋个坑

    来我们先谈谈局域网内的通信,如果哈,我们是一个大局域网,比如我们公司有一百台电脑,首先,路由器没一百个接口让我插!其次,如果我不想和公网通信,那我就没必要用路由器!所以,链路交换机来了!!!

    链路交换机是基于MAC寻址的,因为局域网没大到必须用IP寻址的地步啊,但更准确的说,链路交换机采用了,跨越链路层和网络层边界的协议ARP,ARP要做一个IP到MAC的映射。

    你问我,为啥ARP要做IP到MAC的映射,因为,你在应用层和运输层里,目的地址都写得是IP,不把IP转化为MAC,咋寻址啊?

    你问我,局域网为啥不用路由器,为啥要用链路交换机交换机功能少,接口多,比路由器划算啊那,局域网和公网怎么通信呢?所以,NAT来了啊!!!

    分组交换机,也就是路由器,用自己的公网IP,帮你们局域网里的人们,给公网发信息,然后把接受到的信息,再转发给那个找他帮忙的人,这就是NAT技术啊。这时一群人说,NAT ulaula不好,我们要拒绝NAT,使用IPv6

    那么就牵扯到了IPv4和IPv6间的通信(双栈||隧道)还有啊,IP地址太丑啦,用户根本记不住xxx.xxx.xxx.xxx于是乎,域名千呼万唤始出来,顺便带出来了DNS服务器
    哎,好多有趣的还没讲完,像什么路由算法啊,校验方式啊,寻找DNS服务器和网关地址啊,网络的网络,因吹斯汀~继续复习计网了,求好运。

  • 相关阅读:
    Mysql的左外连接丶右外连接与内连接的区别
    常见的异常种类
    Mysql
    JSTL 标签库
    VMware的虚拟机为什么ip地址老是自动变化?
    redis出现的问题
    在Linux系统下启动了tomcat,但是在游览器中进步了服务
    Linux下安装JDK 与 tomcat
    wamp配置多站点域名
    终端链接操作redis
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/11276600.html
Copyright © 2011-2022 走看看