需要云计算吗? 即刻开始体验

什么是端口?

什么是端口?它们是如何工作的?

在先前的演示中,我们介绍了 IP 地址以及路由器如何根据地址的前缀部分制定决策,从而将数据包从源主机路由到目标主机。我们使用了邮政服务作为类比,将这种前缀比喻为邮政编码,并将 IP 地址的其余部分比喻为街道地址。

如果还是使用这个邮政服务的类比,收件人姓名对应的是什么呢?在书写信函的地址时,我们会加上收件人的姓名,比如 Lucille Ball。当然,邮政局并不关心收件人的姓名,但在信函送到目标地址后,那里会有某个人查看收件人姓名,然后把这封信交给相应的人。因为很可能有很多人在同一个地址处生活。

对于互联网主机来说,情况也是如此。主机会运行多个进程或应用程序。例如,一台服务器可能运行着多个服务,如 Web 和电子邮件。笔记本电脑等用户设备可能运行多个客户端,如网页浏览器和电子邮件阅读器。在一个数据包传送到主机处时,我们要如何确定应该把它交付给哪个进程? 这就是 TCP 和 UDP 的作用所在。

传输控制协议 (TCP) 和用户数据报协议 (UDP):

  • 是互联网协议 (IP) 套件的一部分,有时也称为 TCP/IP。
  • 它们构成我们所说的传输层,决定了进程间通信。 
  • TCP 和 UDP 通过端口号识别通信端点。端口号就好比信件中的收件人姓名。

 

我们来更具体地介绍一下 TCP。 TCP 用来将字节流从发件人发给收件人。它能确保按顺序可靠地传输字节流。请注意,仅凭 IP 地址本身并不能保证次序,甚至没法保证送达。IP 数据包可能会被丢弃,也确实会发生这种情况。TCP 将数据流拆分成片段,随后在带有序列号的 IP 数据包内传输每一个片段,通过这种方式来保证按照顺序加以传输。接收方在收到片段后,会向发送方回发一个确认报文,如果发送方未收到确认报文,那么在达到超时阈值后,会重新传输相应的片段。

 

再来说 UDP。UDP 用来将数据包从发送方发送到接收方。数据报在 IP 数据包内传输。UDP 数据报不保证送达。UDP 数据报与 IP 数据包之间的唯一主要区别就在于端口号。 

通过端口通信的进程由(16 位的)编号识别。每个 IP 数据包都会添加源和目标端口号。端口号的书写格式通常是为 IP 地址附上“:<端口号>”。 

每个主机都维护着一份表格,用来将端口号映射到进程,在有数据包送达主机时,主机会使用该表格来将数据包路由到正确的进程。在这个例子中,目标端口 443 与第二行匹配,所以数据包会传输到 Web 服务器。

那么,我们如何来确定端口号?对于服务器,答案就是服务会侦听众所周知的端口号(1-1023 范围内)。例如:

  • Web (HTTP) 是端口 80。
  • 安全 Web (HTTPS) 是端口 443,
  • DNS 是端口 43。

客户端选择对应于所请求服务的目标端口号。在示例中,我们在与 HTTPS 服务通信,所以目标端口号是 443。

 

对于源端口号,客户端从所谓的临时端口(范围为 1024-65535)发起通信。它会选择该范围内当前未在使用的任何端口号。在本例中,客户端选择了端口号为 12627 的端口,所以这就是源端口号。

在服务器做出响应时,源和目标则调换角色。

但我们如何确定这些 IP 地址?答案就是命名服务,我们会在下一次的演示中加以介绍。

在有关寻址的内容结束之前,我们先来进行总结,一起回顾一下邮政服务的类比。端口号类似于收件人姓名。就像只有目标地址的居住者会关注收件人姓名一样,仅有主机本身必须关注端口号。在查看 IP 地址时,我们将其分成两大部分,前缀就好比邮政编码,IP 地址的其余部分就像街道地址。在我们的例子中,仅有 90210 邮局必须关注街道地址,同样,仅有 MIT 网络内的路由器必须关注整个 IP 地址。在 90210 邮局的范围之外,投递信件时只需要邮政编码,因此在 MIT 之外,路由数据包时只需要前缀。

回顾:比如 Web 请求和响应等应用程序消息置于 IP 数据包内。它们通常是加密的。IP 数据包根据源和目标 IP 地址和端口号进行寻址。

