开篇词
(1) 核心课程:
- 计算机组成原理
- 数据结构与算法
- 操作系统
- 计算机网络
- 编译原理
(2) 网络学习的痛点:
- 网络协议知识点太多,学完记不住
- 看上去懂了,但是经不住问
- 知识学会了,实际应用依旧不会
(3) 授课的三个角度
- 从身边常见的事情出发,用故事来讲各种网络协议,然后慢慢扩展到不熟悉的领域
- 用贴近场景的方式来讲解网络协议,将各个层次的关系穿起来,而非孤立地讲解某个概念
- 在讲解完各个层次的网络协议后,着重剖析如何在当下热门领域使用这些协议,比如云计算、容器和微服务
(4) 学习知识的方法和态度:看似最枯燥、最基础的东西往往具有最长久的生命力。
第一模块 通信协议综述
第1讲 | 为什么要学习网络协议
程序猿与计算机之间通过代码作为协议进行交互,代码本身也算是一种协议,唯有如此,计算机才能知道我们想让他做什么。
协议三要素
计算机语言作为程序员控制一台计算机工作的协议,具备了协议的三要素
- 语法:就是这一段内容要符合一定的规则和格式。例如:括号要成对,结束要使用分号等。
- 语义:就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。
- 顺序:就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值。
网络协议是指计算机之间的通信方式,让计算机互相协作共同来完成一件事情。
我们常用的网络协议有哪些?
DNS、HTTP、HTTPS --> 应用层
无连接的协议UDP、有连接的协议TCP --> 传输层
IP --> 网络层
ARP协议
路由协议:OSPF、BGP
RPC调用
小结
网络数据包结构:
MAC头、IP头、TCP头、HTTP头、数据体
网络五层模型:
问题
(1) 当网络包到达一个城关的时候,可以通过路由表得到下一个城关的 IP 地址,直接通过 IP 地址找就可以了,为什么还要通过本地的 MAC 地址呢?
答:
- mac地址是唯一的,为什么可以修改?想想身份证,身份证号是唯一的,不能改变的,但是可以造假。mac地址全球唯一,它是固化在网卡里的。网卡毕竟是个硬件,需要软件支持,既操作系统识别。重点来了,操作系统识别出来的mac地址是可以更改的,它只不过是一个字符串。我们常说的修改mac指的是修改电脑中记录的既注册表中的记录。
- 有了mac地址为什么还要有ip地址。举个例子,身份证号是你的唯一标识,不会重复,一落户就有(网卡一出厂就有mac)。现在我要和你通信(写信给你),地址用你的姓名+身份证,信能送到你手上吗?明显不能!身份证号前六位能定位你出生的县。mac地址前几位也可以定位生产厂家。但是你出生后会离开这个县(哪怕在这个县,也不能具体找到你)。所以一般写个人信息就要有出生地和现居地址了。
简单总结就是:IP可以定位,MAC可以标识身份