
一、计算机网络背景
在现实世界中,人之间需要协作,计算机作为人的工具,也需要协作。人之间可以直接面对面通信,而计算机之间则需要通过网络进行协作。
网络的发展过程大致如下:

最初每个计算机相互独立,数据共享依赖软盘等硬件,效率低下。随后出现网络,多个计算机数据可上传至服务器,无需硬件传输。随着计算机数量增加,交换机和路由器出现,形成局域网(LAN),支持不同地区通信。最后将多个局域网合并为广域网(WAN),覆盖范围更广。
二、初识协议
'协议'简单理解就是一种约定。计算机之间的传输介质是光信号和电信号,通过频率和强弱标识 0 和 1。为了让接收方知道信息含义,双方需约定数据格式,这就是协议。
仅约定基本协议不够,还需制定更细致的规则,让不同厂商、操作系统、硬件设备的计算机都能互相通信,即网络协议。一般由具有定制资格的组织或公司制定标准。
三、协议分层
3.1 软件分层的好处
协议本质也是软件,设计为层状结构以实现模块化和解耦合。例如基类与子类,修改子类即可改变功能而不影响基类。分层可降低软件维护成本。
以打电话为例,语言层用汉语沟通,通信设备层有各自的协议解码信息。只要遵守相应协议,变更某一层不影响通信。
3.2 OSI 七层模型
OSI(Open System Interconnection)开放系统互连参考模型是一个逻辑上的定义和规范。


OSI 七层模型非常完善,但在实际操作中,会话层和表示层难以接入操作系统,工程实践中最终落地的是五层协议。
3.3 TCP/IP 五层(或四层)模型
TCP/IP 是一组协议的代名词,包括许多协议组成协议簇。

它将应用层、表示层和会话层合并为应用层。
四、再识协议
4.1 为什么要有 TCP/IP 协议?
单机情况下计算机内部也有协议(如 USB 协议)。但网络通信距离变长会引发新问题:如何发送数据给目标主机、如何定位主机、数据丢失怎么办、接收方如何处理数据。












