套接字是传输层和应用层的接口
和网络层和传输层使用的端口是有区别的。
套接字可理解为:IP+端口。两个du都是传输层以上的概念
套接字zhi是支持TCP/IP网络通信dao的基本操作单元。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。
套接字是用网络节点的IP地址和端口号来标识的。
如果一个网络节点希望向网络发送TCP数据,它首先创建一个套接字,将该套接字连接到远程节点上的一个套接字,然后将数据发送到该套接字。如果一个网络节点想要接收TCP数据,首先要创建一个套接字,然后监听套接字上的传入连接。当接收到连接时,它可以(可选地)创建一个新的套接字来处理连接,然后接收新套接字上的数据——这样可以让原来的套接字继续侦听额外的传入连接。
由此可以看出,任何一个网络节点都可以同时参与多个网络会话( network conversations)——每个唯一会话的每一端都使用一个套接字。
套接字作为应用程序进程和运输层协议之间的接口。在发送端的应用程序将报文推进该套接字。在该套接字的另一侧,运输层协议负责使该 报文进入接受进程的套接字。