当前位置: 首页 > ds >正文

TCP与UDP协议详解

TCP与UDP协议详解


1. 核心概念与定位
  • TCP(Transmission Control Protocol)

    • 面向连接:通信前需建立可靠连接(三次握手),通信结束断开连接(四次挥手)。
    • 可靠传输:通过确认、重传、流量控制、拥塞控制等机制保证数据完整有序。
    • 基于字节流:数据无边界,按顺序传输(如发送“Hello”和“World”,接收方可能一次读到“HelloWorld”)。
  • UDP(User Datagram Protocol)

    • 无连接:无需预先建立连接,直接发送数据。
    • 不可靠传输:不保证数据到达、不保证顺序、无重传机制。
    • 基于数据报:每个数据包有明确边界(发送两次“Hello”,接收方会收到两次独立的“Hello”)。

比喻

  • TCP像打电话:先拨号(三次握手),通话中确保对方听到(重传),结束说“再见”(四次挥手)。
  • UDP像发短信:直接发送,不关心对方是否收到,可能丢信或乱序。

2. 关键特性对比
特性TCPUDP
连接方式面向连接无连接
可靠性可靠(数据不丢失、不重复、按序到达)不可靠(可能丢包、乱序、重复)
传输速度较慢(需建立连接、确认机制)极快(无额外开销)
数据边界无边界(字节流)有边界(数据报)
头部开销大(至少20字节)小(仅8字节)
适用场景文件传输、网页浏览、邮件视频流、实时游戏、DNS查询
拥塞控制/流量控制

3. 核心机制详解
3.1 TCP的三次握手与四次挥手
  • 三次握手(建立连接)

    1. 客户端发送SYN=1, seq=x
    2. 服务端回复SYN=1, ACK=1, seq=y, ack=x+1
    3. 客户端发送ACK=1, seq=x+1, ack=y+1

    比喻
    客户:“我要连接”(SYN),服务器:“同意,请确认”(SYN+ACK),客户:“确认”(ACK)。

  • 四次挥手(断开连接)

    1. 主动方发送FIN=1, seq=u
    2. 被动方回复ACK=1, seq=v, ack=u+1
    3. 被动方发送FIN=1, seq=w, ack=u+1
    4. 主动方回复ACK=1, seq=u+1, ack=w+1

    比喻

http://www.xdnf.cn/news/8155.html

相关文章:

  • Flink中Kafka连接器的基本应用
  • 曾经在知乎上看到一个回答:“入职做FPGA,后续是否还可以转数字IC设计?”
  • Triton 动态链接库(DLL)初始化例程失败。
  • redis基本操作和基础命令,另外附上如何使用命令导出redis数据库及反馈的正确报文,rdb
  • 飞翔的小燕子-第16届蓝桥第6次STEMA测评Scratch真题第1题
  • TCP原理解析
  • 2025年高防IP与SCDN全面对比:如何选择最佳防护方案?
  • 智慧交通的核心引擎-车牌识别接口-车牌识别技术-新能源车牌识别
  • Postgresql14+Repmgr部署
  • 【漫话机器学习系列】272.K近邻中K的大小(K-NN Neighborhood Size)
  • 通过现代数学语言重构《道德经》核心概念体系,形成一个兼具形式化与启发性的理论框架
  • C# Unity容器详解
  • Google Prompt Tuning:文本嵌入优化揭秘
  • 小米15周年战略新品发布会:多领域创新突破,构建科技生态新蓝图
  • HUAWEI华为MateBook D 14 2021款i5,i7集显非触屏(NBD-WXX9,NbD-WFH9)原装出厂Win10系统
  • JMeter 教程:响应断言
  • 【笔试强训day39】
  • 自制操作系统day7(获取按键编码、FIFO缓冲区、鼠标、键盘控制器(Keyboard Controller, KBC)、PS/2协议)
  • brepgen 源码 笔记2
  • 巧用 FFmpeg 命令行合并多个视频为一个视频文件教程
  • CaDDN- Categorical Depth Distribution Network for Monocular 3D Object Detection
  • 比斯特自动化|移动电源全自动点焊机:高效点焊助力移动电源制造
  • 【ffmpeg】硬软编码
  • 第十周作业
  • 从单链表 list 中删除第 i 个元素--Python
  • GaussDB(PostgreSQL)查询执行计划参数解析技术文档
  • 代码随想录算法训练营第四十六四十七天
  • Ubuntu/Linux 服务器上调整系统时间(日期和时间)
  • 零基础入门:MinerU 和 PyTorch、CUDA的关系
  • Facebook广告如何投放保健品类别?