logo
导航

传输层基础概念

传输层概述

传输层是 OSI 参考模型中的第四层,主要负责在端到端之间提供可靠的数据传输服务。

1. 传输层功能

端到端进程通信

  • 进程标识:为应用层进程提供通信服务
  • 逻辑连接:在源主机和目标主机之间建立逻辑连接
  • 数据传递:将数据从源进程传递到目标进程
  • 服务质量:提供不同级别的服务质量保证

传输层寻址(端口号)

  • 端口号:16 位整数,用于标识主机内的进程
  • 源端口:发送方进程的端口号
  • 目的端口:接收方进程的端口号
  • 端口分配
    • 熟知端口:0-1023,分配给常用服务
    • 注册端口:1024-49151,分配给应用程序
    • 动态端口:49152-65535,临时分配

复用与分用

  • 复用:多个应用层进程共享传输层服务
  • 分用:传输层将接收到的数据分发给相应的应用层进程
  • 多路复用:在单一连接上传输多个数据流

差错检测与可靠性

  • 差错检测:检测数据传输过程中的错误
  • 可靠性保证:确保数据完整、有序、无重复传输
  • 重传机制:丢失或错误的数据包重传
  • 流量控制:防止发送方过快导致接收方缓冲区溢出

2. 传输层寻址与端口

端口号的作用

  • 进程标识:唯一标识主机内的进程
  • 服务区分:区分不同的网络服务
  • 连接标识:在 TCP 中标识连接
  • 数据分发:将数据分发给正确的应用进程

端口号分类

熟知端口(0-1023)

  • 分配给常用网络服务
  • 由 IANA 统一管理
  • 常见端口:
    • 20/21:FTP(文件传输协议)
    • 22:SSH(安全外壳协议)
    • 23:Telnet(远程登录)
    • 25:SMTP(简单邮件传输协议)
    • 53:DNS(域名系统)
    • 80:HTTP(超文本传输协议)
    • 110:POP3(邮局协议)
    • 143:IMAP(互联网消息访问协议)
    • 443:HTTPS(安全超文本传输协议)

注册端口(1024-49151)

  • 分配给应用程序
  • 需要向 IANA 注册
  • 常见端口:
    • 1433:Microsoft SQL Server
    • 1521:Oracle 数据库
    • 3306:MySQL 数据库
    • 5432:PostgreSQL 数据库
    • 6379:Redis
    • 8080:HTTP 代理

动态端口(49152-65535)

  • 临时分配给客户端进程
  • 由操作系统动态分配
  • 客户端发起连接时使用

端口号管理

  • 端口分配:操作系统负责端口号分配
  • 端口冲突:避免多个进程使用同一端口
  • 端口扫描:检测主机开放的端口
  • 防火墙:控制端口访问权限

3. 传输层服务类型

无连接服务

  • 特点:不需要预先建立连接
  • 协议:UDP(用户数据报协议)
  • 可靠性:不保证可靠传输
  • 适用场景:实时应用、简单查询

面向连接服务

  • 特点:需要预先建立连接
  • 协议:TCP(传输控制协议)
  • 可靠性:保证可靠传输
  • 适用场景:文件传输、Web 浏览

服务选择

选择 UDP 的情况

  • 实时性要求高
  • 数据量小
  • 允许少量数据丢失
  • 简单查询服务

选择 TCP 的情况

  • 可靠性要求高
  • 数据量大
  • 不允许数据丢失
  • 文件传输服务

4. 传输层与网络层的关系

层次关系

  • 网络层:提供主机到主机的通信
  • 传输层:提供进程到进程的通信
  • 抽象层次:传输层在网络层基础上提供更高层次的服务

功能分工

网络层功能

  • 路由选择
  • 分组转发
  • 网络互联

传输层功能

  • 进程通信
  • 可靠性保证
  • 流量控制

协议栈

  • 应用层:HTTP、FTP、SMTP 等
  • 传输层:TCP、UDP
  • 网络层:IP
  • 数据链路层:以太网、WiFi 等
  • 物理层:双绞线、光纤等

练习题

练习 1

简述传输层的主要功能。

参考答案

传输层的主要功能包括:

  1. 端到端进程通信

    • 为应用层进程提供通信服务
    • 在源主机和目标主机之间建立逻辑连接
    • 将数据从源进程传递到目标进程
  2. 传输层寻址

    • 使用端口号标识主机内的进程
    • 实现进程间的通信
    • 支持多路复用
  3. 复用与分用

    • 多个应用层进程共享传输层服务
    • 将接收到的数据分发给相应的应用层进程
    • 实现多路复用
  4. 差错检测与可靠性

    • 检测数据传输过程中的错误
    • 确保数据完整、有序、无重复传输
    • 提供重传机制
  5. 流量控制

    • 防止发送方过快导致接收方缓冲区溢出
    • 控制数据传输速率
    • 保证网络稳定性

练习 2

端口号的作用是什么?举例常见端口。

参考答案

端口号的作用

  1. 进程标识:唯一标识主机内的进程
  2. 服务区分:区分不同的网络服务
  3. 连接标识:在 TCP 中标识连接
  4. 数据分发:将数据分发给正确的应用进程

常见端口举例

熟知端口(0-1023)

  • 20/21:FTP(文件传输协议)
  • 22:SSH(安全外壳协议)
  • 23:Telnet(远程登录)
  • 25:SMTP(简单邮件传输协议)
  • 53:DNS(域名系统)
  • 80:HTTP(超文本传输协议)
  • 110:POP3(邮局协议)
  • 143:IMAP(互联网消息访问协议)
  • 443:HTTPS(安全超文本传输协议)

注册端口(1024-49151)

  • 1433:Microsoft SQL Server
  • 1521:Oracle 数据库
  • 3306:MySQL 数据库
  • 5432:PostgreSQL 数据库
  • 6379:Redis
  • 8080:HTTP 代理