1. 概念
1. OSI 七层模型
OSI 七层模型是国际标准化组织(ISO)制定的网络通信分层架构参考标准,核心是将网络通信的复杂流程拆分为 7 个独立层级,每层负责特定功能,上下层之间通过接口协作,实现跨系统的标准化通信。

2. TCP/IP 模型
在实际应用中,我们对 OSI 七层模型做了简化,优化成了 TCP/IP 模型。
TCP/IP 是一组协议的代名词,它还包括许多协议,组成了 TCP/IP 协议簇。TCP/IP 通讯协议采用了 5 层的层级结构,每一层都调用它的下一层所提供的网络来完成自己的需求。
- 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞线)、早期以太网采用的同轴电缆(现在主要用于有线电视)、光纤,现在的 WiFi 无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。
- 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网、无线 LAN 等标准。交换机(Switch)工作在数据链路层。
- 网络层:负责地址管理和路由选择。例如在 IP 协议中,通过 IP 地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
- 传输层:负责两台主机之间的数据传输。如传输控制协议(TCP),能够确保数据可靠的从源主机发送到目标主机。
- 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。物理层我们考虑的比较少,因此很多时候也可以称为 TCP/IP 四层模型。

3. 认识 IP 地址
IP 协议有两个版本,IPv4 和 IPv6。我们整个的课程,凡是提到 IP 协议,没有特殊说明的,默认都是指 IPv4。
IP 地址是在 IP 协议中,用来标识网络中不同主机的地址。对于 IPv4 来说,IP 地址是一个 4 字节、32 位的整数。我们通常也使用'点分十进制'的字符串表示 IP 地址,例如 192.168.0.1。用点分割的每一个数字表示一个字节,范围是 0 - 255。
4. 认识 MAC 地址
MAC 地址用来识别数据链路层中相连的节点;长度为 48 位,即 6 个字节。一般用 16 进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)。在网卡出厂时就确定了,不能修改。MAC 地址通常是唯一的(虚拟机中的 MAC 地址不是真实的 MAC 地址,可能会冲突;也有些网卡支持用户配置 MAC 地址)。
5. IP 地址和 MAC 地址的区别
IP 地址和 MAC 地址的区别在于:MAC 地址是唯一的,但是 IP 地址只在局域网内是唯一的。
比如我们写信的时候一般要写收件地址+收件人。
- MAC 地址好比收件地址。
- IP 地址好比收件人。
MAC 地址就是网卡的物理地址。
我们网络中发送消息和写信不一样。网络中我们只要写好了内容和 IP 地址,操作系统会自动查询对应的 MAC 地址。
操作系统如何知道 IP 地址? 设备入网后根据 DHCP 协议会向外发送 DHCP 请求分配 IP 地址。
操作系统如何知道对方的 MAC 地址? 比如 A 给 B 发送消息,A 不会立即发送消息,而是先发送一份报文出去。其他不是对应 IP 地址的设备都会丢弃这份报文,只有对应 IP 地址的设备才会接收到这份报文并返回 MAC 地址。







