
TCP/IP协议计算机与网络设备之间要实现通信双方必须遵循统一的规则如何定位通信目标、由谁发起连接、用什么格式传输数据、何时结束通信…… 不同硬件、不同操作系统之间的所有交互都需要一套事先约定好的标准这套规则就称为协议ProtocolTCP/IP是互联网协议族的总称并非单指 TCP 和 IP 两个协议而是包含 TCP、UDP、IP、HTTP、FTP、ICMP、DNS、SMTP 等一系列协议的完整体系是整个互联网通信的基础。TCP/IP 采用四层分层模型每层各司其职应用层直接面向用户和应用程序提供具体的网络服务典型协议有 HTTP、FTP、DNS、SMTP 等。传输层负责端到端的数据传输控制对数据进行分段、封装与重组核心协议为 TCP 和 UDP。网络层负责路由选择与寻址将数据包从源主机送达目标主机核心协议为 IP、ICMP、ARP。链路层网络接口层负责物理网络上的数据帧封装与传输处理硬件地址寻址和比特流收发。然而TCP/IP 中有两个具有代表性的传输层协议----TCP 和 UDPTCP两台计算机进行通信时数据传输必须保证完整、有序、不丢失才能确保收发内容准确无误。比如浏览网页、收发邮件时我们希望内容按顺序完整呈现不能缺字少页下载文件时更需要拿到完整的文件而不是残缺的片段 —— 一旦数据丢失或顺序错乱结果都无法使用。TCP 协议正是为解决这一问题而设计的它提供可靠的端到端数据传输保证数据按序、完整地送达目的地。TCPTransmission Control Protocol传输控制协议是一种面向连接的、可靠的传输层协议是互联网数据传输的核心基石之一。核心特点1. 面向连接通信前必须通过三次握手建立连接确认双方收发能力正常后才开始传输数据传输结束后通过四次挥手有序断开确保连接生命周期完整可控。第一次握手客户端 → 服务端SYN客户端向服务端发送连接请求报文段SYN报文中携带客户端的初始序列号 ISNClient。发送完成后客户端进入SYN-SENT状态。作用客户端向服务端表明 我想建立连接同步客户端的初始序列号供后续数据传输编号使用验证服务端是否在线、能否接收数据。第二次握手服务端 → 客户端SYN ACK服务端收到连接请求后若同意连接则回复确认应答报文SYN ACKACK 确认号 客户端 ISN 1表示已收到客户端的 SYN同时携带服务端自身的初始序列号 ISNServer。发送完成后服务端进入SYN-RECEIVED状态。第三次握手客户端 → 服务端ACK客户端收到服务端的同意应答后再向服务端发送确认报文ACK确认号 服务端 ISN 1。发送完成后客户端进入ESTABLISHED状态服务端收到该 ACK 后也进入ESTABLISHED状态连接正式建立。作用告诉服务端 你的应答我收到了确认双方的发送、接收能力均正常双向通道畅通防止历史失效的连接请求误建连接迟到的旧 SYN 到达服务端时第三次握手能甄别并丢弃。三次握手的本质是双向确认双方收发能力同时同步各自的初始序列号为后续可靠传输打好基础。两次握手只能确认单向通路正常无法验证客户端的接收能力也无法抵御过期连接请求的干扰。2. 可靠交付TCP 通过一套完整机制保证数据不丢、不乱、不重复序列号 确认应答ACK每个字节都有编号接收方回复确认发送方据此判断数据是否成功送达超时重传发出的数据段启动计时器超时未收到确认则自动重发乱序重排 去重接收端按序列号整理数据乱序的缓存等待补齐重复的直接丢弃。3. 流量控制与拥塞控制滑动窗口接收方告知自身剩余缓存大小发送方据此控制发送速率避免接收端溢出拥塞控制通过慢启动、拥塞避免、快重传、快恢复等算法动态调整发送速度防止网络过载。TCP特点1. 面向连接发送数据前两端必须先通过三次握手建立可靠连接确认双方收发能力正常后再开始传输。连接的建立是数据可靠传输的前提和基础2. 仅支持单播传输每条 TCP 连接有且仅有两个端点只能进行点对点一对一传输不支持多播和广播。3. 面向字节流TCP 不保留应用层报文边界数据以连续的字节流形式传输而 UDP 则是面向报文的每个报文独立发送、独立接收。4. 可靠传输TCP 通过序列号 确认号 超时重传三重机制保障可靠性每个字节都分配唯一序号确保接收端按序交付接收端对已收到的数据回复 ACK 确认发送端若在合理往返时延RTT内未收到确认则判定数据丢失并自动重传。典型应用场景HTTP/HTTPS 网页浏览、文件下载、邮件收发、远程登录 SSH 等对数据完整性要求高的场景底层均基于 TCP 传输一句话总结TCP 像 打电话—— 先接通再说话说的每一句对方都要回应没听清就重说确保信息完整准确地传达到位UDPUDPUser Datagram Protocol用户数据报协议是一种无连接的传输层协议与 TCP 同处 OSI 模型第四层位于 IP 协议之上同样用于处理网络数据包的传输。与 TCP 不同UDP 不提供分组组装、顺序控制、确认应答和重传机制 —— 报文发出后无法得知对方是否收到、数据是否完整到达因此不保证可靠交付。它有以下几个特点1. 无连接发送数据前不需要建立连接直接发包即可也没有断开连接的过程。启动快、开销小想发就发。2. 不可靠交付没有确认应答ACK、没有超时重传、没有序列号排序发出去的包丢了就丢了发送方不会重发数据包到达顺序乱了UDP 也不会整理直接交给应用层不保证数据一定完整送达。3. 面向报文对应用层交下来的报文直接封装成 UDP 报文段后下发保留报文边界—— 发几次就是几个包不会合并也不会拆分。对比 TCP 是面向字节流没有边界4. 支持多种通信方式TCP 只能一对一单播而 UDP 支持单播一对一多播组播一对多广播一对全体5. 头部开销小UDP 首部仅8 字节源端口、目的端口、长度、校验和而 TCP 首部最少 20 字节。UDP 额外负担极小传输效率高。6. 没有拥塞控制和流量控制发送速率完全由应用层决定不管网络堵不堵、对方收不收得下该发多少就发多少。网络拥塞时不会主动降速。UDP 像 寄明信片写好直接投不用提前打招呼也不管对方收没收到、有没有损坏但速度快、成本低、形式灵活。TCPUDP是否连接面向连接无连接是否可靠可靠传输不使用流量传输和拥塞控制不可靠传输不使用流量传输和拥塞控制连接对象个数只能一对一支持一对一一对多多对一多对多交互通信传输方式面向字节流面向报文首部开销首部最小20字节最大60字节首部开支小只有8字节适用场景适用于要求可靠传输适用于实时应用总结TCP向上层提供面向连接的可靠服务 UDP向上层提供无连接不可靠服务。虽然 UDP 并没有 TCP 传输来的准确但是也能在很多实时性要求高的地方有所作为对数据准确性要求高速度可以相对较慢的可以选用TCPHTTP和HTTPSHTTP超文本传输协议与 HTTPS超文本传输安全协议作为应用层核心协议基于 TCP/IP 协议栈构建是浏览器等客户端与服务器之间实现数据通信的基础架构。一、HTTP超文本传输协议HTTPHyperText Transfer Protocol超文本传输协议是一种无状态的应用层协议用于在客户端与服务器之间传输超文本资源如 HTML 文档、图片、接口数据等。它定义了客户端如何发起资源请求、服务器如何返回响应是万维网数据通信的基础。1. 核心工作流程HTTP 基于 TCP/IP 协议栈构建采用经典的请求 - 响应模型完整流程分为四个阶段连接建立客户端通过 DNS 解析获取服务器 IP与服务端完成 TCP 三次握手建立可靠传输通道。请求发送客户端构造 HTTP 请求报文由请求行、请求头、空行、请求体四部分组成。服务端处理服务器解析请求、定位资源、执行业务逻辑生成响应报文返回。连接关闭HTTP/1.0 默认短连接请求完即断开HTTP/1.1 起默认支持持久连接Keep-Alive可复用 TCP 连接发送多次请求。2. 协议作用请求与响应客户端浏览器、APP 等通过 HTTP 请求获取网页、图片、接口等资源服务端通过 HTTP 响应返回数据。简单灵活协议格式简洁支持 GET、POST、PUT、DELETE 等多种请求方法可传输任意类型的数据。缓存机制内置缓存策略可大幅减少重复请求降低网络流量、提升响应速度。3. 核心特性无状态每个请求相互独立服务器默认不保存客户端上下文通过 Cookie / Session 机制实现状态保持。明文传输请求与响应以 ASCII 文本形式传输可被抓包工具直接读取存在安全隐患。可扩展支持自定义请求头如X-Forwarded-For方便扩展业务能力。多级缓存通过Cache-Control、ETag、Last-Modified等头部字段实现协商缓存与强制缓存策略。二、HTTPS超文本传输安全协议HTTPS 是 HTTP 的安全版本在 HTTP 的基础上加入 SSL/TLS 层来提供数据加密和身份验证功能即HTTPS HTTP SSL/TLS。1. HTTPS 协议作用HTTPSHyperText Transfer Protocol Secure超文本传输安全协议是在 HTTP 基础上加入 SSL/TLS 安全层的加密传输协议核心解决 HTTP 明文传输的安全隐患数据加密传输全程加密防止数据被中途窃取、窃听身份验证通过数字证书验证服务器真实身份防止中间人伪装攻击完整性校验数据一旦被篡改可立即识别确保内容完整可信隐私保护密码、银行卡号、个人信息等敏感数据传输全程加密不被泄露。2. SSL/TLS 安全层SSL/TLS 是位于 HTTP 与 TCP 之间的安全协议层。SSLSecure Sockets Layer安全套接字层是早期版本其继任者TLSTransport Layer Security传输层安全是当前主流标准二者统称 SSL/TLS。防护能力实现方式加密传输对称加密AES 非对称加密RSA/ECC混合加密身份认证基于 X.509 数字证书的信任链验证完整性校验HMAC 消息认证码检测数据是否被篡改防重放攻击序列号 随机数机制保障数据新鲜工作流程两大阶段① 握手阶段协商密钥客户端与服务器通过多轮交互完成协商加密算法与协议版本交换随机数与证书验证服务器身份协商并生成会话密钥对称密钥② 数据传输阶段加密通信握手完成后双方使用协商好的会话密钥发送方用会话密钥加密业务数据 → 附加 HMAC 校验码 → 发出接收方校验 HMAC 完整性 → 用同一会话密钥解密 → 交付上层应用整个过程确保通信内容机密、完整、可信在 HTTP 明文传输的基础上构建了完整的安全保障。三、HTTP vs HTTPS 全面对比1. 安全维度对比表格安全属性HTTPHTTPS数据加密明文传输抓包可直接读取AES-256 对称加密全程密文身份验证无无法确认对方真伪X.509 数字证书验证服务器身份完整性保护无数据可被篡改不被察觉HMAC-SHA256 校验篡改即失效防中间人攻击完全不可防护证书信任链可抵御中间人攻击HTTP数据以明文形式在网络中传输任何经过的网络节点都能查看甚至篡改内容不适合传输密码、银行卡号等敏感信息。HTTPS通过 SSL/TLS 对数据加密并校验完整性即使数据被截获也无法解密或篡改有效抵御窃听、篡改、伪装三类攻击。2. 其他维度对比表格对比项HTTPHTTPSURL 前缀http://开头https://开头默认端口80443证书要求无需证书必须部署有效的 SSL/TLS 证书浏览器标识地址栏无特殊标记部分浏览器标 不安全地址栏显示锁形图标标注 安全性能开销无额外加密损耗握手与加解密有少量计算开销3. HTTPS 性能优化实践HTTPS 的加密计算确实会带来一定开销但通过以下优化手段实际性能损耗可控制在5% 以内现代硬件下几乎无感知TLS 1.3 协议简化握手流程从 2-RTT 降至 1-RTT甚至支持 0-RTT 恢复会话恢复通过 Session ID / Session Ticket 复用之前的加密参数跳过完整握手OCSP Stapling服务器主动附带证书状态免去客户端单独查询 OCSP 的延迟HTTP/2 多路复用头部压缩 单连接并发减少连接数与传输数据量硬件加速支持 AES-NI 指令集的 CPU 可硬件级加速加密运算。依赖关系HTTP → TCPHTTP 明文直接跑在 TCP 上靠 TCP 的可靠传输保证请求响应不丢不乱公式HTTP 请求响应规则 TCP 可靠传输HTTPS → TLS → TCPHTTPS 比 HTTP 多了一层 TLS 加密先做 TLS 握手协商密钥再传 HTTP 数据公式HTTPS HTTP TLS 加密 TCP 可靠传输UDP 独立于 HTTP 体系外HTTP / HTTPS只基于 TCP不使用 UDPUDP 用于直播、语音通话、游戏、DNS 等对实时性要求高、可容忍少量丢包的场景HTTP 和 HTTPS 是应用层的两套 对话规则都跑在 TCP 这条 可靠管道 上HTTPS 比 HTTP 多套了一层 TLS 加密 保险箱UDP 是另一条 快速但不保送达 的管道走的是另一类业务。