趣谈网络协议
刘超
网易研究院云计算技术部首席架构师
立即订阅
39583 人已学习
课程目录
已完结 51 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 想成为技术牛人?先搞定网络协议!
免费
第一模块 通信协议综述 (4讲)
第1讲 | 为什么要学习网络协议?
第2讲 | 网络分层的真实含义是什么?
第3讲 | ifconfig:最熟悉又陌生的命令行
第4讲 | DHCP与PXE:IP是怎么来的,又是怎么没的?
第二模块 底层网络知识详解:从二层到三层 (5讲)
第5讲 | 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?
第6讲 | 交换机与VLAN:办公室太复杂,我要回学校
第7讲 | ICMP与ping:投石问路的侦察兵
第8讲 | 世界这么大,我想出网关:欧洲十国游与玄奘西行
第9讲 | 路由协议:西出网关无故人,敢问路在何方
第二模块 底层网络知识详解:最重要的传输层 (4讲)
第10讲 | UDP协议:因性善而简单,难免碰到“城会玩”
第11讲 | TCP协议(上):因性恶而复杂,先恶后善反轻松
第12讲 | TCP协议(下):西行必定多妖孽,恒心智慧消磨难
第13讲 | 套接字Socket:Talk is cheap, show me the code
第二模块 底层网络知识详解:最常用的应用层 (4讲)
第14讲 | HTTP协议:看个新闻原来这么麻烦
第15讲 | HTTPS协议:点外卖的过程原来这么复杂
第16讲 | 流媒体协议:如何在直播里看到美女帅哥?
第17讲 | P2P协议:我下小电影,99%急死你
第二模块 底层网络知识详解:陌生的数据中心 (6讲)
第18讲 | DNS协议:网络世界的地址簿
第19讲 | HTTPDNS:网络世界的地址簿也会指错路
第20讲 | CDN:你去小卖部取过快递么?
第21讲 | 数据中心:我是开发商,自己拿地盖别墅
第22讲 | VPN:朝中有人好做官
第23讲 | 移动网络:去巴塞罗那,手机也上不了脸书
第三模块 热门技术中的应用:云计算中的网络 (5讲)
第24讲 | 云中网络:自己拿地成本高,购买公寓更灵活
第25讲 | 软件定义网络:共享基础设施的小区物业管理办法
第26讲 | 云中的网络安全:虽然不是土豪,也需要基本安全和保障
第27讲 | 云中的网络QoS:邻居疯狂下电影,我该怎么办?
第28讲 | 云中网络的隔离GRE、VXLAN:虽然住一个小区,也要保护隐私
第三模块 热门技术中的应用:容器技术中的网络 (3讲)
第29讲 | 容器网络:来去自由的日子,不买公寓去合租
第30讲 | 容器网络之Flannel:每人一亩三分地
第31讲 | 容器网络之Calico:为高效说出善意的谎言
第三模块 热门技术中的应用:微服务相关协议 (5讲)
第32讲 | RPC协议综述:远在天边,近在眼前
第33讲 | 基于XML的SOAP协议:不要说NBA,请说美国职业篮球联赛
第34讲 | 基于JSON的RESTful接口协议:我不关心过程,请给我结果
第35讲 | 二进制类RPC协议:还是叫NBA吧,总说全称多费劲
第36讲 | 跨语言类RPC协议:交流之前,双方先来个专业术语表
第四模块 网络协议知识串讲 (4讲)
第37讲 | 知识串讲:用双十一的故事串起碎片的网络协议(上)
第38讲 | 知识串讲:用双十一的故事串起碎片的网络协议(中)
第39讲 | 知识串讲:用双十一的故事串起碎片的网络协议(下)
第40讲 | 搭建一个网络实验环境:授人以鱼不如授人以渔
答疑与加餐 (9讲)
协议专栏特别福利 | 答疑解惑第一期
协议专栏特别福利 | 答疑解惑第二期
协议专栏特别福利 | 答疑解惑第三期
协议专栏特别福利 | 答疑解惑第四期
协议专栏特别福利 | 答疑解惑第五期
加餐1 | 测一测:这些网络协议你都掌握了吗?
加餐2 | 创作故事:我是如何创作“趣谈网络协议”专栏的?
加餐3 | “趣谈网络协议”专栏食用指南
第2季回归 | 这次我们来“趣谈Linux操作系统”
结束语 (1讲)
结束语 | 放弃完美主义,执行力就是限时限量认真完成
趣谈网络协议
登录|注册

第8讲 | 世界这么大,我想出网关:欧洲十国游与玄奘西行

刘超 2018-06-04
前几节,我主要跟你讲了宿舍里和办公室里用到的网络协议。你已经有了一些基础,是时候去外网逛逛了!

怎么在宿舍上网?

