socket是什么层的概念?

网络工程 传输协议 第 4 层
2022-02-28 11:31:01

在网络层,IP地址是一个概念。

在传输层,端口是一个概念。socket是传输层的概念吗?如果不是,那么传输层中socket对应的概念是什么?socket是什么层的概念?

1个回答

套接字是一个 TCP(传输层)概念(还有套接字的题外话编程概念,在Stack Overflow上有清楚的解释)。RFC 793,传输控制协议_ 解释:

多路复用:

为了允许单个主机内的多个进程同时使用 TCP 通信设施,TCP 在每个主机内提供一组地址或端口。与来自互联网通信层的网络和主机地址连接起来,这形成了一个 套接字一对套接字唯一地标识每个连接。也就是说,一个套接字可以同时用于多个连接。

端口到进程的绑定由每个主机独立处理。然而,将经常使用的进程(例如,“记录器”或分时服务)附加到公众已知的固定套接字被证明是有用的。然后可以通过已知地址访问这些服务。建立和学习其他进程的端口地址可能涉及更多的动态机制。

连接:

上述可靠性和流量控制机制要求 TCP 初始化和维护每个数据流的某些状态信息。这些信息(包括套接字、序列号和窗口大小)的组合称为连接。每个连接都由一对标识其两侧的套接字唯一指定。

当两个进程希望进行通信时,它们的 TCP 必须首先建立连接(初始化每一端的状态信息)。当他们的通信完成时,连接将被终止或关闭以释放资源以供其他用途。

由于必须在不可靠的主机之间以及通过不可靠的互联网通信系统建立连接,因此使用具有基于时钟的序列号的握手机制来避免连接的错误初始化。