socket是哪一层的概念?

网络工程 传输协议 第4层
2021-07-09 08:55:17

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

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

1个回答

套接字是一个 TCP(传输层)概念(在Stack Overflow上也清楚地解释了套接字的偏离主题的编程概念)。RFC 793,传输控制协议_ 解释:

多路复用:

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

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

连接:

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

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

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