许式伟的架构课
许式伟
七牛云 CEO
84945 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 89 讲
许式伟的架构课
15
15
1.0x
00:00/00:00
登录|注册

14 | IP 网络:连接世界的桥梁

数据传输过程
网络协议
数据的封包过程
IP网络:连接世界的桥梁

该思维导图由 AI 生成,仅供参考

你好,我是七牛云许式伟。
到目前为止,我们介绍了操作系统的六大子系统中的四项:进程、存储、输入、输出。当你理解了这些东西背后的道理,基本上做一款单机软件就游刃有余了。
但是,如果仅仅局限于单机,一台计算机并不见得比计算器高明太多,网络对整个信息科技的重要性不言而喻。它让计算机连接在了一起,这一连接就发生了巨大的变化。
没有了网络,我们只能用 Office 软件,玩玩扫雷。没有网络,就没有 QQ 和微信,不会有淘宝和支付宝,也不会有 BAT。
网络连接一切。它连接了人(个人和企业)、服务(由软件系统构建的服务接口)和物(大自然产物和智能终端),构建了多姿多彩的互联网。
它让地球上的任何两个人都可以随时随地进行沟通,远程做生意。在互联网出现之前,旧的商业文明我们可以一言以蔽之:一手交钱,一手交货。而建立在互联网之上的新商业文明,我们一手下单付款,一手收钱发货,足不出户,货物就通过便捷的物流服务送到了你手上。
这是多么巨大的效率变革,但这一切是怎么做到的呢?

数据的封包过程

网络和其他所有的输入输出设备一样,只能交换数据。无论你要对方做什么,你首先需要发送对方理解得了的数据给它。所以双方要就沟通的语言达成共识,这就是网络协议。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

