网络通信之基础知识
一、什么是计算机网络?
计算机网络是指由若干主机、通信链路和网络设备(如路由器、交换机等)组成的系统,借助通信协议,实现信息共享和资源互联。
其本质是:多台设备之间通过协议进行数据交换。
二、网络协议与分层思想
2.1 为什么要分层?
简化复杂系统的设计
各层职责清晰、可独立开发与维护
不同协议之间解耦,提高可移植性与可替换性
2.2 常见的网络模型
模型 层数 特点 OSI 模型 7 理论模型,标准化程度高,用于理论研究 五层模型 5 实用简化模型,更贴近 TCP/IP 实现 TCP/IP 模型 4 实际部署中广泛采用,协议主导 ![]()
名称 作用说明 应用层 面向用户,提供网络应用接口,如浏览网页、发邮件、下载文件。如HTTP、FTP、SMTP、DNS。 表示层 处理数据表现形式,进行编码转换、加密/解密、压缩/解压,确保不同系统间可识别数据格式。如:SSL/TLS 加密、ASCII、UTF-8。 会话层 管理会话/对话连接,负责建立、维护和终止通信会话。支持会话恢复和同步。协议示例:NetBIOS、RPC。 传输层 提供端到端可靠或不可靠的数据传输,包括流量控制、差错检测、重传机制、数据排序。协议:TCP(可靠)、UDP(不可靠)。 网络层 实现主机间通信,负责逻辑地址(IP)分配和路径选择(路由),让数据跨网段传输。如:IP、ICMP。 数据链路层 局域网中节点间通信,将网络层数据封装成帧,加入 MAC 地址,进行差错检测与纠正。协议:Ethernet等 物理层 负责比特流在物理介质上传输,如电信号、光信号、无线信号等。规定电气标准、接口类型。如:网线、光纤、网卡。
三、OSI模型与TCP/IP模型的比较
四、以太网协议
以太网协议:是一种使用广泛的局域网技术,是一种应用于数据链路层的协议,使用以太网可以完成相邻设备的数据帧传输:
以太网帧结构:
- 类型:标识上层协议(2字节)
- 目的地址和源地址:MAC地址(每个6字节)
- 数据:封装的上层协议的分组(46~1500字节)
- CRC:循环冗余码(4字节)
- 以太网最短帧:以太网帧最短64字节(其中数据最短46字节);
MAC地址:
- MAC地址长度为6字节,48位;
- MAC地址具有唯一性,每个网络适配器对应一个MAC地址;
- 通常采用十六进制表示法,每个字节表示一个十六进制数,用 - 或 : 连接起来;
- MAC广播地址:FF-FF-FF-FF-FF-FF。
五、HTTP 与 HTTPS 协议
4.1 HTTP 是什么?
HTTP(HyperText Transfer Protocol) 是 Web 通信的核心协议。
位于 应用层。
特点:
无状态:每个请求独立
明文传输:安全性差
基于 TCP 传输,端口号默认 80
4.2 HTTPS 是什么?
HTTPS = HTTP + TLS/SSL 加密层
加密通信:防止窃听和中间人攻击
使用证书验证身份(X.509 证书)
默认端口 443
位于 应用层 + 表示层(加密处理在表示层逻辑)
4.3 HTTP vs HTTPS 对比
特性 | HTTP | HTTPS |
---|---|---|
安全性 | 无加密,易被窃听 | 加密传输,支持身份认证 |
端口 | 80 | 443 |
协议栈位置 | 应用层 | 应用层 + 加密逻辑 |
性能 | 更快 | 多一次握手、加密计算稍慢 |
4.4 HTTP状态码
状态码 | 类型 | 含义 | 常见场景/说明 |
---|---|---|---|
200 | 成功 | 请求成功,返回预期响应内容 | GET/POST 请求成功 |
201 | 成功 | 成功创建资源 | POST 提交新数据(如用户注册、上传) |
204 | 成功 | 请求成功,但无响应内容 | DELETE 请求成功,无需返回内容 |
301 | 重定向 | 永久重定向 | 页面永久迁移,新 URL 更新 |
302 | 重定向 | 临时重定向 | 登录后跳转原页面 |
304 | 缓存优化 | 资源未修改,使用本地缓存 | 浏览器缓存机制,结合 ETag 使用 |
400 | 客户端错误 | 请求格式错误或参数无效 | 请求参数错误、JSON 格式异常 |
401 | 客户端错误 | 未认证,需登录 | JWT 过期、Token 缺失、用户未登录 |
403 | 客户端错误 | 已登录但无权限访问 | 权限不足、越权访问 |
404 | 客户端错误 | 请求资源不存在 | 接口路径错误,路由未定义 |
405 | 客户端错误 | 请求方法不允许 | POST 请求了一个只允许 GET 的接口 |
429 | 客户端错误 | 请求过于频繁 | 接口限流、反爬虫保护 |
500 | 服务端错误 | 服务器内部错误 | 未处理的异常、代码崩溃 |
502 | 服务端错误 | 网关错误 | 反向代理连接后端服务失败(如 Nginx) |
503 | 服务端错误 | 服务暂时不可用 | 应用维护中、限流熔断中 |
504 | 服务端错误 | 网关超时 | 后端超时,代理层(如 Nginx)响应超时错误 |
六、比特(bit)与字节(Byte)
1、定义
- 比特:二进制数系统中,每个0或1就是一个位(bit)。位是数据存储(计算机中信息)的最小单位。计算机中的CPU位数指的是CPU一次能处理的最大位数。
- 字节:8比特就称为一个字节, 即1Byte=8bit,是计算机中信息的基本单位。
2、基础关系