还记得咱们在宿舍的时候买了台交换机,几台机器组了一个局域网打游戏吗?可惜啊,只能打局域网的游戏,不能上网啊!盼啊盼啊,终于盼到大二,允许宿舍开通网络了。学校给每个宿舍的网口分配了一个 IP 地址。这个 IP 是校园网的 IP,完全由网管部门控制。宿舍网的 IP 地址多为 192.168.1.x。校园网的 IP 地址,假设是 10.10.x.x。
这个时候,你要在宿舍上网,有两个办法:
第一个办法,让你们宿舍长再买一个网卡。这个时候,你们宿舍长的电脑里就有两张网卡。一张网卡的线插到你们宿舍的交换机上,另一张网卡的线插到校园网的网口。而且,这张新的网卡的 IP 地址要按照学校网管部门分配的配置,不然上不了网。这种情况下,如果你们宿舍的人要上网,就需要一直开着宿舍长的电脑。
第二个办法,你们共同出钱买个家庭路由器(反正当时我们买不起)。家庭路由器会有内网网口和外网网口。把外网网口的线插到校园网的网口上,将这个外网网口配置成和网管部的一样。内网网口连上你们宿舍的所有的电脑。这种情况下,如果你们宿舍的人要上网,就需要一直开着路由器。
这两种方法其实是一样的。只不过第一种方式,让你的宿舍长的电脑,变成一个有多个口的路由器而已。而你买的家庭路由器,里面也跑着程序,和你宿舍长电脑里的功能一样,只不过是一个嵌入式的系统。
当你的宿舍长能够上网之后,接下来,就是其他人的电脑怎么上网的问题。这就需要配置你们的网卡。当然 DHCP 是可以默认配置的。在进行网卡配置的时候,除了 IP 地址,还需要配置一个 Gateway 的东西,这个就是网关

你了解 MAC 头和 IP 头的细节吗?