IP网络连接世界,网络协议就像实物快递的物流协议,确保数据传输的可靠性和标准化。文章通过生动比喻和详细解释,让读者快速了解网络协议的基本原理和运作过程。介绍了网络协议的七层结构,以及与数据传输相关的网络地址和协议的用途,包括DNS、DHCP、ARP、ICMP等。这些协议在数字物流系统中扮演着重要角色,确保了网络通讯的顺利进行。文章还讨论了内网通讯问题,介绍了利用中间人服务器实现NAT穿透的技术,以及Full cone NAT的概念和影响。总结一下,文章深入浅出地解释了网络通讯中的复杂问题,为读者提供了全面的技术视角。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《许式伟的架构课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(57)

  • 最新
  • 精选
  • coder
    许老师觉得,从架构设计的角度去看,我们可以学到什么呢?

    作者回复: 分而治之的能力

    2019-05-31
    7
    43
  • kirajun
    老许,现代的交换机和路由器的概念已经发生了变化了,不再是 L2/L3 的差异了。个人理解,交换机是服务于以太网的 L2/L3 网络设备,而路由器是服务于以太网和非以太网之间的网络设备。

    作者回复: 是的,不过那样解释太复杂了,以简化模型介绍好一些。

    2019-06-03
    19
  • 82
    老师好 1,网络传递最根本是通过mac地址来投递的,所以mac地址必须全球唯一,那么在生产网卡时如何保证地址不重复? 2,交换机中缓存mac与端口的映射关系,那如果将设备从北京搬到上海,原有的交换设备缓存是否有问题,它是如何刷新映射关系的? 3,如何解释不同局域网ip可以重复的问题? 4,交换机是否会缓存所有路过他的映射关系,由于互联网链接巨多设备,那么每台交换机是否有最小内存限制?

    作者回复: 1、mac地址用于验证,所以实际上是局域网唯一就好。不过生产时是保证全球唯一的。 2、老化(缓存过时)。 3、嗯,这个漏了没交代。 4、你说的没错,交换机模式对局域网比较有效,如果要访问的广域网地址比较多的情形,需要优化。

    2019-05-31
    3
    13
  • 王棕生
    什么是 Full cone NAT?它是指 NAT 网关临时建立了 iAddr:port1 <=> eAddr:port2 双向映射后,任何主机给 eAddr:port2 发送数据包,都会被转给 iAddr:port1,并不局限于构建这个映射时数据包发送的目标主机是谁。 许老师,这段文字中【并不局限于构建这个映射时数据包发送的目标主机是谁】这句话不是很明白,既然 iAddr:port1 确定了,目标主机肯定就是确定的了

    作者回复: 中间人通过自己的 mAddr:mport 向NAT网关请求访问 eAddr:port2,NAT 通过自己的 iAddr:port1 向 mAddr:mport 回复信息。这样中间人就记录到了 iAddr:port1 <=> eAddr:port2 这个地址对。但是实际上 NAT 网关除了形成这个地址对外,还可以记录下 mAddr:mport。如果下次请求来源不是它,说明中间人将地址对告诉了别人,别人发来的数据。NAT 网关如果选择支持它,那就是 Full cone NAT,还有一个选择是它只认中间人,即构建这个地址对的来源地址,那么中间人就无法作为中间人了。

    2020-05-12
    2
    6
  • Geek_88604f
    从网络分层架构中可以学到很多,其分层架构与系统架构和业务架构本质上是一致的,所谓大道至简,优秀的架构设计其内在基因是相似的。 从网络分层的整体上看,最底层是物理连线,传递的是电平信号。这是网络的原生能力---相当于云服务架构中的各种物理的CPU、内存、磁盘和网络。 上一层是数据链路层,这一层基于物理能力进行逻辑增强,包括将数据转换成帧、添加校验信息,帧定界与同步,发送前的链路冲突检测,链路层流量控制(收不下不回复确认)---提供的是同一条链路上两点之间的传输能力。 注意这里是两点之间的连线,是线,还没有组成网络。由于物理上的限制,根本无法达到更远的地方,需要由链路组成网络来完成,这是一次巨大的能力跃升,而组成网络的链路的种类多种多样。因此这张由链路组成的网络需要解决两台主机之间采用标准协议进行通信的问题:分组和路由,涉及的主要设备是路由器---这一层就是IP层。这个IP层相当于云服务的IaaS层,对下封装各类虚拟化资源的差异,向上提供统一的资源访问接口。 由于IP层提供的逻辑通信能力还比较弱---尽力而为。不保证是否到达、顺序是否正确、数据是否完整,即是一种不可靠的发送方式。同时IP层通信是面向主机的,需要IP地址,两台网络主机上不同的进程之间通信不适合都用IP。因此,需要更上层的协议来提供两个能力:将主机之间的通信服务扩大到进程之间(传输层的多路复用);提供网络层传输控制能力。 这就是TCP/UDP层(这一层涉及的主要设备是网关)。让人联想到云服务的容器化PaaS层,对资源分配进一步细粒度控制,同时提供了可扩展性、容灾、备份、故障恢复等能力。 在整个网络架构中,还有一些协议提供了网络运维与管理、故障诊断的能力,如ICMP、IGMP协议。这些协议就好比云服务分层架构中左右两侧上顶天下扎根的运维运营、告警监控、日志审计等能力。这个网络分层架构相当优雅,它是如何形成的呢?是从下而上还是从上而下,亦或兼而有之。

    作者回复: 分析很到位

    2022-12-24归属地:新加坡
    4
  • Jxin
    请收下我的膝盖。如果不是看完趣谈网络协议。这一章我怕是完全看不懂。

    作者回复: 什么地方觉得需要补充?

    2019-06-21
    4
  • 马哲富
    文中所指的“端口”可以理解为“一台物理的计算机”吗?

    作者回复: 端口就是交换机上的插槽,一个端口往往连接一台或多台计算机

    2019-06-05
    3
    4
  • Geek_88604f
    源主机和目标主机在不同的局域网内,且都没有公网 IP。在这种情况下,他们也无法发送数据到中间人服务器

    作者回复: 可以的,有NAT网关

    2019-06-06
    2
  • 王棕生
    非 Full one NAT 场景下,我觉得 NAT网关可以对应该局域网中的多个目标主机,也就是,这些目标主机虽然没有公网IP,但可以通过 非 Full one NAT对外提供多个公网的服务。 麻烦许老师点评一下!

    作者回复: 这是另外一个完全不同的目的。如果是基于提供公网服务的目的,是不需要 NAT 网关的,一般是用应用网关作为入口的负载均衡器。后续服务端那一章会涉及。

    2020-05-12
    1
  • 瀚海星尘
    老师,如果路由器能通过端口来做内网转发,那为什么一般都说它是网络层设备?不是应该是传输层设备了吗?

    作者回复: 此端口非tcp中的port

    2019-06-09
    3
    1
收起评论
显示
设置
留言
57
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部