端点和套接字有什么区别?

时间:2017-11-25 17:49:06

标签: sockets networking endpoint

我见过的几乎所有套接字定义都与端点术语非常相关:

wikipedia

  

网络套接字是用于发送或接收数据的内部端点   在计算机网络中的单个节点上。具体地说,它是一个   在网络软件中表示此端点

This answer

  

套接字是(双向)通信中的端点

Oracle's definition

  

套接字是两者之间双向通信链路的一个端点   在网络上运行的程序

甚至stackoverflow对标签'套接字'的定义是:

  

双向进程间通信流的端点

This other answer更进一步:

  

TCP套接字是端点实例

虽然我不明白在这种情况下“实例”是什么意思。如果根据this回答,端点是URL,我看不出如何实例化。

2 个答案:

答案 0 :(得分:2)

恕我直言 - 逻辑上(强调)“套接字”和“端点”是相同的,因为它们都是互联网地址与 TCP 端口的串联。严格来说,在核心网络中,没有什么像“端点”这样的东西,只有“套接字”。继续,阅读下面的更多内容...

正如@Zac67 所强调的那样,“套接字”是网络中一个非常具体的术语——如果您阅读 TCP RFC (https://tools.ietf.org/html/rfc793),那么您甚至找不到“端点”的一个引用,它只谈论“插座”。但是当你离开 RFC 世界时,你会听到很多关于“端点”的内容。

现在,他们都在谈论 IP 地址和 TCP 端口的组合,但你不能说“请给我你的应用程序的套接字”,你会说“请给我您的应用程序的端点”。因此,恕我直言,有人可以理解 Socket 和 Endpoint 之间的区别的方式是 - 即使两者都是指 IP 地址和 TCP 端口的组合,但是当您在计算机进程的上下文或操作系统的上下文中交谈时,您使用术语“套接字”,否则,在与一般人交谈时,您将使用“端点”。

答案 1 :(得分:1)

“端点”是一个通用术语,包括管道,接口,节点等,而“套接字”是网络中的特定术语。