许式伟的架构课
许式伟
七牛云CEO
立即订阅
20092 人已学习
课程目录
已更新 72 讲 / 共 77 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 怎样成长为优秀的软件架构师?
免费
基础平台篇 (21讲)
01 | 架构设计的宏观视角
02 | 大厦基石:无生有,有生万物
03 | 汇编:编程语言的诞生
04 | 编程语言的进化
05 | 思考题解读:如何实现可自我迭代的计算机?
06 | 操作系统进场
07 | 软件运行机制及内存管理
08 | 操作系统内核与编程接口
09 | 外存管理与文件系统
10 | 输入和输出设备:交互的演进
11 | 多任务:进程、线程与协程
12 | 进程内协同:同步、互斥与通讯
13 | 进程间的同步互斥、资源共享与通讯
14 | IP 网络:连接世界的桥梁
15 | 可编程的互联网世界
16 | 安全管理:数字世界的守护
17 | 架构:需求分析 (上)
18 | 架构:需求分析 (下) · 实战案例
19 | 基础平台篇:回顾与总结
加餐 | 我看Facebook发币(上):区块链、比特币与Libra币
加餐 | 我看Facebook发币(下):深入浅出理解 Libra 币
桌面开发篇 (16讲)
20 | 桌面开发的宏观视角
21 | 图形界面程序的框架
22 | 桌面程序的架构建议
23 | Web开发:浏览器、小程序与PWA
24 | 跨平台与 Web 开发的建议
25 | 桌面开发的未来
26 | 实战(一):怎么设计一个“画图”程序?
27 | 实战(二):怎么设计一个“画图”程序?
28 | 实战(三):怎么设计一个“画图”程序?
29 | 实战(四):怎么设计一个“画图”程序?
30 | 实战(五):怎么设计一个“画图”程序?
31 | 辅助界面元素的架构设计
课外阅读 | 从《孙子兵法》看底层的自然法则
加餐 | 想当架构师,我需要成为“全才”吗?
32 | 架构:系统的概要设计
33 | 桌面开发篇:回顾与总结
服务端开发篇 (14讲)
34 | 服务端开发的宏观视角
35 | 流量调度与负载均衡
36 | 业务状态与存储中间件
37 | 键值存储与数据库
38 | 文件系统与对象存储
39 | 存储与缓存
40 | 服务端的业务架构建议
41 | 实战(一):“画图”程序后端实战
42 | 实战(二):“画图”程序后端实战
43 | 实战(三):“画图”程序后端实战
44 | 实战(四):“画图”程序后端实战
45 | 架构:怎么做详细设计?
46 | 服务端开发篇:回顾与总结
加餐 | 如何做HTTP服务的测试?
服务治理篇 (11讲)
47 | 服务治理的宏观视角
48 | 事务与工程:什么是工程师思维?
49 | 发布、升级与版本管理
50 | 日志、监控与报警
加餐 | 怎么保障发布的效率与质量?
51 | 故障域与故障预案
52 | 故障排查与根因分析
53 | 过载保护与容量规划
54 | 业务的可支持性与持续运营
55 | 云计算、容器革命与服务端的未来
56 | 服务治理篇:回顾与总结
架构思维篇 (9讲)
57 | 心性:架构师的修炼之道
用户故事 | 站在更高的视角看架构
58 | 如何判断架构设计的优劣?
59 | 少谈点框架,多谈点业务
60 | 架构分解:边界,不断重新审视边界
加餐 | 实战:“画图程序” 的整体架构
61 | 全局性功能的架构设计
62 | 重新认识开闭原则 (OCP)
63 | 接口设计的准则
许式伟的架构课
登录|注册

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

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

数据的封包过程

网络和其他所有的输入输出设备一样,只能交换数据。无论你要对方做什么,你首先需要发送对方理解得了的数据给它。所以双方要就沟通的语言达成共识,这就是网络协议。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《许式伟的架构课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(44)

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

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

    2019-05-31
    1
    16
  • kdb_reboot
    更新了 赞一下作者写作的态度
    2019-06-04
    9
  • kirajun
    老许,现代的交换机和路由器的概念已经发生了变化了,不再是 L2/L3 的差异了。个人理解,交换机是服务于以太网的 L2/L3 网络设备,而路由器是服务于以太网和非以太网之间的网络设备。

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

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

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

    2019-05-31
    7
  • Liam
    wan数据传输,ARP解析的是LAN路由器的mac地址,而不是目标主机的mac地址
    2019-05-31
    6
  • Dimple
    大学的计算机网络和这个比起来,这个详细多了。比如那个七层网络协议,5层网络协议,以前都是死记硬背的。我可能是个假科班出身
    2019-06-14
    4
  • hua168
    CCNA的内容,鉴定完毕
    2019-06-02
    4
  • M.K
    很清楚的从架构的角度诠释了网络分层的意义,以及从宏观角度介绍了每一层的职责。前人智慧的结晶在我们做框架设计时,非常有参考价值。
    2019-05-31
    4
  • 马哲富
    文中所指的“端口”可以理解为“一台物理的计算机”吗?

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

    2019-06-05
    3
  • Geek_gooy
    想一种办法来消化网络通讯。
    两台电脑用网线直连,相当于在一起的两个人直接交流,不用叫名字(无mac)也能沟通。
    村子里的两个人交流,告诉村子里的某个负责传话的人,说姓名就行(有mac),不用地址(无ip)。
    要联系村以外的人,得用地址和姓名(有mac有ip)。
    2019-06-02
    3
  • ljf10000
    网络是个大而复杂的领域,我们能在这里面学到思维的主要是分治,水平分,垂直分。建议无需多讲,感兴趣去看tcpip详解即可。
    2019-06-04
    2
  • Sylh
    公网传输一样也会依赖mac地址的,比如两个路由器之间的转发。隧道之类的可能不依赖mac地址
    2019-06-03
    2
  • ljf10000
    arp是用于查下一跳的mac地址,不是查目的ip的mac地址。
    2019-05-31
    2
  • stern
    源主机和目标主机不在同一个局域网内,源主机的信息:IP:192.168.0.1/MAC:C01,源主机所在网络路由器信息:IP:10.20.12.2/MAC:R01,目标主机的信息:IP:192.168.0.1/MAC:C02,目标主机所在网络路由器信息:IP:20.20.16.2/MAC:R02,源主机往目标主机发送数据,数据包中源IP、目标IP、源MAC地址、目标MAC地址的变化是什么样子的?
    2019-05-31
    2
  • MJ
    说的明明白白了,也听的明明白白。谢谢老师
    2019-05-31
    2
  • 瀚海星尘
    老师,如果路由器能通过端口来做内网转发,那为什么一般都说它是网络层设备?不是应该是传输层设备了吗?

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

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

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

    2019-06-06
    1
  • sunsweet
    保证Mac地址全球唯一,我的老师说过,各个网卡厂商都有自己固定的几位,在Mac地址上,厂商只要保证剩余那些位不重复就好了
    2019-05-31
    1
    1
  • pawhrmyki
    太好了,终于把基本的广域网和局域网之前的数据交换模式厘清了
    2019-05-31
    1
  • Aaron Cheung
    打卡04 学习了
    2019-05-31
    1
收起评论
44
返回
顶部