最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 这可能是史上最易懂的计算机网络科普文

    正文概述 掘金(AzAz_)   2021-04-01   623

    导读

    目标:建立对计算机网络基础的整体认知

    预计阅读时间:15min

    适用群体:

    • 被广域网,局域网,网桥,网关,交换机,子网掩码等各种名词困扰的萌新;
    • 啃《TCP/IP 详解》等教科书啃到哭的苦逼工程师;
    • 正在准备面试的求职者。注1

    首发于:计算机网络基础(0门槛)

    Before We Start

    忘掉脑中零碎的概念、认知,让我们从最简单的地方开始。

    这可能是史上最易懂的计算机网络科普文

    物流?数据流?

    快递包这样走:

    这可能是史上最易懂的计算机网络科普文

    数据帧这样走:

    这可能是史上最易懂的计算机网络科普文

    快件是快递运输的基本单位,片区内住户可以直接互送快件;每个片区有一收发点,外来快递由收发点统一派送,送往外部的快递,由收发点统一转发给上级集散站;每个集散站负责多个片区,集散站之间进行快递转发,并把属于自己片区内的快递分发给对应收发点。

    数据帧是网络传输的基本单位,网段内主机可以直接相互通信;每个网段有一交换机,外来数据帧由交换机广播给所有主机,发往外的数据帧,由交换机统一转发给上级路由器;每个路由器负责多个网段,路由器之间进行数据帧转发,并把自己负责网段内的数据帧分发给对应的交换机。

    认识快递包数据帧

    一件完整的快递至少包含:收件人地址、收件人手机,发件人地址、收件人手机,被寄送物件。

    数据帧跟快递真的很像 ? ?...

    • 目的 MAC => 收件人手机

    • 源 MAC => 发件人手机

    • 目的 IP 地址 => 收件人地址

    • 源 IP 地址 => 发件人地址

    • 数据 => 被寄送物件

    一个完整的数据帧如下所示:

    这可能是史上最易懂的计算机网络科普文

    这里需补充一点基础知识:

    另外数据帧多了个帧校验序列,其作用是让接收数据帧的网卡或接口判断该数据帧是否发生了错误 注2

    数据帧传递

    发件人要发物件,先看收件人跟自己是否在同一小区, 如是,直接给他;不是,那就交给收发点转发。

    主机要发数据帧,先检查目标主机跟自己是否在同一个网段注3。是,直接把帧丢给对方;不是,就交由交换机转发。

    传输要可靠,管杀还管埋

    上面介绍了数据帧如何从一台主机传到另一台主机,不过主机上有很多程序,数据帧过来后给谁用?

    在数据前面加上端口吧,哪个程序用了这个端口,就把数据丢给谁。

    这可能是史上最易懂的计算机网络科普文

    这就是 UDP。 通过 UDP,我们实现了应用程序间的数据传递。

    但还有问题,快递都会丢件,数据帧想顺利传过去也不那么容易...

    如何保证数据帧传递到位?这就要聊聊TCP了。

    为了确保传输通信可靠,至少要解决三个问题:

    1. 如何建立连接和断开连接?
    2. 我发的数据帧,如何确认对方已成功接收?
    3. 一方掉线了怎么办?

    1. 建立/断开连接

    建立连接通过 3 次握手,断开连接通过 4 次挥手。

    Q:为啥握手要 3 次?

    这可能是史上最易懂的计算机网络科普文

    (图片来源于网络,如侵权请联系作者删除。)

    Q: 为啥要挥手要 4 次?

    这可能是史上最易懂的计算机网络科普文

    (图片来源于网络,如侵权请联系作者删除。)

    2. "回执"机制

    TCP 约定:

    发出端发出一包后,会启动一个定时器,等待目的端发回“回执”。如没及时收到“回执”,将重发这个包。

    目的端收到一个包后,会发一个“回执”,告诉发出端我收到了。

    回执也是个数据帧,一个“回执”专门发一次,是不是有点浪费啊。。。

    TCP 很鸡贼,它约定接收端不会立刻发送“回执”,而是先等等(一般 200ms 左右)看发送端有没有请求数据。要是有,就把“回执”塞到对方需要的数据里,一起发回去;要是没有,就专门发一个“回执”。

    3. 重置机制

    TCP 设计了一套重置机制,专门处理断线、数据帧错误等问题。

    如果接收方掉线了,你再重复多少次发送,对方也不会有响应。所以,TCP 默认 重传 5 次(次数可自行设置)依然失败,就重置这个连接。

    如果某一方觉得对方或对方发来的数据有问题,也可以随时主动触发连接重置,以保障通信稳定和正确。

    Q:为啥说 TCP 开销大?

    Q: TCP 这么牛逼,还要 UDP 干啥?

    把数据用起来

    感谢 TCP、感谢 IP、感谢 MAC,终于把数据安全的从一个程序传递给另一个程序了!!

    但这坨数据怎么用?他是图片?视频?文本?彩蛋?还是啥玩意???

    显然,这需要两端的程序约定好用啥协议,传的是个啥,该怎么处理... 等等。

    怎么办?在数据头上拼好这些信息呗 ~ 这就是 HTTP、POP3、SMTP 这些协议干的事儿了。

    最后让我们看看从数据到一个完整的数据帧的包装过程:

    这可能是史上最易懂的计算机网络科普文

    结尾

    等等啊喂,协议讲了这么多连 OSI 七层模型也不介绍?

    不止这些,广域网、网桥、网关、ARP、DARP、IP 协议、路由协议之类的,都没介绍,如无必要,勿增概念。注5

    参考资料

    TCP/IP 协议族到底怎么回事

    你了解快递就能明白什么是路由器和交换机

    TCP/IP 详解

    以太网发展史

    有了 IP 地址,为什么还要用 MAC 地址? - 你好啊世界的回答 - 知乎

    子网、局域网、网段的关系


    1. 笔者当前工作于 神策数据·营销云。如希望内推,请将简历发送至anzhen@sensorsdata.com。↩
    2. 校验原理可参考: crc 计算和原理,非网络工程师不必深究。↩
    3. 具体方式是将两个 IP 地址分别与本机子网掩码作按位与操作,结果一致则在同一网段,否则两者分别位处不同网段。↩
    4. 如果行话看着太累,跳过即可。↩
    5. 偷自“如无必要 勿增实体”。笔者认为学习应先关注问题本质及核心解决思路,在学习解决方案及衍化的过程中逐渐理解概念和细节不迟。↩

    起源地下载网 » 这可能是史上最易懂的计算机网络科普文

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元