互联网协议地址或 IP 地址用来通过网络连接传输数据。此地址包含一个数字字符串,它起到唯一标识符的作用。端口号是 16 位的无符号整数,将附加到此字符串,并使用一个冒号分隔,例如 17.253.207.54: 443。这个附加的数字就叫做“端口号”,用来在互联网流量送达服务器时为流量提供指引。传输控制协议 (TCP) 和用户数据报协议 (UDP) 用来将数据包路由到正确的进程。端口号数量众多,它们是互联网运作机制中不可或缺的要素。

端口是如何工作的?

自从计算技术问世以来,计算机端口就存在。端口号的概念最初由高级研究计划局网络 (ARPANET) 提出。

端口用来标识连接端点,并将数据传送到服务。端口分为虚拟和物理两种。USB 端口是我们常见的一种物理端口,当我们提到计算机端口时,脑海中立即就会浮现出此类端口。但虚拟端口要更加常见,端口也是以这种形式影响着互联网的运作机制。端口是 OSI 互联网模型第 4 层的一部分,也就是传输层。

为了解释端口的工作原理,我们需要回到信件的类比,收件人是“加州贝弗利山罗克斯伯里大道 1000 号 Lucille Ball,邮编 90210”。在我们的 IP 地址文章中,我们用这个信件类比解释了虚拟地址,说明了 IP 地址如何将“信件”路由到目的地。在邮政服务类比中,将信件送达到最终地址后,信件上的收件人姓名指明了这封信件究竟要交给谁;从这个角度来理解,端口就等同于“Lucille Ball”这个姓名。

虚拟端口非常多,端口号的范围从 0 到 65535。互联网协议 TCP 和 UDP 决定了数据包发送到哪个进程,其依据是服务器-客户端架构,我们在有关 HTTP(超文本传输协议) 和 HTTPS的其他网页上介绍了相关内容。

什么是主机?

主机(例如服务器)通常运行多个进程或应用程序,比如 Web 和电子邮件。每个主机都维护着一份表格,用来将端口号映射到进程,在有数据包送达主机时,主机会使用该表格来将数据包路由到正确的进程或服务。笔记本电脑等终端设备通常运行多个客户端,如网页浏览器和电子邮件阅读器。在数据包送达目标地址时,TCP 和 UDP 协议决定了要将数据包发到何处。尽管这两种协议都用来传送流量,但它们有着不同的功能。

什么是 TCP?

TCP 即传输控制协议,它使用字节流将数据从发送方发送到接收方。TCP 的核心功能就是可以确保按顺序可靠地传输字节流。IP 数据包在路由过程中可能会被丢弃,所以这种功能必不可少。TCP 将数据流拆分成片段,随后在带有序列号的 IP 数据包内传输每一个片段,通过这种方式来保证按照顺序加以传输;接收方会在收到 IP 数据包序列时加以确认。如果没有收到某个 IP 数据包序列的确认,发送方会在达到超时阈值之后重新发送未收到的片段。

什么是 UDP?

UDP 与 TCP 之间的主要区别在于,UDP 不提供送达保证。UDP 用来将数据包从发送方发送到接收方。数据报在 IP 数据包内传输。端口号是 UDP 数据报与 IP 数据包之间的唯一重要区别。但 UDP 不提供送达保证,因此需要安全、可靠的数据传输的服务(如电子邮件和网站)会选择 TCP 端口。

服务端口号示例

可用端口号共有 65,535 个。服务会侦听众所周知的端口号,即 1-1023 范围内的端口号。部分常用的服务端口号如下:

  • 端口 80:Web (HTTP)
  • 端口 443:安全 Web (HTTPS)
  • 端口 43:DNS(域名系统)
  • 端口 3389:远程桌面协议 (RDP)
  • 端口 21:文件传输协议 (FTP)
  • 端口 22:安全外壳 (SSH),用于创建安全网络连接的隧道协议

在我们的 IP 地址示例 (17.253.207.54: 443) 中,通信通过 HTTPS 协议完成,即使用 443 端口。

源端口号

源端口号使用 1024-65535 范围内的“临时端口”。该范围内当前未使用的任何端口号均可供选择。

互联网号码分配局 (IANA) 维护端口号列表。IANA 将端口 0 指定为保留端口,不可使用。

Akamai、端口和在线攻击防御

