趣谈网络协议
刘超
网易研究院云计算技术部首席架构师
立即订阅
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讲)
结束语 | 放弃完美主义,执行力就是限时限量认真完成
趣谈网络协议
登录|注册

第5讲 | 从物理层到MAC层:如何在宿舍里自己组网玩联机游戏?

刘超 2018-05-28
上一节,我们见证了 IP 地址的诞生,或者说是整个操作系统的诞生。一旦机器有了 IP,就可以在网络的环境里和其他的机器展开沟通了。
故事就从我的大学宿舍开始讲起吧。作为一个八零后,我要暴露年龄了。
我们宿舍四个人,大一的时候学校不让上网,不给开通网络。但是,宿舍有一个人比较有钱,率先买了一台电脑。那买了电脑干什么呢?
首先,有单机游戏可以打,比如说《拳皇》。两个人用一个键盘,照样打得火热。后来有第二个人买了电脑,那两台电脑能不能连接起来呢?你会说,当然能啊,买个路由器不就行了。
现在一台家用路由器非常便宜,一百多块的事情。那时候路由器绝对是奢侈品。一直到大四,我们宿舍都没有买路由器。可能是因为那时候技术没有现在这么发达,导致我对网络技术的认知是逐渐深入的,而且每一层都是实实在在接触到的。

第一层(物理层)

