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

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

《圣经》中有一个通天塔的故事,大致是说,上帝为了阻止人类联合起来,就让人类说不同的语言。人类没法儿沟通,达不成“协议”,通天塔的计划就失败了。
但是千年以后,有一种叫“程序猿”的物种,敲着一种这个群体通用的语言,连接着全世界所有的人,打造这互联网世界的通天塔。如今的世界,正是因为互联网,才连接在一起。
当"Hello World!"从显示器打印出来的时候,还记得你激动的心情吗?
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello World!");
}
}
如果你是程序员,一定看得懂上面这一段文字。这是每一个程序员向计算机世界说“你好,世界”的方式。但是,你不一定知道,这段文字也是一种协议,是人类和计算机沟通的协议,只有通过这种协议,计算机才知道我们想让它做什么。

协议三要素

当然,这种协议还是更接近人类语言,机器不能直接读懂,需要进行翻译,翻译的工作教给编译器,也就是程序员常说的 compile。这个过程比较复杂,其中的编译原理非常复杂,我在这里不进行详述。
但是可以看得出,计算机语言作为程序员控制一台计算机工作的协议,具备了协议的三要素。
语法,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。
语义,就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。
顺序,就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(418)

  • 最新
  • 精选
  • 陶家顺
    1. mac地址是唯一的,为什么可以修改?想想身份证,身份证号是唯一的,不能改变的,但是可以造价。mac地址全球唯一,它是固化在网卡里的。网卡毕竟是个硬件,需要软件支持,既操作系统识别。重点来了,操作系统识别出来的mac地址是可以更改的,它只不过是一个字符串。我们常说的修改mac指的是修改电脑中记录的既注册表中的记录。 2. 有了mac地址为什么还要有ip地址。举个例子,身份证号是你的唯一标识,不会重复,一落户就有(网卡一出厂就有mac)。现在我要和你通信(写信给你),地址用你的姓名+身份证,信能送到你手上吗?明显不能!身份证号前六位能定位你出生的县。mac地址前几位也可以定位生产厂家。但是你出生后会离开这个县(哪怕在这个县,也不能具体找到你)。所以一般写个人信息就要有出生地和现居地址了。

    作者回复: 这个解释太详细了

    39
    1366
  • ip是网络层使用的 mac是链路层使用的 ip包最终还是要通过物理链接和mac地址进行交互的

    作者回复: 对的

    3
    210
  • 糖小宝
    感觉Mac地址是手机号码,IP地址是省市区加街道详情 点外卖的话,只有手机号码是找不到订餐人的 只有按照省市区加街道详情,找到对应办公室 大吼一声:“尾号XXXX是哪位?您的外卖到了!!!” 订餐人:“这儿呐~我哒~~~” END

    作者回复: 赞

    7
    83
  • iceco1a
    网卡MAC码是由全球惟一的一个固定组织来分配的,未经认证和授权的厂家无权生产网卡。每块网卡都有一个固定的卡号,并且任何正规厂家生产的网卡上都直接标明了卡号,一般为一组12位的16进制数。其中前6位代表网卡的生产厂商。后面的位数是设备号。当然在操作系统级别改Mac地址又是一种说法。

    作者回复: 赞

    4
    60
  • LIU
    Mac是identify; IP是locate

    作者回复: 太棒了

    4
    52
  • 罗格
    十分感谢作者大大的回复,今天才看到不好意思,我自己后来发现还是有些疑问在纠结,查了许多相关资料还是没解决,又厚着脸皮来请教…… 一、文中说”每个城关都连着两个国家,”,又说“城关与城关之间是一个国家”,因为“城关是路由器,国家是局域网”,那关系就是“局域网—路由器—局域网—路由器—局域网”这样子吗? 二、"当网络包知道了下一步去哪个城关,还是要使用国家内部的mac地址",是因为上面路由器和局域网关系中的两个路由器都处于中间那个局域网中的原因所以可以使用arp协议获取对方的mac地址吗?还是上面说的OSPF协议呢(我查的资料里说OSPF获取的是链路状态,具体没说mac地址还是ip地址)? 三、“本地通讯基本kao吼”,ARP协议只在本地作用么?这个“本地”是指局域网还是什么? 四、我查阅的资料里说自治系统中是包含多个路由器的,而且通常一个自治系统也包含多个局域网,那一个局域网里会包含多个路由器吗?如果我第一个问题里的图成立的话那意味着每个局域网都有两个路由器? 上述四个问题困扰我许久,对我原来的认知产生了一些颠覆,还望作者大大不吝赐教,万分感谢……

    作者回复: 问题一,你的理解正确。问题二,去哪个网段应该怎么走,用ospf,也就是城关管理员直接交换信息用ospf,一旦一个包来到城关,就根据已知信息选择下一个城关,一旦选择了城关,就通过arp得到地址发送。问题三,本地是指局域网。问题四,一个局域网不会有多个路由器,局域网边界上是路由器

    10
    38
  • Geek-Leon
    有既不走UDP又不走TCP的应用层协议吗?

    作者回复: 有的,传输层大部分情况下是tcp和udp,但是也有其他的协议比如sctp

    35
  • Len
    除了网络分层基础之外,我想这个问题的主要原因是: 并不是每一个设备都有一个“物理”或“外网” IP,我们的目标 IP 可能是一个局域网。( 想想家里面每一台设备都间接的通过连接路由器上网,但是我们所有设备的外网出口 IP 都是同一个。) 当我们的数据包达到目标 IP 后,通过 Mac 地址送达到具体“局域网”的某台具体物理设备上。是这样吗?

    作者回复: 你的包出去的时候,会在外网网关nat一下,把私网地址改为公网地址,到达局域网的时候,是通过mac的,回来的时候,在你的那个网关再nat回来

    9
  • 云飞扬
    有点儿笼统,希望讲的再详细一点

    作者回复: 这是第一章,先给个大概的印象

    9
  • zhangc
    tcp重试有没有可能导致重复下单?

    作者回复: 不会的,就算http的重试也不应该导致重复下单,要求接口幂等

    3
    6
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部