基于云的网络攻击无处不在。Akamai 致力于杜绝黑客和网络犯罪分子利用互联网发动的网络攻击。针对 Web 服务器的分布式拒绝服务 (DDoS) 攻击可能会造成 IP 数据包丢失。未受保护的端口或给漏洞利用留下机会的端口是公认的攻击媒介。我们的专用基础架构提供 DDoS 防范功能,可在云端阻止 DDoS 攻击,避免其侵扰应用程序、数据中心和面向互联网的(公有或私有)基础架构。Akamai 拥有独特的架构,可将 DNS 资源划分到彼此不重叠的多个专用云环境之中。超过 225 名一线 SOCC 响应人员是 Akamai 的有力后盾;我们的全托管式解决方案可过滤攻击流量、拦截各种重大攻击,让您的防御人员可以腾出时间专注于高优先级的安全计划。Akamai 为现代企业提供保护,抵御云和分散式团队造成的漏洞。

Akamai 与网络安全

Akamai 对 IP、HTTP、HTTPS 等协议和端口的工作原理有着深刻理解,并藉此在网络安全领域树立了自身的威信。除了安全解决方案之外,Akamai 还通过云计算解决方案套件优化云计算、提供安全防护、可扩展性和监测能力,并且不受云服务提供商的束缚。我们的云计算产品套件包括 Download Delivery 产品线,能够优化全球范围内的每一次大型 HTTP 文件下载。

常见问题

端口可以是虚拟端口或物理端口,用于标识网络的起点和终点。虚拟端口会分配到一个 16 位的唯一编号,用于标识连接端点并将数据传送到特定服务或进程。端口用于将不同类型的流量传传送到设备,如电子邮件和网页。

端口使用两种协议:传输控制协议 (TCP) 和用户数据报协议 (UDP)。TCP 能提供更可靠的服务,因为它采用按顺序传送字节流的方式,将数据包分成多个数据流;任何未确认的数据流都会被重新发送。

端口号范围为 0 至 65535。1-1023 的编号分配给服务,1024 至 65535 是用于标识源的临时端口。端口 0 被 互联网号码分配局 指定为“保留”。

攻击者可以扫描端口,以寻找可利用的开放端口。防火墙根据安全规则阻止或允许流量。黑客会尝试利用开放端口传输恶意流量。防火墙会阻止除某些基本服务外的所有端口流量,如用于电子邮件的 25 端口、用于 HTTP 网络流量的 80 端口,及用于安全 HTTPS 网络流量的 443 端口。端口 3389 用于 RDP 流量,并且是公认的攻击媒介 ,黑客会寻找 RDP 中的漏洞,并将其用于勒索软件攻击和其他漏洞利用攻击。

主机(例如服务器)通常运行多个进程或应用程序,比如 Web 和电子邮件。每个主机都维护着一份表格,用来将端口号映射到进程,在有数据包送达主机时,主机会使用该表格来将数据包路由到正确的进程或服务。笔记本电脑等终端设备通常运行多个客户端,如网页浏览器和电子邮件阅读器。在数据包送达目标地址时,TCP 和 UDP 协议决定了要将数据包发到何处。尽管这两种协议都用来传送流量,但它们有着不同的功能。

TCP 即传输控制协议,它使用字节流将数据从发送方发送到接收方。TCP 的核心功能就是可以确保按顺序可靠地传输字节流。IP 数据包在路由过程中可能会被丢弃,所以这种功能必不可少。TCP 将数据流拆分成片段,随后在带有序列号的 IP 数据包内传输每一个片段,通过这种方式来保证按照顺序加以传输;接收方会在收到 IP 数据包序列时加以确认。如果没有收到某个 IP 数据包序列的确认,发送方会在达到超时阈值之后重新发送未收到的片段。

UDP 与 TCP 之间的主要区别在于,UDP 不提供送达保证。UDP 用来将数据包从发送方发送到接收方。数据报在 IP 数据包内传输。端口号是 UDP 数据报与 IP 数据包之间的唯一重要区别。但 UDP 不提供送达保证,因此需要安全、可靠的数据传输的服务(如电子邮件和网站)会选择 TCP 端口。

客户为什么选择 Akamai

Akamai 支持并保护网络生活。全球各大优秀公司纷纷选择 Akamai 来打造并提供安全的数字化体验,为数十亿人每天的生活、工作和娱乐提供助力。 Akamai Connected Cloud是一个大规模分布式边缘和 云平台,让应用程序和体验更靠近用户,帮助用户远离威胁。

探索 Akamai 的所有安全解决方案