趣谈网络协议
刘超
前网易研究院云计算技术部首席架构师
128845 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 51 讲
趣谈网络协议
15
15
1.0x
00:00/00:00
登录|注册

协议专栏特别福利 | 答疑解惑第一期

你好,我是刘超。
首先,感谢大家关注并在留言区写下近 3000 条留言。留言太多,没有及时回复,一是每周写三篇文章压力真的挺大的。为了保质保量地产出,晚上和周末的时间基本上都搭进去了。二是很多人的留言非常有深度,水平很高,提的问题一两句话解释不清楚。
每一节结尾我基本都会留两个思考题,其中第一个问题是启发思考的,是对本节内容的延伸学习;第二个问题是为了引出下一节,下一节的内容其实就是答案。
所以我会回答一下每一节的第一个问题,并列出第一个同我的思路最相近的同学,并对留言中比较有代表性的问题,做一个统一的回答,顺便也实现之前要送知识图谱和奖励礼券的承诺。
当然,这并不能说明我的回答就是一定是正确的或者全面的,有很多同学的留言有非常大的信息量,甚至更广的思路,也对这些同学表示感谢。还有些同学指出了我的错误,也感谢你们。

《第 1 讲 | 为什么要学习网络协议?》

课后思考题

当网络包到达一个城关的时候,可以通过路由表得到下一个城关的 IP 地址,直接通过 IP 地址找就可以了,为什么还要通过本地的 MAC 地址呢?
徐良红同学说的比较接近。在网络包里,有源 IP 地址和目标 IP 地址、源 MAC 地址和目标 MAC 地址。从路由表中取得下一跳的 IP 地址后,应该把这个地址放在哪里呢?如果放在目标 IP 地址里面,到了城关,谁知道最终的目标在哪里呢?所以要用 MAC 地址。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(19)

  • 最新
  • 精选
  • salmonl
    学习完整个专栏,收获确实不小,关于协议的几个困惑的地方,查了一些资料没有解惑。不知道这个提问刘老师还能不能看到。 问题一:一个数据包从上层往下层传,最终是传到物理层, 已经封包完成,那么是如何使用TCP建立的连接传输呢,又回去了? 问题二:为什么TCP建立连接的适合看似很简单(没有层层封包和拆包),发数据包的时候那么费劲,连接相当于管道,直接顺着管道传输不就完事了么,还需要封包和拆包? 问题三:建立TCP连接像不像先拨通电话呢,数据传输的过程跟对话一样复杂,那么建连的时候TCP包中只有源端口和目标端口,是怎么找到目标主机的呢? 多谢!

    作者回复: 问题一:所谓的连接,没有在通路上做任何事情,只是在tcp层添加了一些用于重传的数据结构。所以所谓的连接,除了tcp层能够意识到有连接,其他层次,以及通路上都意识不到有连接的存在。所以底层管你上层有没有连接,我就傻傻的该传输就传输,如果丢了就丢了,我底层也不管。等真的丢了,tcp层的数据结构会发现丢了,要重传,底层也意识不到,这是一个重传的包,反正你上层让我传,我就传,如果丢了还是丢了就丢了。 问题二:连接不是管道,除了tcp层的数据结构,没有其他的地方知道这个连接的存在。同样,问题三,tcp连接可不是拨通电话,先建立一个连接。 tcp层的连接纯属这一层的数据结构一厢情愿的要保持顺序,不丢等。所以tcp层要做很多的工作。 所以这个问题,您对tcp连接是有误解的。再比喻一下,就是你是tcp层,你父母是应用层,高铁以及运输人员是IP层或者更底层。 你tcp告诉你父母应用层,现在从北京去上海可以包一个车厢了,其实底层也即高铁是不允许包车厢的,都是你多次跑火车站,自己一个一个的座位买,今天买不到一整个车厢,就换另一天,直到有一天你终于买了一整个车厢的票,然后你父母享受到了包车厢的服务。那问题一,高铁站当然不知道你是包车厢,反正你有票就做呗,谁知道你有这个执念,一定要包一整个车厢。 建立连接可不简单,看似三次握手,但是双方都要建立数据结构,就像你要制造一个假象给你父母说这个车厢是随便就能包了。等到了目的地,假设你有个接站的兄弟,他也要制造一个假象给你父母,车厢是随便就能包了

    3
    17
  • Hurt
    我也想要~~~

    作者回复: 有你的名字呀

    2
    5
  • 凉凉
    ”如果服务器重启了,服务端也重新启动了,也在监听那个端口了,这个时候 TCP 的服务端由于是新的,Sequence Number 根本对不上,说明不是原来的链接“ 这句话怎么理解,,服务端是新的,序号为啥对不上,,, 不是原来的连接意思是一条新的连接?一条连接不是由(source ip, source port, dst ip, dst port)这四元组决定的吗,这些都没变为啥是新的连接?

    作者回复: seq num标识连接。seq num匹配不上,说明连接不匹配

    2
  • stark
    这个课程真的是超级精彩,收益良多

    作者回复: 谢谢

  • ╯梦深处゛
    老师能不能去分享一些抓包和网络包分析相关的内容,带着问题进行抓包和分析,这样应该可以让之前学习的理论更好的理解和应用,谢谢啦🙏
    30
  • Ying|Ucloud
    针对第一个问题,为什么有IP了还要MAC,基本大家都已经说了,我再补充一点,首先你要知道交换机怎么判断是该二层转发还是三层转发,交换机只有收到MAC地址为自己的时候才会进行拆二层进行三层转发,否则就为二层转发
    1
    8
  • 蚂蚁内推+v
    Nonce 这块技术 可能了解不是特别清晰 方便老师介绍下吗 我理解是服务端发给客户端的随机数 具体怎么应用方便老师分享下吗
    2
  • 蚂蚁内推+v
    Nonce随机数的应用 方便刘老师介绍下吗 我理解是是服务端给客户端的盐
    2
  • balancer
    老师如果能后面加几节实操课,比如 哪LVS 的各种模式配置来举例,分析,那课程就完美了
    1
    2
  • zcpromising
    谢谢老师精彩用心的讲解,受益匪浅,学习完之后还有惊喜,太感谢老师了。期待老师下个专栏
    2
收起评论
显示
设置
留言
19
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部