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

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

有时会出现下层没有上层的情况
层级之间的调用方式
分层的目的是解决复杂性和需求变动的问题
ARP协议属于二层和三层之间
TCP报平安只能保证TCP层收到
如果最后一跳时IP改变了
IP地址和MAC地址的关系
TCP报平安不是原路返回
TCP重试不会导致重复下单
MAC地址可以修改
每节课末尾有思考题
感谢大家的关注和留言
总结
参考文章
这些网络协议问题,你都搞清楚了吗?

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

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

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

课后思考题

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

本文深入探讨了网络协议的重要性以及其在计算机网络中的关键作用。通过对网络包的传输过程、MAC地址的唯一性、TCP重试导致的重复下单问题、TCP报平安的包的传输路径、IP地址和MAC地址的关系、最后一跳IP地址改变的情况、TCP层报平安的确认方式以及ARP协议所属层次等问题进行了详细阐述。文章以通俗易懂的方式解答了读者提出的问题,阐明了网络协议的相关知识,使读者能更全面地了解网络协议的相关内容,对网络通信过程有更深入的理解。此外,文章还探讨了网络协议分层的原因,以及层级之间真实的调用方式,以及在何种情况下会出现下层没有上层的情况。通过这些内容,读者可以快速了解网络协议的重要性和复杂性,以及分层设计的必要性。文章内容深入浅出,适合对网络协议感兴趣的读者阅读学习。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(19)

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

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

    2019-08-22
    3
    17
  • Hurt
    我也想要~~~

    作者回复: 有你的名字呀

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

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

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

    作者回复: 谢谢

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