网络通信协议全解析:HTTP/UDP/TCP核心要点

网络通信协议知识笔记

一、HTTP协议基础

  1. HTTP(超文本传输协议):属于应用层协议,用于客户端与服务器之间传递文件和数据。
  2. 超链接与URL:URL(统一资源定位符)本质上通过 socket 通信实现资源访问。
  3. IP与域名:域名映射到唯一的 IP 地址,用于资源定位。
  4. 端口号:HTTP 默认端口为 80,HTTPS 为 443,端口固定且协议成熟。
  5. 资源路径:在 Linux 系统中,资源即文件,路径指向服务器上的具体文件。
  6. URL 编码与解码:浏览器端采用 urlencode,服务器端使用 urldecode 进行处理。

二、HTTP请求与响应流程

  1. B/S模式:浏览器(客户端)与服务器进行通信。
  2. 请求结构
    1. 第一行:请求行
    2. 后续:请求报头(属性字段)
    3. 空行分隔报头与有效载荷
    4. 数据部分:请求正文
  3. 响应结构
    1. 状态行
    2. 响应报头
    3. 响应正文
    4. content-Length:响应正文长度
  4. HTTP短链接与服务:HTTP 为客户端提供短服务,/ 表示 web 根目录(非 Linux 根目录),服务器自动拼接首页。

三、HTTP请求方式

  1. GET:参数通过 URI 提交,长度有限,参数会回显,不适合传递大量或敏感数据。
  2. POST:参数通过请求正文提交,适合长数据,更加私密,但同样不绝对安全。
  3. 安全性:HTTP 本身不安全,需结合其他安全机制使用。

四、会话与安全机制

  1. Cookie:实现免密登录、免密跳转。
  2. Session:提升安全性,主流方案为 Cookie + Session。
  3. HTTP微服务接口:采用 RESTful 风格设计。
  4. HTTP协议特性:无状态、无连接。

五、UDP协议要点

  1. UDP端口号:采用五元组标识,报头定长,端口号为 16 位。
  2. 数据报边界:报文间有明确边界,长度确定,面向用户数据报。

六、TCP协议详解

1. 报文结构与序号

  1. 报文大小:20~60 字节(5~15 个 4 字节块)
  2. 序号与确认序号:用于乱序处理和去重

2. 标志位功能

  1. SYN:建立连接
  2. ACK:确认应答
  3. FIN:断开连接
  4. PSH:提示应用程序读取数据
  5. RST:复位连接
  6. URG:紧急指针有效

3. 连接建立与断开

  1. 三次握手:SYN → SYN+ACK → ACK,确保全双工通信及双方意愿
  2. 四次挥手:双方均发送断开请求和应答,关闭两条信道,实现全双工断开

4. 连接管理与异常处理

  1. 主动断开方进入 TIME_WAIT,等待残留报文消散
  2. setsockopt() 可设置 SO_REUSEADDR,允许端口复用
  3. 半连接:关闭读/写实现单双工通信

七、TCP数据传输与控制

1. 丢包与重传

  1. 丢包类型:数据包丢失、应答丢失
  2. 超时重传与快重传机制,序号去重
  3. 滑动窗口:流量控制,窗口大小决定一次可发送数据量

2. 滑动窗口机制

  1. start=确认序号,end=start+win
  2. 窗口调整灵活,可为0但不能向左移动
  3. 自动重传与快重传配合提升效率

3. 流量与拥塞控制

  1. 16位窗口大小,窗口扩大因子
  2. 拥塞窗口算法:慢启动(指数增长)、线性增长(加法增大),临界值 ssthresh 初始值为16
  3. 滑动窗口=min(对方win, 拥塞窗口),动态调整发送速率

4. 延迟应答与粘包问题

  1. 延迟应答提升效率
  2. TCP面向字节流,需协议+序列化/反序列化解决粘包

八、总结与补充

  1. HTTP、UDP、TCP三大协议各有特点
  2. TCP通过三次握手和四次挥手保障连接可靠性
  3. 滑动窗口与拥塞控制提升数据传输效率与安全
  4. 会话机制(Cookie + Session)用于管理身份和安全

如需进一步学习或有疑问,欢迎留言交流!

九、HTTPS加密与安全机制

  1. HTTPS(TLS/SSL):是经过加密和解密的 HTTP。
  2. 对称加密:加密与解密密钥相同,加密速度快。
  3. 非对称加密:有两个密钥(公钥和私钥),算法复杂,加密速度慢。使用公钥加密,只能用私钥解密。
  4. 数据摘要与指纹:形成的数据具有唯一性。

常见加密方案:

  1. 只使用对称加密:双方无法同步密钥。
  2. 一方使用非对称加密:只能解决单向通信安全,运算速度慢。
  3. 双方都使用非对称加密:先交换公钥,用对方公钥加密,用自己私钥解密,速度慢。
  4. 非对称加密 + 对称加密:先用非对称加密协商密钥,再用对称加密通信,存在公钥合法性验证问题。
  5. 非对称加密 + 对称加密 + CA认证:三组密钥,双非一对,提升安全性。

签名与验证机制:

  1. 签名:数据散列摘要加密后形成签名,与数据一起附加。
  2. 验证:拆开数据,再散列成摘要,与解密后的摘要对比,判断数据完整性。
  3. 只有签名者(如 CA 机构)才拥有签名权力。
  4. 证书:一份明文数据,携带签名信息。
相关推荐
_Re.2 小时前
DSC 参数ARCH_HANG_FLAG对集群的影响
linux·服务器·数据库
望获linux3 小时前
【Linux基础知识系列:第一百三十九篇】使用Bash编写函数提升脚本功能
linux·运维·服务器·arm开发·chrome·性能优化·bash
Vizio<3 小时前
《基于物理仿真和学习潜投影的机器人触觉感知模拟到真实》ICRA2021论文解读
论文阅读·人工智能·学习·机器人·触觉传感器
BullSmall3 小时前
《道德经》第二章
学习
跨境小新3 小时前
沙特TikTok入驻攻略
网络
老师可可3 小时前
Excel学生成绩表,如何生成成绩分析报告?
经验分享·学习·小程序·excel·学习方法
hhhwx6663 小时前
Linux学习记录--利用信号量来调度共享资源(2)
linux·c语言·c++·学习
biubiubiu07063 小时前
coqui-ai/TTS 安装
linux·运维·服务器
打不了嗝 ᥬ᭄4 小时前
【Linux】UDP 网络编程
linux·运维·服务器