TCP/IP和UDP协议的发展历程
TCP/IP和UDP协议的发展历程
引言
互联网的发展史是人类技术创新的辉煌篇章,而在这一发展过程中,通信协议发挥了奠基性的作用。TCP/IP(传输控制协议/互联网协议)和UDP(用户数据报协议)作为互联网通信的基础协议,支撑着我们今天使用的几乎所有网络服务。本文将深入探讨这两个关键协议的发展历程、技术特点、应用场景以及未来趋势,以期对互联网的基础设施有更全面的认识。
在数字通信网络的早期阶段,各种计算机系统和网络使用不同的协议进行通信,导致互操作性差,信息交换困难。TCP/IP协议族的出现,为异构网络间的无缝通信提供了标准化解决方案,成为互联网发展的关键推动力。同时,UDP作为TCP的轻量级替代方案,在特定应用场景中提供了更高效的数据传输机制。这两种协议的共存与互补,构成了现代互联网通信的基础框架。
TCP/IP和UDP的技术特性
TCP协议的核心特性
传输控制协议(TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。其核心特性包括:
-
面向连接:通信双方在数据传输前需要建立连接,传输完成后需要断开连接。这种连接是逻辑上的,通过三次握手建立,四次挥手断开。
-
可靠传输:TCP使用序列号、确认应答、超时重传等机制保证数据的可靠传输。发送端为每个数据包分配序列号,接收端收到后返回确认应答。若发送端在一定时间内未收到确认,则重新发送该数据包。
-
流量控制:通过滑动窗口机制,接收方可以告知发送方自己的接收能力,避免发送方发送数据过快导致接收方缓冲区溢出。
-
拥塞控制:TCP通过慢启动、拥塞避免、快速重传和快速恢复等算法,动态调整发送速率,避免网络拥塞。
-
字节流服务:TCP将应用层数据视为无结构的字节流,不保留应用层的消息边界。
-
全双工通信:支持数据在两个方向上同时传输。

UDP协议的核心特性
用户数据报协议(UDP)是一种无连接的传输层协议,提供简单的不可靠数据传输服务。其核心特性包括:
-
无连接:UDP不需要在数据传输前建立连接,也不需要在传输后断开连接,减少了延迟和开销。
-
不保证可靠性:UDP不使用确认应答、超时重传等机制,数据包可能会丢失、重复或失序,且不会通知发送方。
-
无流量控制与拥塞控制:UDP不会因为网络拥塞而降低发送速率,可能导致网络拥塞恶化,但也使其在实时应用中表现更好。
-
保留消息边界:UDP保留应用层的消息边界,一次发送的数据在接收时仍然是一个完整的数据包。
-
支持多播和广播:UDP支持一对多的通信模式,适用于流媒体和网络游戏等应用。
-
头部开销小:UDP头部仅包含源端口、目标端口、长度和校验和四个字段,总共8个字节,远小于TCP的20字节基本头部。

TCP与UDP的主要区别
下表详细比较了TCP和UDP在各方面的区别:
| 特性 | TCP | UDP |
|---|---|---|
| 连接性 | 面向连接 | 无连接 |
| 可靠性 | 可靠传输,保证数据完整性 | 不可靠传输,可能丢包 |
| 传输方式 | 字节流 | 数据报文 |
| 消息边界 | 不保留消息边界 | 保留消息边界 |
| 传输速度 | 相对较慢 | 相对较快 |
| 头部大小 | 20-60字节 | 8字节 |
| 流量控制 | 有(滑动窗口) | 无 |
| 拥塞控制 | 有(多种算法) | 无 |
| 顺序保证 | 保证顺序 | 不保证顺序 |
| 应用场景 | Web浏览、邮件、文件传输 | 流媒体、DNS、VoIP、游戏 |
| 建立连接 | 三次握手 | 不需要建立连接 |
| 断开连接 | 四次挥手 | 不需要断开连接 |
| 状态维护 | 需要维护连接状态 | 无状态 |
| 资源消耗 | 较高 | 较低 |
| 广播支持 | 不支持 | 支持 |
TCP/IP和UDP的应用场景
TCP主要应用场景
TCP凭借其可靠传输的特性,在以下应用场景中被广泛采用:
-
Web浏览:HTTP/HTTPS协议构建在TCP之上,用于网页浏览,确保网页内容的完整和正确传输。
-
文件传输:FTP、SFTP等文件传输协议使用TCP,确保文件在传输过程中不会丢失或损坏。
-
电子邮件:SMTP、POP3、IMAP等电子邮件协议基于TCP,保证邮件内容的完整性。
-
远程终端:SSH、Telnet等远程终端协议使用TCP,确保命令和响应的准确传输。
-
数据库访问:几乎所有数据库访问协议都使用TCP,确保数据的一致性和完整性。
-
流媒体(需缓冲的):一些对可靠性要求高的流媒体应用,尤其是那些可以接受一定延迟的场景。
UDP主要应用场景
UDP的低延迟和实时性特点,使其在以下场景中表现优异:
-
实时流媒体:音视频直播、IP电话(VoIP)、视频会议等对实时性要求高的应用。
-
在线游戏:特别是多人实时游戏,需要快速传递玩家状态和动作信息。
-
域名解析:DNS服务主要使用UDP进行域名查询,因为查询通常简短且需要快速响应。
-
网络时间同步:NTP(网络时间协议)使用UDP来同步计算机时钟。
-
IoT设备通信:物联网设备通常资源有限,使用轻量级的UDP进行通信可以节省资源。
-
广播和多播应用:如IPTV等需要向多个接收者同时发送数据的场景。
常见应用协议及其使用的传输层协议
下表列出了一些常见的应用层协议及其使用的传输层协议:
| 应用协议 | 传输协议 | 默认端口 | 主要用途 |
|---|---|---|---|
| HTTP/HTTPS | TCP | 80/443 | 网页浏览 |
| FTP | TCP | 20/21 | 文件传输 |
| SMTP | TCP | 25 | 发送电子邮件 |
| POP3 | TCP | 110 | 接收电子邮件 |
| IMAP | TCP | 143 | 接收电子邮件 |
| SSH | TCP | 22 | 安全远程登录 |
| Telnet | TCP | 23 | 远程登录 |
| DNS | UDP/TCP | 53 | 域名解析 |
| DHCP | UDP | 67/68 | 动态主机配置 |
| TFTP | UDP | 69 | 简单文件传输 |
| SNMP | UDP | 161/162 | 网络管理 |
| RTP | UDP | 可变 | 实时传输(音视频) |
| SIP | UDP/TCP | 5060/5061 | 会话初始化(VoIP) |
| NTP | UDP | 123 | 网络时间同步 |
| QUIC | UDP | 443 | 快速网页加载(HTTP/3) |

TCP/IP和UDP的演进与发展趋势
IPv4到IPv6的迁移
IPv4定义于1981年,使用32位地址空间,理论上可以支持约43亿个唯一IP地址。随着互联网的迅猛发展,IPv4地址空间面临枯竭的问题。为解决这一问题,IPv6于1998年标准化,提供了128位地址空间,理论上可以支持约340万亿亿亿个地址。
IPv6不仅仅是地址空间的扩展,还带来了多方面的改进:
-
简化的头部格式:IPv6头部固定长度,提高了路由处理效率。
-
内置的安全性:IPv6在设计中集成了IPsec,提供网络层的安全性。
-
改进的组播支持:IPv6改进了组播的实现,并引入了新的"任播"概念。
-
无需NAT:充足的地址空间使得NAT(网络地址转换)不再必要,恢复了端到端通信模型。
-
自动配置:IPv6支持无状态地址自动配置,减少了配置负担。
尽管IPv6带来了众多优势,但全球范围内从IPv4到IPv6的过渡进程仍在进行中,主要采用双栈技术(同时支持IPv4和IPv6)、隧道技术和转换技术来实现平滑迁移。
TCP的演进和优化
TCP自标准化以来经历了多次演进,关键改进包括:
-
拥塞控制算法的改进:从最初的Tahoe算法,到Reno、New Reno,再到如今广泛使用的CUBIC、BBR等算法,TCP的拥塞控制机制不断优化,以适应不同的网络环境。
-
快速打开(TCP Fast Open, TFO):允许在TCP握手阶段就发送数据,减少连接建立的延迟。
-
选择性确认(Selective Acknowledgment, SACK):允许接收方只确认接收到的TCP段,而不是累积确认,提高了数据丢失情况下的重传效率。
-
时间戳选项:提供了更精确的往返时间(RTT)测量,改进了超时和重传机制。
-
窗口缩放选项:允许窗口大小超过16位字段的限制,支持更高的吞吐量。
-
显式拥塞通知(ECN):允许路由器在拥塞即将发生时通知端点,而不是等到丢包发生。
UDP的新应用与QUIC协议
随着实时应用的普及,UDP的重要性日益提升。特别是在2012年,Google提出了基于UDP的新协议QUIC(Quick UDP Internet Connections),后来成为HTTP/3的基础。QUIC结合了TCP和UDP的优点:
-
建立在UDP之上:利用UDP的低延迟特性,避免了TCP握手的开销。
-
集成TLS安全:内置加密,简化了安全实现。
-
多路复用:在单个连接上支持多个数据流,避免了队头阻塞问题。
-
改进的拥塞控制:实现了类似TCP的拥塞控制,但更为灵活和创新。
-
连接迁移:支持客户端IP地址变化时保持连接,有利于移动设备。
QUIC的成功表明,基于UDP构建的高层协议可以提供类似TCP的可靠性,同时保持UDP的低延迟优势,这代表了传输协议的一个重要发展方向。
物联网和5G时代的协议适应
随着物联网(IoT)和5G技术的发展,传输协议面临新的挑战和机遇:
-
轻量级协议:为资源受限的IoT设备设计的MQTT、CoAP等协议,在保持可靠性的同时降低了开销。
-
时间敏感网络(TSN):为工业物联网设计的确定性网络技术,提供严格的延迟和抖动保证。
-
多路径TCP(MPTCP):允许TCP连接同时使用多个网络路径,提高可靠性和吞吐量。
-
边缘计算优化:协议正在适应边缘计算架构,减少与云端的通信延迟。
-
切片感知协议:适应5G网络切片技术,根据不同服务类型优化传输行为。
网络协议的安全考量
TCP/IP的安全挑战
TCP/IP设计之初并未充分考虑安全性,这导致了一系列安全挑战:
-
TCP SYN洪水攻击:攻击者发送大量SYN包但不完成握手,耗尽服务器资源。
-
IP欺骗:攻击者伪造源IP地址,隐藏自己的身份或实施反射攻击。
-
会话劫持:攻击者通过预测序列号,劫持已建立的TCP连接。
-
中间人攻击:攻击者位于通信双方中间,可以监听或修改传输的数据。
-
分片攻击:通过特殊构造的IP分片,绕过防火墙或导致目标系统崩溃。
安全增强措施
为应对这些挑战,多种安全增强措施被开发出来:
-
IPsec:提供网络层的认证和加密,保护IP数据包的安全。
-
TLS/SSL:在应用层和传输层之间提供加密和认证,是HTTPS等安全协议的基础。
-
SYN cookies:抵御SYN洪水攻击的技术,避免在握手完成前分配资源。
-
DNS安全扩展(DNSSEC):通过数字签名验证DNS记录的真实性,防止DNS欺骗。
-
随机初始序列号:降低序列号被预测的风险,防止会话劫持。
-
端口随机化:客户端使用随机源端口,增加攻击者猜测的难度。
未来网络安全趋势
网络安全的发展趋势包括:
-
零信任网络:假设网络永远不安全,每次访问都需要验证身份和授权。
-
量子安全协议:应对量子计算对现有加密算法的威胁。
-
AI辅助安全:使用人工智能检测和应对网络攻击。
-
区块链应用:利用分布式账本技术增强身份验证和数据完整性。
-
安全即代码:将安全策略作为代码管理,实现自动化和一致性。
总结与展望
协议演进的重要里程碑
TCP/IP和UDP的发展历程中,有几个关键的里程碑事件值得回顾:
| 年份 | 事件 | 重要性 |
|---|---|---|
| 1969 | ARPANET建立 | 第一个分组交换网络,互联网的前身 |
| 1974 | TCP/IP概念提出 | 奠定了互联网的基础架构 |
| 1978 | TCP和IP分离 | 确立了分层网络架构的理念 |
| 1981 | IPv4标准化 | 定义了互联网主要使用的IP版本 |
| 1982 | TCP和UDP标准化 | 确立了两个主要传输协议 |
| 1983 | ARPANET转向TCP/IP | TCP/IP成为互联网的核心协议 |
| 1989 | WWW概念提出 | Web应用成为TCP/IP最成功的应用 |
| 1998 | IPv6标准化 | 解决IP地址短缺问题 |
| 2012 | QUIC协议提出 | 基于UDP的现代传输协议 |
| 2022 | HTTP/3标准化 | 基于QUIC的HTTP新版本 |
未来发展趋势
展望未来,TCP/IP和UDP的发展可能遵循以下趋势:
-
协议融合:传输协议将继续融合TCP和UDP的优势,如QUIC所示,实现可靠性与低延迟的平衡。
-
自适应优化:协议将更加智能,能够自动适应不同的网络条件和应用需求。
-
专用协议减少:通用协议框架将增加可配置性,减少对专用协议的需求。
-
安全性内置:安全将不再是附加功能,而是协议设计的核心考量。
-
垂直整合:网络协议将更加关注特定垂直领域的需求,如工业物联网、车联网等。
-
可编程网络:软件定义网络(SDN)和网络功能虚拟化(NFV)将使网络协议更加灵活可配置。
-
边缘智能:协议将适应边缘计算的兴起,优化边缘节点之间的通信。
结语
TCP/IP和UDP作为互联网的基础协议,已经走过了半个世纪的发展历程。从最初连接少数几台计算机的实验网络,到如今支撑着全球数十亿设备互联的技术基础,这些协议展现了令人惊叹的适应性和可扩展性。
尽管技术在不断革新,新的协议和标准层出不穷,但TCP/IP协议族的核心理念——分层设计、端到端原则、尽力而为服务——仍然影响着现代网络的发展。随着物联网、5G、边缘计算等新技术的兴起,我们有理由相信,这些基础协议将继续演进,适应新的需求,并在可预见的未来继续作为数字世界的通信基石。
相关文章:
TCP/IP和UDP协议的发展历程
TCP/IP和UDP协议的发展历程 引言 互联网的发展史是人类技术创新的辉煌篇章,而在这一发展过程中,通信协议发挥了奠基性的作用。TCP/IP(传输控制协议/互联网协议)和UDP(用户数据报协议)作为互联网通信的基础…...
Function Calling的时序图(含示例)
🧍 用户: 发起请求,输入 prompt(比如:“请告诉我北京的天气”)。 🟪 应用: 将用户输入的 prompt 和函数定义(包括函数名、参数结构等)一起发给 OpenAI。 …...
DICOM通讯(ACSE->DIMSE->Worklist)
DICOM 通讯协议中的 ACSE → DIMSE → Worklist 这条通讯链路。DICOM 通讯栈本身是一个多层的协议结构,就像 OSI 模型一样,逐层封装功能。 一、DICOM 通讯协议栈总体架构 DICOM 通讯使用 TCP/IP 建立连接,其上面封装了多个协议层次…...
若依框架修改左侧菜单栏默认选中颜色
1.variables.sacc中修改为想要的颜色 2.给目标设置使用的颜色...
搜广推校招面经七十八
字节推荐算法 一、实习项目:多任务模型中的每个任务都是做什么?怎么确定每个loss的权重 这个根据实际情况来吧。如果实习时候用了moe,就可能被问到。 loss权重的话,直接根据任务的重要性吧。。。 二、特征重要性怎么判断的&…...
广搜bfs-P1443 马的遍历
P1443 马的遍历 题目来源-洛谷 题意 要求马到达棋盘上任意一个点最少要走几步 思路 国际棋盘规则是马的走法是-日字形,也称走马日,即x,y一个是走两步,一个是一步 要求最小步数,所以考虑第一次遍历到的点即为最小步数ÿ…...
强化学习算法系列(六):应用最广泛的算法——PPO算法
强化学习算法 (一)动态规划方法——策略迭代算法(PI)和值迭代算法(VI) (二)Model-Free类方法——蒙特卡洛算法(MC)和时序差分算法(TD) (三)基于动作值的算法——Sarsa算法与Q-Learning算法 (四…...
Vue3 + TypeScript中provide和inject的用法示例
基础写法(类型安全) typescript // parent.component.vue import { provide, ref } from vue import type { InjectionKey } from vue// 1. 定义类型化的 InjectionKey const COUNTER_KEY Symbol() as InjectionKey<number> const USER_KEY Sy…...
AI Agents系列之AI代理架构体系
1. 引言 智能体架构是定义智能体组件如何组织和交互的蓝图,使智能体能够感知其环境、推理并采取行动。本质上,它就像是智能体的数字大脑——集成了“眼睛”(传感器)、“大脑”(决策逻辑)和“手”(执行器),用于处理信息并采取行动。 选择正确的架构对于构建有效的智能…...
3个实用的脚本
1. Linux 系统清理临时文件脚本 该脚本用于清理系统中 /tmp 目录下超过 7 天的临时文件。 #!/bin/bash# 清理 /tmp 目录下超过 7 天的文件 find /tmp -type f -atime 7 -exec rm -f {} \;# 清理 /var/tmp 目录下超过 7 天的文件 find /var/tmp -type f -atime 7 -exec rm -f {…...
2025海外代理IP测评:Bright Data,ipfoxy,smartproxy,ipipgo,kookeey,ipidea哪个值得推荐?
近年来,随着全球化和跨境业务需求的不断扩大“海外代理IP”逐渐成为企业和个人在多样化场景中的重要工具。无论是进行数据采集、广告验证、社交媒体管理,还是跨境电商平台运营,选择合适的代理IP服务商都显得尤为重要。然而,市场上…...
条款13:以对象管理资源
什么是资源?内存?没错但是内存只是我们需要管理众多资源的一种,资源还包括数据的连接,文件描述符,互斥锁,网络套接字,不管哪种资源他都是从系统中获取的,当你不在需要他的时候是要还…...
Android守护进程——Vold (Volume Daemon)
简介 介绍:Vold 是用来管理 android 系统的存储设备,如U盘、SD卡、磁盘等移动设备的热插拔、挂载、卸载、格式化 框架结构:Vold 在系统中以守护进程存在,是一个单独的进程。处于Kernel和Framework之间,是两个层级连接…...
vue3+vite 实现.env全局配置
首先创建.env文件 VUE_APP_BASE_APIhttp://127.0.0.1/dev-api 然后引入依赖: pnpm install dotenv --save-dev 引入完成后,在vite.config.js配置文件内加入以下内容: const env dotenv.config({ path: ./.env }).parsed define: { // 将…...
AI 组件库是什么?如何影响UI的开发?
AI组件库是基于人工智能技术构建的、面向用户界面(UI)开发的预制模块集合。它们结合了传统UI组件(如按钮、表单、图表)与AI能力(如机器学习、自然语言处理、计算机视觉),旨在简化开发流程并增强…...
【AI模型学习】关于写论文——论文的审美
文章目录 一、“补丁法”(Patching)1.1 介绍1.2 方法论1.3 实例 二、判断工作的价值2.1 介绍2.2 详细思路2.3 科研性vs工程性 三、novelty以及误区3.1 介绍3.2 举例 看了李沐老师的读论文系列后,总结三个老师提到的有关课题研究和论文写作的三…...
OpenCV day6
函数内容接上文:OpenCV day4-CSDN博客 , OpenCV day5-CSDN博客 目录 平滑(模糊) 25.cv2.blur(): 26.cv2.boxFilter(): 27.cv2.GaussianBlur(): 28.cv2.medianBlur(): 29.cv2.bilateralFilter(): 锐…...
AI的出现,是否能替代IT从业者?
一、技术能力的边界:AI 能做什么? 自动化基础任务 代码生成:GitHub Copilot、天工 AI 等工具可自动生成 80% 以上的重复性代码,例如根据自然语言描述生成完整的网站前端代码。测试与运维:AI 驱动的测试工具能自动生成测…...
【AI飞】AutoIT入门七(实战):python操控autoit解决csf视频批量转换(有点难,AI都不会)
背景: 终极目标:通过python调用大模型,获得结果,然后根据返回信息,控制AutoIT操作电脑软件,执行具体工作。让AI更具有执行力。 已完成部分: 关于python调用大模型的,可以参考之前的…...
MARA/MARC表 PSTAT字段
最近要开发一个维护物料视图的功能。其中PSTAT字段是来记录已经维护的视图的。这里记录一下视图和其对应的字母。 MARA还有个VPSTA(完整状态)字段,不过在我试的时候每次PSTAT出现一个它就增加一个,不知道具体是为什么。 最近一直…...
《探秘鸿蒙分布式软总线:开启无感发现与零等待传输新时代》
在数字化浪潮中,设备之间的互联互通成为构建智能生态的关键。鸿蒙系统中的分布式软总线技术,宛如一座桥梁,让各种智能设备紧密相连。尤其是其实现的设备间无感发现和零等待传输功能,更是为用户带来了前所未有的便捷体验࿰…...
学习型组织与系统思考
真正的学习型组织不是只关注个人的学习,而是关注整个系统的学习。—彼得圣吉 在这两年里,越来越多的企业开始询问是否可以将系统思考的内容内化给自己的内训师,进而在公司内部进行教学。我非常理解企业这样做的动机,毕竟内部讲师…...
支持mingw g++14.2 的c++23 功能print的vscode tasks.json生成调试
在mingw14.2版本中, print库的功能默认没有开启, 生成可执行文件的tasks.json里要显式加-lstdcexp, 注意放置顺序. tasks.json (支持mingw g14.2 c23的print ) {"version": "2.0.0","tasks": [{"type": "cppbuild","…...
守护者进程小练习
守护者进程含义 定义:守护进程(Daemon)是运行在后台的特殊进程,独立于控制终端,周期性执行任务或等待事件触发。它通常以 root 权限运行,名称常以 d 结尾(如 sshd, crond)。 特性&a…...
opencv函数展示3
一、图像平滑(模糊) 线性滤波(速度快): 1.cv2.blur() 2.cv2.boxFilter() 3.cv2.GaussianBlur() 非线性滤波(速度慢但效果好): 4.cv2.medianBlur() 5.cv2.bilateralFilter() 二、锐…...
环境搭建与入门:Flutter SDK安装与配置
环境搭建与入门:Flutter SDK安装与配置 一、Flutter开发环境概述 1.1 Flutter开发环境组成 Flutter开发环境主要包含以下几个关键组件: Flutter SDK:Flutter的核心开发工具包Dart SDK:Flutter使用的编程语言环境IDE/编辑器&am…...
linux驱动之poll
驱动中 poll 实现 在用户空间实现事件操作的一个主要实现是调用 select/poll/epoll 函数。那么在驱动中怎么来实现 poll 的底层呢? 其实在内核的 struct file_operations 结构体中有一个 poll 成员,其就是底层实现的接口函数。 驱动中 poll 函数实现原…...
遥感技术赋能电力设施监控:应用案例篇
目前主流的电力巡检手段利用无人机能够通过设定灵活航线进行低空飞行、搭载不同的采集设备,能够从不同角度对输电线进行贴近拍摄,但缺陷是偏远山区无人机飞行技术要求高,成本高,且飞行的无人机也可能会对输电线产生破坏。 星图云开…...
SpringAI+DeepSeek大模型应用开发——5 ChatPDF
ChatPDF 知识库 RAG检索增强 由于训练大模型非常耗时,再加上训练语料本身比较滞后,所以大模型存在知识限制问题: 知识数据比较落后,往往是几个月之前的;不包含太过专业领域或者企业私有的数据; 为了解决…...
yolov8 框架自带模型体验功能
简介 YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务。 YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的成功基础上,并引入了新的功能和改进,…...
