关于TCP / IP堆栈,我有些不了解的地方:端口。 有一个IP可以标识机器和该机器上特定进程的端口。 对我而言,端口与应用层有关;有一些用于某些处理的端口(用于HTTP的80,用于SMTP的25等)。端口与TCP层(传输)无关。端口应在更高级别(应用层)实现。那么,为什么要说“ TCP端口”而不是“应用程序端口”?
谢谢
答案 0 :(得分:0)
TCP或UDP端口在OSI模型的第4层或TCP / IP模型的第3层中定义,都定义为“ 传输”层。
OSI第5层“会话层”使用第4层中定义的端口在通信设备/程序/等之间创建套接字和会话。
关于OSI模型的提醒:
这是一个概念模型。这意味着它描述了一组理想的,抽象的,理论上的网络功能。它没有描述某人实际建造的任何东西(至少没有今天使用的东西)。
这不是唯一的模型。还有其他模型,最著名的是TCP / IP协议套件(RFC-1122和RFC-1123),它更接近于当前使用的模型。
要了解的OSI(或任何其他)模型最重要的事情是:
将协议分为几层,使我们可以分别讨论它们的不同方面。它使协议更易于理解和解决。我们可以轻松地隔离特定功能,并将其与其他协议的相似功能分组。
每个“功能”(广义上)都封装了其上方的层。网络层封装了其上方的各层。数据链路层封装了网络层,依此类推。
图层将其下面的图层抽象化。您的网络浏览器不需要知道您是在网络层上使用的是TCP / IP还是其他功能(好像还有其他功能)。对于您的浏览器,较低的层仅提供数据流。从浏览器中隐藏了该流如何显示。如果您使用的是以太网,电缆调制解调器,T1线或卫星,则TCP / IP不会(或不在乎)。它只处理数据包。想象一下设计一个必须处理所有这些问题的应用程序将有多么困难。这些层抽象了较低的层,因此软件的设计和操作变得更加简单。