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

2026.5.9

学习进度记录

基本信息

项目 内容
日期 2026.5.9
所花时间(包括上课) 2小时
代码量(行) 0
博客量(篇) 1
了解到的知识点 计算机网络:运输层(传输层)

知识点详解:运输层(Transport Layer)

运输层是 TCP/IP 协议栈的第四层,位于网络层之上、应用层之下。它的主要职责是为运行在不同主机上的应用进程提供逻辑通信服务。今天系统学习了运输层的核心概念:端口、多路复用/多路分解、UDP 与 TCP 协议、可靠传输原理、流量控制、拥塞控制等。

1. 运输层的功能

  • 多路复用与多路分解:发送方将多个应用进程的数据封装成段,通过同一个网络层接口发送;接收方根据端口号将数据交付给正确的进程。
  • 差错检测:通过校验和检测段是否受损(UDP 可选,TCP 强制)。
  • 可靠数据传输(TCP):保证数据无差错、按顺序、不丢失、不重复。
  • 流量控制(TCP):避免发送方淹没接收方。
  • 拥塞控制(TCP):避免网络过载。

2. 端口(Port)

  • 端口号 16 位,范围 0~65535。
  • 知名端口(0-1023):绑定常用服务(HTTP:80, HTTPS:443, FTP:21, SSH:22)。
  • 注册端口(1024-49151):用户进程使用。
  • 动态/私有端口(49152-65535):临时分配。
  • 套接字(Socket)= IP地址 + 端口号,唯一标识一个通信端点。

3. UDP(User Datagram Protocol)

  • 无连接:发送前无需建立连接,直接发送数据报。
  • 不可靠:不保证交付、顺序、不重复。
  • 面向报文:应用层报文直接作为 UDP 载荷,不拆分也不合并。
  • 头部小:8 字节(源端口、目的端口、长度、校验和)。
  • 适用场景:实时性要求高、允许丢失的应用(如 DNS、视频会议、VoIP、在线游戏)。

4. TCP(Transmission Control Protocol)

  • 面向连接:通信前需三次握手建立连接,结束后四次挥手释放。
  • 可靠传输:通过序号、确认、重传、校验和等保证数据正确、按序到达。
  • 全双工:双方可同时发送数据。
  • 字节流:应用层数据被看成无结构的字节流,TCP 自行分段发送。
  • 头部格式:20 字节固定 + 选项(最大 40 字节)。关键字段:
    • 源端口、目的端口
    • 序号(seq)
    • 确认号(ack)
    • 数据偏移(首部长度)
    • 标志位:SYN, ACK, FIN, RST, PSH, URG
    • 窗口大小(用于流量控制)
    • 校验和
    • 紧急指针

5. 可靠传输机制

  • 序号:为每个发送的字节编号,接收方按序重组。
  • 确认与重传:发送方启动定时器,若未收到 ACK 则重传。
  • 累积确认:ACK 序号表示该序号之前的所有字节都已收到。
  • 超时重传:RTO(Retransmission Timeout)动态计算,基于 RTT 估计。
  • 快速重传:收到 3 个重复 ACK 立即重传,不等待超时。

6. 流量控制(滑动窗口)

  • 接收方通过通告窗口(rwnd)告诉发送方自己的可用缓存大小。
  • 发送方发送的数据总量不能超过 rwnd,避免接收方溢出。

7. 拥塞控制

TCP 使用四种算法避免网络拥塞:

  • 慢启动:初始拥塞窗口(cwnd)小,每收到一个 ACK,cwnd 加倍(指数增长),直到达到慢启动阈值 ssthresh。
  • 拥塞避免:达到 ssthresh 后,cwnd 线性增加(每 RTT 加 1 MSS)。
  • 快速重传:收到 3 个重复 ACK 时,立即重传丢失的报文。
  • 快速恢复:快速重传后,将 ssthresh 设为 cwnd/2,cwnd = ssthresh + 3,然后进入拥塞避免(新Reno 实现)。

