TCP端口和OSI模型

Ant*_*arf 2 port tcp osi

关于 TCP/IP 堆栈,我有一些不明白的地方:端口。有一个 IP 可以识别机器和该机器上特定进程的端口。对我来说,端口与应用层有关;某些进程有一些端口(80 用于 HTTP,25 用于 SMTP 等...)。端口与 TCP 层(传输)无关。端口应该在更高级别(应用层)实现。那么为什么说“TCP端口”而不是“应用程序端口”呢?

谢谢

Kah*_*Kah 6

TCP 或 UDP 端口在 OSI 模型的第 4 层或 TCP/IP 模型的第 3 层中定义,两者都定义为“传输”层。

\n\n

OSI 第 5 层“会话层”使用第 4 层中定义的端口在通信设备/程序/等之间创建套接字和会话。

\n\n

关于OSI模型的提醒:

\n\n

它是一个概念模型。这意味着它描述了一组理想化的、抽象的、理论性的网络功能。它没有描述某人实际建造的任何东西(至少没有描述今天正在使用的任何东西)。

\n\n

它不是唯一的模型。还有其他模型,最著名的是 TCP/IP 协议套件(RFC-1122 和 RFC-1123),它更接近当前使用的模型。

\n\n

关于 OSI(或任何其他)模型,需要了解的最重要的事情是:

\n\n
    \n
  • 我们可以将协议分为几层
  • \n
  • 层提供封装
  • \n
  • 层提供抽象
  • \n
  • 层将功能与其他层解耦
  • \n
\n\n

将协议分为几层使我们能够分别讨论它们的不同方面。它使协议更容易理解并且更容易排除故障。我们可以轻松地隔离特定功能,并将它们与其他协议的类似功能分组。

\n\n

每个 \xe2\x80\x9cfunction\xe2\x80\x9d (广义上讲)封装了其上方的层。网络层封装了其之上的各层。数据链路层封装了网络层等等。

\n\n

层抽象了它下面的层。您的网络浏览器不需要知道您是否在网络层使用 TCP/IP 或其他内容(就好像有其他内容一样)。对于您的浏览器来说,较低层仅提供数据流。该流的显示方式对浏览器是隐藏的。TCP/IP 不知道(或关心)您是否使用以太网、电缆调制解调器、T1 线路或卫星。它只处理数据包。想象一下,设计一个必须处理所有这些问题的应用程序会有多困难。这些层抽象了较低层,因此软件设计和操作变得更加简单。

\n