网络协议底层拆解:IP、TCP/UDP 与 HTTP 作用及结构全解析

目录

IP、TCP/UDP、HTTP 协议作用与结构详解

下面用清晰、不啰嗦、结合结构的方式,一次性讲清:

IP 协议、TCP 协议、UDP 协议、HTTP 协议各自的作用,以及它们在结构上的定位。


一、整体结构位置(先看懂它们在哪)

TCP/IP 五层模型从上到下:

  1. 应用层 → HTTP
  2. 传输层 → TCP、UDP
  3. 网络层 → IP
  4. 数据链路层
  5. 物理层

一句话关系

HTTP 靠 TCP 可靠传输,TCP/UDP 靠 IP 寻址发送,IP 靠底层链路实际传送。

传统 HTTP 选 TCP(HTTP 完全可以跑在 TCP 上),是因为「可靠性优先」:HTTP 是文本协议,丢一个字节、乱序都会导致整个报文解析失败,TCP 帮 HTTP 解决了「怎么把数据完整送到」的问题,让 HTTP 可以只专注「业务格式」。


二、IP 协议(网络层)

作用

负责主机之间的寻址与路由,把数据包从一台电脑送到另一台电脑。

从结构看它做了什么

IP 报文头部包含:

  • 源 IP 地址
  • 目的 IP 地址
  • 协议号(标记上层是 TCP 还是 UDP)
  • 分片信息

结构决定功能

IP 只关心「发到哪」,不关心:

  • 丢没丢
  • 乱没乱序
  • 到没到

所以 IP 是不可靠、无连接的尽力交付协议。


三、UDP 协议(传输层)

作用

在 IP 的基础上,增加端口号,实现进程到进程的交付。

从结构看它做了什么

UDP 头部非常简单:

  • 源端口
  • 目的端口
  • 长度
  • 校验和

结构决定功能

  • 无连接
  • 不可靠
  • 速度快、开销小
  • 不重传、不排序、不握手

适合场景:视频通话、直播、DNS、游戏。


四、TCP 协议(传输层)

作用

在 IP 基础上,实现可靠、有序、面向连接的传输。

从结构看它做了什么

TCP 头部比 UDP 复杂得多:

  • 源端口 / 目的端口
  • 序号 (Seq)
  • 确认号 (Ack)
  • 窗口大小(流量控制)
  • 标志位 (SYN、ACK、FIN、RST 等)
  • 校验和

结构决定功能

  • 三次握手建立连接
  • 序号 + 确认号 → 保证有序、不丢失
  • 窗口 → 控制发送速度
  • 重传机制
  • 四次挥手断开

TCP 是可靠传输的基石。


五、HTTP 协议(应用层)

作用

定义浏览器 / 客户端与服务器之间如何交流数据,规定请求和响应的格式。

从结构看它做了什么

HTTP 是纯文本协议,结构非常直观:

请求结构
plaintext 复制代码
GET /index.html HTTP/1.1
Host: www.baidu.com
User-Agent: ...
(空行)
响应结构
plaintext 复制代码
HTTP/1.1 200 OK
Content-Type: text/html
(空行)
<html>...</html>

结构决定功能

  • 基于请求-响应模型
  • 无状态(不记住之前请求)
  • 明文传输(HTTPS 才加密)
  • 靠 TCP 保证可靠传输

HTTP 不关心网络怎么传,只关心业务数据格式。


六、一句话总结(最关键)

  • IP:负责找主机(地址 + 路由)
  • UDP:负责找进程(端口),快但不可靠
  • TCP:负责可靠传输(有序、不丢、重传)
  • HTTP:负责应用对话格式(网页、接口数据)

层级关系

HTTP → TCP → IP → 链路 → 物理

相关推荐
爱和冰阔落6 小时前
【Linux网络】TCP 半包粘包怎么解决?从长度报头、JSON 拆包到网络计算器完整实战
linux·运维·网络·tcp/ip
say_fall7 小时前
【Linux网络编程】UDP套接字编程:系统编程组件、基础回显服务、InetAddr与地址转换、翻译服务与线程池聊天室
linux·服务器·网络·udp·vr
我不会插花弄玉20 小时前
6.传输层协议UDP【由浅入深-网络】
网络·网络协议·udp
火云代理20 小时前
更换网络后为什么会退出登录?分清 IP、Cookie 与会话的关系
服务器·网络·网络协议·tcp/ip·php·ip
火云代理1 天前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖1 天前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
火云代理1 天前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
如夏倾城1 天前
QUIC——HTTP/3 的唯一底层传输协议 及 0-RTT恢复
网络·网络协议·tcp/ip·安全·http
略懂而已2 天前
安装SSL后网站速度变慢?
网络·网络协议·ssl
CodeYp20192 天前
第14讲:传输层协议 UDP
linux·udp