媒介
TCP/IP是一种面向毗连,可靠的传输,传输数据大小无限定的。通常情况下,体系与体系之间的http毗连需要三次握手和四次挥手,这个实行过程会产生等待时间。这方面在日常开辟时需要注意一下。
TCP/IP 是互联网的核心协议族,定义了数据怎样在网络中进行传输、路由和接收。其设计遵循分层模子(四层或五层),各层独立工作,通过协议协同实现端到端通信。以下章节是其核心原理的逐层解析。
一、TCP/IP 分层模子
分层核心功能典型协议应用层提供用户接口和应用程序服务HTTP、FTP、DNS、SMTP、MQTT传输层提供端到端的数据传输控制TCP(可靠)、UDP(不可靠)网络层负责数据包的路由和寻址IP、ICMP、ARP、OSPF、BGP链路层管理物理介质上的数据帧传输Ethernet、Wi-Fi(802.11)、PPP 二、网络层(IP 协议)
1. IP 协议的核心功能
- 寻址:通过 IP 地点(IPv4 32位,IPv6 128位)唯一标识网络中的设备。
- 路由:根据路由表选择最佳路径,将数据包从源主机转到达目标主机。
- 分片与重组:根据 MTU(最大传输单位) 拆分大数据包,接收端重组。
2. IP 数据包格式
总体上可分为控制信息,与数据体,控制信息包罗原地点、目的地点。 首部校验和是对数据进行校验,以保证数据的可靠性。
- | 版本 (4) | 首部长度 (4) | 服务类型 (8) | 总长度 (16) |
- | 标识 (16) | 标志 (3) | 片偏移 (13) |
- | 生存时间 TTL (8) | 协议 (8) | 首部校验和 (16) |
- | 源 IP 地址 (32) |
- | 目标 IP 地址 (32) |
- | 选项(可选) |
- | 数据(Payload) |
复制代码
- 关键字段:
- TTL(Time To Live):每经过一个路由器减1,防止数据包无限循环。
- 协议字段:标识上层协议(如 TCP=6,UDP=17)。
3. 路由机制
- 静态路由:手动设置路由表。
- 动态路由协议:
- 内部网关协议(IGP):如 OSPF(基于链路状态)、RIP(基于距离向量)。
- 外部网关协议(EGP):如 BGP(用于跨自治体系路由)。
三、传输层(TCP/UDP)
1. TCP(传输控制协议)
- 核心特性:
- 面向毗连:通过三次握手建立毗连,四次挥手开释毗连。
- 可靠传输:通过序列号、确认应答、超时重传保证数据完整。
- 流量控制:通过滑动窗口机制动态调整发送速率。
- 拥塞控制:通过慢启动、拥塞避免、快重传、快规复算法避免网络过载。
TCP 三次握手(建立毗连)
- 1. Client → Server:SYN=1, Seq=x
- 2. Server → Client:SYN=1, ACK=1, Seq=y, Ack=x+1
- 3. Client → Server:ACK=1, Seq=x+1, Ack=y+1
复制代码
TCP 四次挥手(开释毗连)
- 1. Client → Server:FIN=1, Seq=u
- 2. Server → Client:ACK=1, Ack=u+1
- 3. Server → Client:FIN=1, Seq=v, Ack=u+1
- 4. Client → Server:ACK=1, Seq=u+1, Ack=v+1
复制代码
TCP 滑动窗口
- 原理:接收方通过窗口大小告知发送方可接收的数据量,实现动态流量控制。
拥塞控制算法
- 慢启动:初始窗口指数增长,直到阈值或出现丢包。
- 拥塞避免:窗口线性增长,谨慎探测带宽上限。
- 快重传:收到3个重复ACK时立即重传丢失报文。
- 快规复:丢包后窗口降为阈值,而非重置为1。
2. UDP(用户数据报协议)
- 核心特性:
- 无毗连:无需建立毗连,直接发送数据。
- 不可靠:不保证数据到达序次或是否丢失。
- 低开销:首部仅8字节(TCP首部20字节+选项)。
- 适用场景:实时音视频、DNS查询、物联网传感器数据。
四、应用层协议
1. HTTP(超文本传输协议)
- 无状态协议:每次哀求独立,依靠 Cookie/Session 维持状态。
- 方法:GET、POST、PUT、DELETE 等。
- 版本演进:
- HTTP/1.1:持久毗连、管道化。
- HTTP/2:多路复用、头部压缩。
- HTTP/3:基于 QUIC(UDP),办理队头阻塞。
2. DNS(域名解析协议)
- 功能:将域名(如 www.example.com)解析为 IP 地点。
- 查询过程:递归查询(客户端→本地DNS→根DNS→权威DNS)。
3. MQTT(物联网消息协议)
- 特点:轻量级、发布-订阅模式,得当低带宽、高延迟环境。
五、关键辅助协议
1. ARP(地点解析协议)
- 功能:通过 IP 地点查询 MAC 地点。
- 过程:广播 ARP 哀求,目标主机单播回复。
2. ICMP(互联网控制消息协议)
- 功能:转达网络错误信息(如 ping 基于 ICMP Echo Request/Reply)。
- 典型应用:Traceroute 诊断网络路径。
六、数据封装与分用
1. 数据封装流程(发送端)
- 应用层数据 → 添加TCP/UDP首部 → 添加IP首部 → 添加帧头帧尾 → 物理比特流
复制代码 2. 数据分用流程(接收端)
- 物理比特流 → 解析帧头 → 解析IP首部 → 解析TCP/UDP首部 → 交付应用层
复制代码 七、TCP/IP 的典型问题与优化
1. 粘包与拆包
- 原因:TCP 是字节流协议,无消息界限。
- 办理方案:
- 定长消息。
- 分隔符(如 \n)。
- 消息头声明长度(如 HTTP 的 Content-Length)。
2. NAT(网络地点转换)
- 功能:将私有 IP 映射为公网 IP,办理 IPv4 地点不足。
- 范例:静态 NAT、动态 NAT、PAT(端口复用)。
3. 性能优化
- TCP 优化:调整窗口大小、启用快速打开(TFO)。
- HTTP 优化:启用持久毗连、压缩、缓存。
总结:TCP/IP 的设计哲学
- 分层解耦:各层独立演进,互不影响(如 HTTP/3 替换 TCP 为 QUIC)。
- 端到端原则:复杂逻辑尽量放在终端,保持网络核心简单高效。
- 鲁棒性:通过冗余(如多路径路由)、容错(如重传)保障可靠性。
理解 TCP/IP 协议原理,是把握网络编程、运维和架构设计的基础。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |