传输层

说明

  1. 如果只想关注计算机网络的应用:
    • 熟悉:应用场景,端口号
    • 了解:传输层功能,特性。
  2. 如果想深入学习计算机网络:
    • 熟悉:传输层功能,特性。
    • 熟悉:端口号

传输层功能

  • 实现端到端的通信
  • 复用分用:
    • 复用(从上到下):在发送数据的时候,多个进程可以使用同一个传输层协议
    • 分用(从下到上):在接收数据的时候,传输层可以把数据正确的交给应用层目的进程。
  • 差错检测:
    • TCP检测出差错后立即丢弃数据。
    • UDP检测出错误后直接丢弃数据,且不通知发送方。
  • 想传输层提供两种服务:
    • 面向连接的、可靠的端到端传输服务(TCP):确保数据无差错,不丢失。开销大,实时性差。
    • 无连接的,不可靠的端到端传输服务(UDP):数据可能出错、丢失,但是速度快,开销小。

端口号

alt text

作用:通过端口号标识一个特定进程:

  • 注意:每台主机的端口号是相互独立的。
  • 注意:TCP、UDP两种协议的端口号是独立的。

通过TCP/UDP协议,通过Socket套接字 = { IP地址 : 端口号 },唯一的标识网络一台主机上的应用进程。

端口号分类:

  • 服务器使用的端口号:
    • 熟知端口号0~1023:通常只能用于被熟知的重要应用程序。
    • 登记端口号:1024~49151
  • 客户端使用的端口号
    • 短暂端口号:49152~65535

alt text

==端口号分类只是一个建议标准,不是一定要遵守的规范。==

进程、端口号、传输层协议之间的关系

alt text

  • 同一个端口可以建立多个TCP连接,但是每一对TCP连接都仅支持一对一通信。

有连接传输和无连接传输

alt text

有连接传输和无连接传输

alt text

应用场景

TCP应用场景

  1. 可靠性要求高的数据传输
    网页浏览(HTTP/HTTPS):TCP的可靠传输机制(如数据重传、序列号确认)确保网页内容完整加载,避免数据丢失或错乱。
    文件传输(FTP):大文件传输需要保证数据完整性和顺序性,TCP的流量控制和拥塞控制机制可避免传输中断或数据损坏。
    电子邮件(SMTP/POP3):邮件内容不可丢失或乱序,TCP的可靠性和有序性满足这一需求。
    远程登录(SSH/Telnet):命令执行需保证逐条响应,TCP的按序交付和重传机制确保操作的准确性。

  2. 需要复杂交互的场景
    数据库访问(如MySQL):事务性操作需严格保证数据一致性,TCP的可靠传输和流控制机制可避免数据冲突或丢失。
    金融交易系统:交易数据的原子性和完整性依赖TCP的确认机制,确保每笔操作准确无误。

  3. 特殊场景
    网络监控(SNMP):虽然SNMP默认使用UDP,但部分需要高可靠性的监控数据(如配置更新)会切换至TCP。
    分布式计算:如云计算任务调度,TCP确保计算节点间的数据同步和任务执行的可靠性。

UDP应用场景

  1. 实时性优先的应用

    • 实时音视频通信(Zoom、VoIP):UDP的低延迟特性(无需握手和确认)更适合语音和视频流传输,用户对偶发丢包的容忍度高于延迟。例如,VoIP允许丢包率1%-2%,但延迟需控制在150毫秒内。
    • 在线游戏(《王者荣耀》):玩家操作需毫秒级响应,UDP避免了TCP的重传和拥塞控制延迟,即使偶现丢包也不显著影响体验。
  2. 简单请求-响应模型

    • DNS查询:DNS请求通常短小且需快速响应,UDP的轻量级头部(仅8字节)和无需连接的特性使其效率远超TCP。
    • DHCP/NTP:动态IP分配和时间同步协议依赖UDP的快速广播/单播能力,无需复杂握手流程。
  3. 广播与多播场景

    • 流媒体直播(IPTV):UDP支持一对多传输,适合大规模直播场景,如体育赛事或音乐会实时转播。
    • 物联网设备群控:UDP可同时向多个设备发送指令(如智能家居控制),避免TCP单播连接的开销。
  4. 自定义可靠性协议

    • QUIC协议(HTTP/3):基于UDP实现快速连接建立,同时加入应用层重传和拥塞控制机制,兼顾速度与可靠性。
    • 自定义传输逻辑:开发者可在应用层实现轻量级校验或重传机制(如游戏状态同步),灵活适应特定需求。

选择依据与对比总结

特性 TCP适用场景 UDP适用场景
可靠性 必须保证数据完整(文件、邮件) 允许偶发丢包(视频、游戏)
延迟敏感性 容忍较高延迟(秒级) 要求极低延迟(毫秒级)
连接方式 一对一稳定连接 支持广播/多播、无连接
协议开销 头部较大(20-60字节) 头部极小(8字节)
典型协议/应用 HTTP、SSH、FTP DNS、QUIC、RTP、在线游戏

补充说明

  • 混合使用场景:部分应用同时依赖TCP和UDP。例如:
    • DNS:常规查询用UDP,区域传输(Zone Transfer)用TCP保证大数据量传输的可靠性。
    • 视频会议:控制信令(如连接建立)用TCP,音视频流用UDP。
  • 新兴技术趋势:基于UDP的改进协议(如QUIC)正在融合TCP的可靠性优势,未来可能在更多场景替代传统TCP。