跳到正文HisnLabs
← TCP/IP:地址、端口和连接

第 2 课,共 4 课 · 7 分钟

端口、TCP 和 UDP

为什么一个 IP 地址能同时进行上百场对话,以及为什么其中一些对话会用可靠性换取速度。

IP 地址能把数据包送到正确的设备,但它不会说明该由这台设备上的哪个应用来接收。这是端口的工作:一个告诉你的 Mac 是哪个程序在通信的数字。Cloudflare 学习中心把它比作一栋公寓楼:街道地址(IP)把邮件送到正确的楼栋,门牌号(端口)再把它送到正确的房门口。

一条连接,多扇门

端口让一台计算机能够区分不同种类的流量,即使它们都通过同一条 Wi-Fi 或有线连接抵达。Cloudflare 的解释很直接:“端口让计算机能够轻松区分不同种类的流量:例如电子邮件和网页会走不同的端口,即便二者都是通过同一条互联网连接抵达计算机的。”端口存在于 TCP 和 UDP 的包头中,位于普通 IP 地址之上的一层;一个裸的 IP 数据包本身并没有空间说明它对应哪个端口。

谁可以使用哪个编号

端口号的范围是 0 到 65535,由互联网数字分配机构(IANA)管理谁能获得哪个编号:系统端口(0–1023)只能通过正式审核分配,用户端口或注册端口(1024–49151)可以为特定服务注册,而最上面的范围 49152–65535 则留空供临时使用,例如你的浏览器为一条连接自己这一端所选择的返回地址。

来源:IANA 服务名称与传输协议端口号注册表。
端口注册用途通常由什么使用
22安全外壳协议(SSH)远程命令行访问
25简单邮件传输邮件服务器之间发送电子邮件
53域名服务器DNS 查询
80HTTP普通的、未加密的网页
443HTTPS加密网页

TCP:更慢,但不会丢失任何东西

传输控制协议(TCP),在 RFC 9293 中定义,其设计目标就是可靠:它“为应用程序提供可靠、按序的字节流服务”,通过序列号检测丢失的数据包,并重新发送,直到对方确认收到为止。这种可靠性要付出一点时间和开销上的代价,这也是为什么 TCP 适用于那些必须完整、按序抵达的内容:网页、文件下载、电子邮件。

UDP:更快,也愿意承受一点损失

用户数据报协议,在 RFC 768 中描述,采取了相反的取舍:它“为应用程序之间以最少的协议机制发送消息提供了一种途径”。没有握手,不保证顺序,也不会自动重传。Cloudflare 指出,这特别适合“视频播放或 DNS 查询这类对时间敏感的传输”,在这类场景中,丢失一个数据包只是个小瑕疵,而等待重传反而会比直接继续更糟糕。

要点

  • 端口是一个数字,告诉设备一个数据包是给哪个应用或服务的;单靠 IP 地址只能识别设备本身。
  • IANA 把端口号分为三个区间管理:系统端口(0–1023)、用户/注册端口(1024–49151),以及未分配的动态端口(49152–65535)。
  • 常见端口包括 22(SSH)、25(邮件)、53(DNS)、80(HTTP)和 443(HTTPS)。
  • TCP(RFC 9293)会检测并重新发送丢失的数据,以实现可靠、按序的传输,但要付出一定的速度代价。
  • UDP(RFC 768)为了速度跳过了这些检查,适合视频和 DNS 查询这类对时间敏感的流量。

自我检测

  1. 1. 端口解决了单靠 IP 地址无法解决的什么问题?

    • 它们告诉网络一个数据包是给设备上哪个应用的 — 正确。
    • 它们对连接进行加密
    • 它们取代了对 IP 地址的需求
    • 它们让 Wi-Fi 更快

    IP 地址把数据包路由到一台设备;而携带在 TCP 或 UDP 包头中的端口,则说明该由这台设备上的哪个程序来处理它。

  2. 2. 根据 IANA 注册表,HTTPS 注册使用的是哪个端口?

    • 21
    • 80
    • 443 — 正确。
    • 8080

    IANA 把 443 端口列为“https”,用于基于 TLS/SSL 的 HTTP。80 端口则是普通的、未加密的 HTTP。

  3. 3. 为什么 RFC 9293 把 TCP 描述为“可靠、按序”?

    • 因为 TCP 能检测丢失的数据并重新发送,并保持数据按发送时的顺序排列 — 正确。
    • 因为 TCP 从不使用端口
    • 因为 TCP 总是比 UDP 更快
    • 因为 TCP 默认会加密一切内容

    TCP 通过跟踪序列号来检测数据缺口,重新发送丢失的数据,并按顺序重新组装字节流。

  4. 4. 为什么 DNS 查询和视频播放通常使用 UDP 而不是 TCP?

    • UDP 更安全
    • UDP 用可靠性换取速度,适合那种丢失一个数据包只是个小瑕疵的流量 — 正确。
    • TCP 无法使用 53 端口
    • UDP 能保证数据包按顺序到达

    Cloudflare 指出,UDP 正是因为跳过了 TCP 的握手和重传开销,才特别适合“视频播放或 DNS 查询这类对时间敏感的传输”。

用 FireAI 动手做

在你自己的 Mac 上练习这节课的内容。

来源

在你的 Mac 上实践

免费试用全部功能 17 天,无需绑定银行卡。

下载 Mac 版 文档