8. TCP 连接的建立与释放

  • 三次握手

    1. Client → Server: SYN, seq=x
    2. Server → Client: SYN+ACK, seq=y, ack=x+1
    3. Client → Server: ACK, ack=y+1
  • 四次挥手

    1. 主动关闭方 → FIN
    2. 被动方 → ACK
    3. 被动方 → FIN
    4. 主动方 → ACK 并等待 2MSL 后关闭

9. UDP 与 TCP 对比

特性 UDP TCP
连接 无连接 面向连接
可靠性 不可靠 可靠
顺序 不保证 保证按序
流量控制 有(滑动窗口)
拥塞控制
报文边界 有(保留应用层报文) 无(字节流)
头部开销 8 字节 20 字节 + 选项
适用场景 实时、容忍丢包 文件、网页、邮件

10. 今日复习总结

今天用 2 小时学习了运输层的核心知识点,包括 UDP 和 TCP 的协议特点、可靠传输原理、流量控制和拥塞控制。虽然没有编写代码,但通过画 TCP 状态转换图、模拟滑动窗口过程,加深了对运输层工作机制的理解。运输层是网络编程的基础,下一步计划:用 Python 的 socket 库实现简单的 TCP 聊天程序,并抓包分析三次握手和四次挥手。


运输层是连接应用与网络的桥梁。UDP 的轻快和 TCP 的稳健,如同生活中的快慢选择,各有其道。

http://www.jsqmd.com/news/811700/

相关文章:

  • 进阶篇如何学习编写 Shell 脚本?
  • AI工程化实战:四层驾驭模型解决开发盲区,打造稳定智能工作流
  • AI生物标志物发现:从海量数据中找真正的信号
  • Cursor Pro激活器:3分钟永久解锁AI编程助手高级功能
  • 2711P-K7C4D1 触摸屏面板
  • 数据流架构芯片深度科普:打破指令围墙,让数据像水一样流动
  • 【Oracle数据库指南】第32篇:Oracle归档日志管理与LogMiner日志分析
  • 5月13号
  • 告别裸机轮询:用STM32CubeMX+外部中断实现高效按键响应(附F072工程源码)
  • OLED内卷之王?微星MPG 271QR QD-OLED X50流光到底值不值得买
  • RAG系统落地秘籍:一张图看懂5大模块如何构建高效问答平台!
  • 第九届河北省大学生程序设计竞赛 L题思路分享(数学,三阶差分)
  • 【Oracle数据库指南】第35篇:Oracle特殊对象——簇与索引组织表(IOT)
  • 乌海豆包AI推广找哪家?宁夏壹山网络全域AI营销实力甄选 - 宁夏壹山网络
  • Confluence数据迁移踩坑实录:从物理机到K8s集群,我是如何无损迁移200G知识库的?
  • 深度解析:城通网盘直连地址获取技术方案
  • 告别裸奔MCU!手把手教你用OSAL调度器重构STM32项目(附看门狗实战)
  • GPT-4 Turbo访问权、优先响应、高级数据分析——ChatGPT Plus五大隐藏权益深度拆解,92%用户根本没用全
  • 2026实测|10款去AI痕迹工具红黑榜 - 殷念写论文
  • Taotoken在数据预处理与分析脚本中调用大模型的集成案例
  • Anthropic Claude Haiku 4.5 安全突破:勒索行为从96%降至0%
  • 基于MCP协议构建AI驱动的Upwork自动化工作流:从工具化接口到安全实践
  • 在虚拟机中快速部署大模型调用环境,使用Taotoken稳定接入OpenAI兼容API
  • 语义层不能只剩指标和维度:Data Agent 时代,企业到底该建什么?
  • 3D打印定制外壳:从设计到实战,为开源硬件打造专属保护方案
  • 如何3分钟彻底清理Zotero文献库重复条目:智能合并插件终极指南
  • 3个技巧快速掌握加密压缩包密码找回:ArchivePasswordTestTool新手指南
  • 3步搞定安卓应用Windows安装:告别臃肿模拟器的终极解决方案
  • 14602开源|黄大年茶思屋第146期第二题:支持采集内容运动的静态3DGS重建
  • 为AI编程助手构建本地知识库:YAP项目实战指南