使用路由器,是在第三层上。我们先从第一层物理层开始说。
物理层能折腾啥?现在的同学可能想不到,我们当时去学校配电脑的地方买网线,卖网线的师傅都会问,你的网线是要电脑连电脑啊,还是电脑连网口啊?
我们要的是电脑连电脑。这种方式就是一根网线,有两个头。一头插在一台电脑的网卡上,另一头插在另一台电脑的网卡上。但是在当时,普通的网线这样是通不了的,所以水晶头要做交叉线,用的就是所谓的 1-32-6 交叉接法
水晶头的第 1、2 和第 3、6 脚,它们分别起着收、发信号的作用。将一端的 1 号和 3 号线、2 号和 6 号线互换一下位置,就能够在物理层实现一端发送的信号,另一端能收到。
当然电脑连电脑,除了网线要交叉,还需要配置这两台电脑的 IP 地址、子网掩码和默认网关。这三个概念上一节详细描述过了。要想两台电脑能够通信,这三项必须配置成为一个网络,可以一个是 192.168.0.1/24,另一个是 192.168.0.2/24,否则是不通的。
这里我想问你一个问题,两台电脑之间的网络包,包含 MAC 层吗?当然包含,要完整。IP 层要封装了 MAC 层才能将包放入物理层。
到此为止,两台电脑已经构成了一个最小的局域网,也即 LAN。可以玩联机局域网游戏啦!
等到第三个哥们也买了一台电脑,怎么把三台电脑连在一起呢?
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《趣谈网络协议》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(105)

  • ARP广播时,交换机会将一个端口收到的包转发到其它所有的端口上。
    比如数据包经过交换机A到达交换机B,交换机B又将包复制为多份广播出去。
    如果整个局域网存在一个环路,使得数据包又重新回到了最开始的交换机A,这个包又会被A再次复制多份广播出去。
    如此循环,数据包会不停得转发,而且越来越多,最终占满带宽,或者使解析协议的硬件过载,行成广播风暴。

    作者回复: 赞

    2018-05-29
    3
    341
  • 阡陌
    不得不说,看留言也能学到很多东西

    作者回复: 高手还是很多的

    2018-05-30
    1
    111
  • 之前有无盘工作站,即没有硬盘的机器,无法持久化ip地址到本地,但有网卡,所以可以用RARP协议来获取IP地址。RARP可以用于局域网管理员想指定机器IP(与机器绑定,不可变),又不想每台机器去设置静态IP的情况,可以在RARP服务器上配置MAC和IP对应的ARP表,不过获取每台机器的MAC地址,好像也挺麻烦的。这个协议现在应该用得不多了吧,都用BOOTP或者DHCP了。

    作者回复: 对的,赞

    2018-05-29
    110
  • 没心没肺
    Hub:
    1.一个广播域,一个冲突域。
    2.传输数据的过程中易产生冲突,带宽利用率不高
    Switch:
    1.在划分vlan的前提下可以实现多个广播域,每个接口都是一个单独的冲突域
    2.通过自我学习的方法可以构建出CAM表,并基于CAM进行转发数据。
    3.支持生成树算法。可以构建出物理有环,逻辑无环的网络,网络冗余和数据传输效率都甩Hub好几条街。SW是目前组网的基本设备之一。

    作者回复: 赞

    2018-05-28
    2
    85
  • 田豪杰
    一直坚持看到第五讲,我理解能力太差了,感觉还是一头雾水唉……
    2018-05-29
    4
    79
  • 戴劼 DAI JIE🤪
    当年上课学习记住了交叉线和直连线的区别,工作后有一次两台机器对拷,发现网卡能自适应直连线,懵逼了。

    作者回复: 是的,现在自适应了

    2018-06-07
    35
  • Z3
    当年玩魔兽经常出现他建房我看不见,我建房他能看见之类的问题。 这些可能是应用层的问题吗?

    作者回复: 这个,场景不在了,很难分析

    2018-05-30
    23
  • hujunr
    当时用的交换机,把一条网线的2端同时接到交换机了,结果所有电脑都连不上网了,这是为什么?

    作者回复: arp广播塞满了

    2018-07-30
    2
    18
  • 远心
    用网线直接连接两台计算机的方式,如何知道另一台计算机的 MAC 地址?使用 ARP 协议吗?也就是说其实每一台计算机都安装着 ARP Client/Server 吗?

    作者回复: 是arp,内核里面就有这部分逻辑

    2018-09-15
    10
  • 楊_宵夜
    连续看了好几篇!真的是大道至简!逻辑无比清晰!细节的深度刚刚好!赞!以太网也是个很有趣的东西,记得在知乎上看到过,最离奇的Bug都有哪些。其中一个关于以太网的是说,某个大学因为建筑施工,挖掘机的声波频率影响了光纤电缆中的信号传输,导致信号最多只能传输520多公里哈哈哈,也就是说520公里以外的服务器都访问不到了。
    这里细节肯定记错了,抛个砖,有兴趣的各位可以在知乎搜搜😂😂

    作者回复: 谢谢啦

    2018-06-08
    10
  • kevinsu
    是不是可以理解成交换机是具备学习功能的hub
    2018-08-25
    8
  • Amorfati
    1. rarp 除了通过mac地址去向dhcp之类服务要一个IP,其他没有想到有什么用,按照我的理解,如果非直联同一交换机,一个设备去找另一个设备,知道其mac地址而不知其ip,说不通

    2. 多个交换机,若pc1所连交换机为A,pc2,pc3所连交换机为B,AB直连,pc1找pc2的时候A会把直连B的端口缓存为pc2的mac地址,在过期时间内,pc1都没有办法找到pc3

    这个就是我的理解,如有误还请老师指正
    2018-05-28
    2
    7
  • 天王
    网络分层第一层物理层,第二层数据链路层。物理层提供设备,即数据传输的通路,将多台设备连接起来。设备如网线,接线头,hub等。数据链路层,即mac层,medium access controller,媒体访问控制,需要解决几个问题1谁先发谁后发,2发给谁,谁接收,3 发送出现了错误,怎么办。1 .1信道划分,各走各的道 1.2 轮流 1.3 , 随机接入协议,错开高峰,不行就等。2.1 mac地址即数据链路层地址,第二层数据包格式,依次是mac地址,目标mac,源mac,数据类型比如ip数据包,数据包在链路层上广播,目标mac的机器会找到,去掉mac包,看下ip是自己的,则认为是发给自己的,再打开tcp包,发现端口是80,会交给nginx,让nginx处理。第二层最后面是CRC,循环冗余检测,来计算发送过程中是否发生错误。现在有ip,没mac,需要将mac放入数据包。需要ARP协议,通过ip找mac,1 查找本地ARP表,有的直接返回,2 广播ARP请求,靠吼,3等着应答。hub是广播的,什么都会发出去,让主机判断,需不需要。交换机比较智能,他有记忆功能,一开始不知道哪个mac对应哪台电脑,一开始会都广播,后来有应答之后,会记住哪台电脑,以后就直接发到那台电脑上。
    - [ ]
    2019-03-05
    6
  • 天天向⬆️
    老师,一直没明白你说的mac层是什么?是物理层吗?还是数据链路层?

    作者回复: 链路层,后面也解释了尴尬的叫法,但是约定俗成

    2018-07-12
    5
  • magict4
    两台电脑直连的情况下,谁是网关呢?电脑可以充当网关吗?

    作者回复: 不用配置网关就能通

    2018-06-18
    5
  • 匿名用户
    为了避免每次都用 ARP 请求,机器本地也会进行 ARP 缓存。当然机器会不断地上线下线,IP 也可能会变,所以 ARP 的 MAC 地址缓存过一段时间就会过期。这就是路由表存在的意义?这里应该提一下啊…
    2018-06-03
    5
  • 天边的一只鱼
    看了前几章,个人理解下访问外网ip的流程,不知道对不对, 我现在在公司的内网想要访问一个北京的外网ip, 首先把我自己的ip地址,mac地址,端口,外网的ip地址,端口,在内网吼一下,被公司网关收到,判断下这个ip是不是内网的, 不是的话,添加上公司自己的mac地址,然后往更上一层吼一下(某个区域电信的网关),然后这个区域的电信网管判断下ip是不是我这一片的,再试再加上自己的mac地址,再层层往上吼,一直找到这个ip为止。 不知道这么裂解对不对,刘老师。

    作者回复: 对的

    2019-04-12
    3
    4
  • N_H
    老师,根据你前面的几个讲解,我理解到,机器A知道机器B的ip无法准确进行通信,因为ip可以在局域网内进行分配。但是知道mac地址肯定是能进行通信的,因为mac地址是唯一的,无论这个机器到哪里去了,我都能通过mac地址找到这个机器,既然这样,那为什么还需要ip地址?
    这是我看了几期课程以来一直的疑问。

    作者回复: mac是局域网的定位,ip是跨网络的定位

    2019-06-28
    3
  • Yuki
    非科班出身,理解很困难。但每天坚持看一篇,多看看一定能慢慢理解~

    作者回复: 可以几天看一篇的,慢慢消化,不图快

    2019-06-13
    3
  • leon
    文中提到ARP缓存和交换机转发表都有过期时间,这个时间设置多长如何取呢?当arp缓存或转发表里的内容不对时有办法知道吗?

    作者回复: 内容不对就连不上,报icmp,会刷新

    2019-05-06
    3
收起评论
99+
返回
顶部