一旦配置了 IP 地址和网关,往往就能够指定目标地址进行访问了。由于在跨网关访问的时候,牵扯到 MAC 地址和 IP 地址的变化,这里有必要详细描述一下 MAC 头和 IP 头的细节。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《趣谈网络协议》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(126)

  • lh
    老师,你在第二种情况说,网关B上记下来,国际身份192.168.56.2对应国内身份192.168.1.101。那么如果该局域网内还有很多其他机器,比如192.168.1.102,103等等,它们对应的国际身份呢?如果也是192.168.56.2,那么从192.168.56.1发来请求时,网关B要将该消息转发到哪个国内身份呢?
    2018-06-04
    2
    95
  • Malcolm
    这一节讲的特别不清楚,对于懂的人来说当然懂,对于初学者来说,这节有点故弄玄虚了。
    1.访问的外网的某个地址,怎么可能会访问某个私有ip(主机B)?
    2.NAT的TCP用一主机+端口映射,你不讲初学者怎么知道如何响应给哪台主机?

    作者回复: 比如访问学校里面的选课网站?可以先理解一对一映射的场景

    2018-09-10
    5
    38
  • Leon📷
    这里面留言的都是人才。知识面又广,声音又好听,我超喜欢在这个地方看评论的感觉,不看评论是不可能的,这辈子都不可能不看评论的。
    2018-10-27
    34
  • jacy
    回答一下第一题,nat支持一对一转换,即一个内网ip与一个外网ip,题一需要协议支持一个外网ip对应多个内网ip,则需要napt协议支持,。协议会维护一张映射表,结构如下:
            内网ip:port-->外网ip:空闲port
    只要路由器空闲ip足够即可。但有个问题想请教老师,像微信这种有海量用户保持长连接的场景,路由port不够,是怎么处理的,不可能是加路由设备来处理吧?
    2018-07-05
    1
    30
  • 张爽
    NAT Gateway会以源IP+源端口的方式记录连接的NAT记录,Ping是直接调用的ICMP,不经过第四层的协议,并没有端口号,请问老师,同一内网的两台机器同时Ping百度,再收到两个应答之后,在没有端口号做区分的情况下,如何进行转发,谢谢

    作者回复: 连接维护用哈希匹配,tcp有端口的一种算法,icmp也有相应的算法

    2018-06-04
    30
  • 流沙咖啡
    有个地方有错误,在例子中,路由器B右边的192.168.1.0/24并不是静态路由,而是“直连网段”

    作者回复: 赞,是直连,直连也有条路由的

    2018-06-04
    19
  • yunfei_lei
    对于情况二,服务器A怎么知道服务器B的国际地址的?
    2018-06-05
    2
    18
  • 顾骨
    局域网中两台机器同时访问百度,但是出现了一个极端情况:两台机器的源端口都是一样的,回来时,网关怎么区分该发给谁呢。
    2018-06-04
    1
    13
  • monkay
    有下一跳和没有下一条运作上有什么区别?为什么每次都强调有没有下一跳?
    2018-06-04
    10
  • 蔺波
    Nat有session,这一块需要讲的

    作者回复: 是的,会讲

    2018-07-02
    9
  • 林三杠
    一直有个疑问,IPv4的公网地址是有限的,现在那么多云厂商卖虚拟主机,每台主机都有一个公网IP,会有用完的时候吗?分给每个云厂商的公网IP有多少啊?
    2018-06-05
    1
    8
  • Geek_9807b5
    老师您好,我有一个关于NAPT的疑问。
    将端口号和ip地址都translate成为公网ip和运算后的端口号,端口号最多65535个,如果内网机器特别多,都走tcp请求,导致接口超过65535个,怎么办?
    2018-06-05
    8
  • indeyo
    回答第一个问题。老师在讲“玄奘西行游”的过程,只讲了服务器A给服务器B发包的情况,没有讲服务器B给服务器A回复包的情况,其实是类似的。根据私有ip(国家身份证)不能在公网上面出现的原则,我列一下回去的包的内容是怎样的:
    假设和服务器A直连的路由器为路由器a,和服务器B直连的路由器为路由器b。

    服务器B->路由器b
    源MAC:192.168.1.101的MAC
    目标MAC:192.168.1.1的MAC
    源IP:192.168.1.101
    目标IP:192.168.56.1

    路由器b->路由器a
    源MAC:192.168.56.2的MAC
    目标MAC:192.168.56.1的MAC
    源IP:192.168.56.2
    目标IP:192.168.56.1

    路由器a->服务器A
    源MAC:192.168.1.1的MAC
    目标MAC:192.168.1.101的MAC
    源IP:192.168.56.2
    目标IP:192.168.1.101

    最关键的地方在于,当第二个包到达路由器a时,它是怎么知道服务器A的私有ip(国家身份证)的呢?路由器a有个引射表,可以通过公有ip(护照)查找出私有ip(国家身份证)。
    2018-12-09
    7
  • Alery
    老师,你在第二种情况说,网关B上记下来,国际身份192.168.56.2对应国内身份192.168.1.101。那么如果该局域网内还有很多其他机器,比如192.168.1.102,103等等,它们对应的国际身份呢?如果也是192.168.56.2,那么从192.168.56.1发来请求时,网关B要将该消息转发到哪个国内身份呢?就好比公司局域网往往是几十个几百个绑定到一个公网ip上的,这个时候怎么对应到具体的某个局域网ip呢?
    2018-07-05
    7
  • 起风了001
    作为教程我觉得问题可以简单带过, 但是一定要点出来, 这样读者可以继续深入学习. 比如在讲西行型时, 要说明实际上网络请求是有端口号的, 服务器A请求服务器B, 虽然是用的服务器B的192.168.56.2/24这个ip左右目标ip, 但是他本身是有带上端口号, 比如端口号123, 这个端口号在路由器B上有一个NAT映射, 路由器知道123端口代表着内网主机192.188.1.101:321, 这样可以解决很多人的疑问: 内网有多台机器的时候怎么知道目标是哪一台?

    作者回复: 赞,是的

    2019-05-17
    1
    6
  • master
    1.wan口地址怎么来的?
    2.是否在到达公网前的这一段链路上每一跳都需要NAT?

    作者回复: wan口地址是运营商分配的,只有最后一跳使用nat

    2018-10-28
    1
    5
  • zj坚果
    老师,为啥我们在宿舍里用交换机而不是用路由器啊,我们能够上外网呀

    作者回复: 有的交换机叫交换机,其实是有路由功能的

    2018-06-07
    1
    5
  • 化雨
    查了下第一题,nat时不光会替换ip地址,也会替换端口号;每个网关应该都维护了一张端口主机映射表,这样便能准确寻址私网主机。仔细看了下您画的报文结构,猜测端口号占用的应该是ip报文中的选项字段
    2018-06-05
    5
  • caohuan
    本篇所得:1.玄奘西游,需要转换IP地址,把外网 与内网相互转换,欧洲十日游 不需要转换 IP地址;
    2.静态配置路由 为规定 哪个口 访问对应的外网;
    3.离开 局域网 需要经过网关,网关是路由器的一个网口;
    4.路由为三层设备,里面包括 下一跳的信息;

    老师的问题1.公网IP转 私有IP,以及私有IP转化为公网IP,可以用一套算法,正向、反向类推。
    2.自动匹配 可以用 数据结构+算法,自动匹配路由的IP,既方便又效率。
    2018-12-31
    4
  • Yangjing
    什么场景下网络是“欧洲十国游”类型的,能提供个例子不?
    2018-08-05
    1
    4
收起评论
99+
返回
顶部