首页/计算机网络/05-transport/传输层功能与端口 🔗 在 Obsidian 中打开
计算机网络 · 05-transport

传输层功能与端口

重要度 ⭐⭐⭐⭐⭐ 题型 选择 / 简答 计算机网络/传输层传输层端口号套接字多路复用多路分解
速查
传输层夹在应用层与网络层之间,提供进程到进程的端到端逻辑通信。端口号标识进程,套接字 = (IP, 端口);TCP 用四元组分解,UDP 只用二元组(目的 IP + 目的端口)。

一、核心概念

传输层的作用

传输层位于应用层和网络层之间:
- 为应用进程提供端到端的逻辑通信
- 复用和分用(多路复用/多路分解)
- 差错检测
- 可靠传输(TCP)

应用层 ← 进程间通信(端到端)
  ↓
传输层 ← 端口号、TCP/UDP
  ↓
网络层 ← 主机间通信(点到点)

传输层 vs 网络层

特性网络层传输层
通信范围主机到主机进程到进程
协议IPTCP / UDP
可靠性不可靠TCP 可靠
寻址IP 地址IP 地址 + 端口号
一句话区分网络层负责把分组送到正确的主机,传输层负责把数据交给正确的进程

二、端口号

端口号的作用

  • 标识主机上的不同应用进程
  • 实现多路复用和多路分解

端口号范围

类型范围说明
熟知端口0~1023分配给重要服务(IANA 管理)
注册端口1024~49151注册给特定应用
动态端口49152~65535客户端临时使用

常见熟知端口

端口协议服务
20 / 21TCPFTP(数据 / 控制)
22TCPSSH
23TCPTelnet
25TCPSMTP
53UDP / TCPDNS
67 / 68UDPDHCP
80TCPHTTP
443TCPHTTPS
110TCPPOP3
143TCPIMAP
口诀2X 系 FTP/SSH/Telnet/SMTP(20/21、22、23、25),53 DNS,67/68 DHCP,80/443 Web,110/143 收信(POP3 / IMAP)。

三、套接字(Socket)

套接字地址

Socket = (IP地址, 端口号)

TCP连接标识:
(源IP, 源端口, 目的IP, 目的端口) 四元组

UDP标识:
(源IP, 源端口, 目的IP, 目的端口) 四元组

例:
客户端: (192.168.1.100, 50000) → 服务器: (10.0.0.1, 80)
连接标识: (192.168.1.100, 50000, 10.0.0.1, 80)
辨析「套接字」本身只是 (IP, 端口) 二元组;而一条 TCP 连接需要用两个套接字(即四元组)才能唯一标识。

四、多路复用与多路分解

多路复用(Multiplexing)

多个应用进程的数据 → 封装为传输层报文段 → 交给网络层

应用1(端口80) ──┐
应用2(端口443) ──┼──→ 传输层封装 ──→ 网络层
应用3(端口25)  ──┘

多路分解(Demultiplexing)

网络层分组 → 传输层解封装 → 根据端口号分发给对应应用

网络层 → 传输层解封装 → 根据目的端口分发
  ↓
端口80 → Web服务器
端口443 → HTTPS服务器
端口25 → 邮件服务器

无连接分解(UDP)

UDP使用二元组标识:(目的IP, 目的端口)
来自不同源的分组,只要目的端口相同,就交给同一进程

面向连接分解(TCP)

TCP使用四元组标识:(源IP, 源端口, 目的IP, 目的端口)
不同客户端连接同一服务器的不同连接,分别处理

客户端A(192.168.1.100, 50000) ─┐
                                ├─→ 服务器(10.0.0.1, 80)
客户端B(192.168.1.101, 50001) ─┘
这是两个不同的TCP连接
对照记忆UDP 分解看二元组:源不同、目的端口相同 → 同一个 socket;TCP 分解看四元组:源不同 → 不同连接、不同 socket。

五、常见考法

考点说明
传输层的功能端到端通信、复用分用、差错检测
端口号范围熟知 (0~1023)、注册 (1024~49151)、动态 (49152~65535)
TCP vs UDP 的分解TCP 四元组 vs UDP 二元组
常见端口号$HTTP=80, HTTPS=443, DNS=53$ 等

六、易错点

注意
  • 端口号标识的是进程,不是主机。
  • TCP 连接用四元组标识,UDP 用二元组(目的 IP + 目的端口)。
  • 传输层的"端到端"是进程到进程,不是主机到主机。
  • 一个端口号只能被一个 TCP 进程使用(但 TCP 和 UDP 可以各用一个同号端口)。

七、核心结论

必背
  1. 传输层提供进程到进程的端到端通信。
  2. 端口号实现多路复用和多路分解
  3. TCP 用四元组标识连接,UDP 用二元组标识。
  4. 熟知端口 (0~1023) 分配给重要服务。

记忆卡片

传输层和网络层的通信范围区别?
网络层 = 主机到主机;传输层 = 进程到进程。
TCP 连接用什么标识?
四元组(源 IP, 源端口, 目的 IP, 目的端口)。
HTTP 和 HTTPS 的端口号?
$HTTP=80, HTTPS=443$。
熟知端口的范围?
0~1023,由 IANA 管理。

交互动画 · 多路分解 Demultiplexing

来自网络层的分组 传输层 上交的套接字 / 进程 分组 ①A:50000 → S:80 分组 ②B:50001 → S:80 分组 ③C:53000 → S:53 分解 Demux键 = 二元组 Web 进程socket (S, 80) 同一个 socketUDP 不区分源 DNS 进程socket (S, 53)
先选择 UDP / TCP 分解方式,再点击某个分组看它被交给哪个套接字
UDP:只看 (目的IP, 目的端口);TCP:看完整四元组
示意图:分组 ① ② 目的端口都是 80——UDP 下交给同一个 socket,TCP 下属于两条不同连接。

相关知识点

tcp-three-way-handshake udp-protocol tcp-segment-format

↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。