计算机网络学习记录之网络通讯原理
在 计算机网络的学习过程中,了解网络通讯原理是非常重要的,它有助于我们开发出更强大的网络应用程序。下面就来详细探讨一下互联网协议相关内容。
互联网协议概述
互联网协议主要解决两个关键问题:一是描述计算机应该如何接入 Internet,二是规定计算机通讯所遵从的标准。
OSI 七层协议
OSI 的全称是 Open System Interconnect,即开放式网络互联,简称为 OSI 通讯模型。它是由 ISO(国际化标准组织)在 1985 年定义的一种网络通讯模型,从硬件到软件再到通讯,都做了相对完善的规划。需要注意的是,下三层和硬件相关,中间的传输层和通讯紧密相关,上三层则和软件相关。
TCP 5 层模型
TCP 5 层模型包括物理层、数据链路层、网络层、传输层和应用层。
1. 物理层
计算机进行通讯需要借助媒介来搭建网络。硬件层面是通过电信号(0 和 1)来完成通讯的,其中 1 代表高电压,0 代表低电压。计算机底层只能使用 0/1 二进制进行通讯。
2. 数据链路层
单纯由物理层传输的 0 和 1 本身没有意义,必须是具有特定组合的 0 和 1 才行。数据链路层遵从以太网协议,它有以下规定:
- 传输时,数据以 “数据包” 的形式传输,称作 “帧”。每一帧分为 “帧头” 和 “数据” 两部分。
- 帧头(head)中包含源 MAC 地址、目标 MAC 地址以及数据类型。数据需要以字节(Byte)为单位进行传输,1M = 1024KB,1KB = 1024B(字节),一帧数据大概为 1KB。
- MAC 地址是网卡自带的唯一标识,由厂商分配。其中前 6 位代表生产厂商,后 6 位代表网卡生产序号。
ARP 协议(Address Resolution Protocol,地址解析协议)是在网络范围内寻找 MAC 地址的一种通讯协议,它采用广播模式通讯(就像调到特定频道后 24 小时接受信息一样)。其优点是能在一定范围内找到 MAC 地址,但缺点是无法应对数量庞大的通讯请求。
3. 网络层
由于以太协议采用广播通讯协议,导致全世界的电脑在任何时间都会接收到大量无效数据。为应对这一问题,采取的策略是划分子网。
网络层的作用就是划分网络,它遵从网络 IP 协议和网络地址相关规则。我们通过子网掩码来判断多个 IP 地址是否在同一子网范围内。
4. 传输层
计算机之间的通讯,本质上是应用软件和应用软件之间的通讯。
问:那么软件是如何区分不同的软件呢?
答:端口号
端口号的取值范围是 0 - 65535,其中 1024 以下为系统端口,比如 3306 是 MySQL 数据库端口,22 是 Linux 服务器端口,1521 是 Oracle 端口。
传输层的作用是建立端口到端口的通讯,主要有 TCP 协议和 UDP 协议。
TCP 协议:其特点是安全、可靠、高效,依赖连接,遵从一问一答模式,就好比我们和 AI 进行提问交流一样。
TCP 协议通讯时的步骤如下:
- 建立连接:包含三次握手。第 1 次,客户端发起请求,请求建立连接;第 2 次,服务器返回响应,告知客户端服务器状态正常;第 3 次,客户端再次发起请求,告诉服务器客户端状态正常。
- 数据传输:在连接建立后进行数据的传输。
- 关闭连接:遵从 四 次挥手。第 1 次,客户端发起请求,请求断开连接;第 2 次,服务端返回响应,告知客户端服务器已知晓;第 3 次,服务器再次返回响应,告诉客户端可以正式断开;第 4 次,客户端发送消息,正式断开连接。
- UDP 协议:类似于发短信、发邮件、邮寄信封,无法保证数据在传输过程中的实时性和可靠性。因此,绝大多数的应用软件底层在传输时都使用 TCP 协议。由于 TCP 协议底层需要使用 IP 协议,所以也被称为 TCP/IP 协议。
5. 应用层
HTTP 协议是 Web 系统遵从的协议。
通过对网络通讯原理中互联网协议的学习,我们对计算机网络通讯的底层机制有了更清晰的认识,