我在搜索过程中看到,可以在同一台计算机上使用两个不同的程序通过网络通信,只要一个使用UDP,另一个使用TCP,并且使用相同的端口和网络接口。然而,我没有得到一个好的解释,它是如何实现的以及为什么这是可能的?
多个程序是否可以使用相同的UDP端口,因为UDP并不建立对等方之间的真正连接,而只是将数据包发送到一个地址?我知道TCP不可能做到这一点,因为它在服务器和客户端之间创建了一个同步连接,但UDP呢?
如果可能,请详细解释一下,或者提供一个关于这个主题的好文章链接。
我在搜索过程中看到,可以在同一台计算机上使用两个不同的程序通过网络通信,只要一个使用UDP,另一个使用TCP,并且使用相同的端口和网络接口。然而,我没有得到一个好的解释,它是如何实现的以及为什么这是可能的?
多个程序是否可以使用相同的UDP端口,因为UDP并不建立对等方之间的真正连接,而只是将数据包发送到一个地址?我知道TCP不可能做到这一点,因为它在服务器和客户端之间创建了一个同步连接,但UDP呢?
如果可能,请详细解释一下,或者提供一个关于这个主题的好文章链接。
仅通过IP地址和端口无法确定目标。还有一件事情- IP头有一个称为协议
的字段,它区分TCP和UDP端点。因此,只要通信协议不同,就有可能让两个进程绑定到相同的IP:端口。
因为它们不是地址方式的唯一组成部分。这就像你可以在不同的街道上有相同编号的两座房子,或者你知道约翰·沃芬不是约翰·比格布特的红色Lectroid。
每个IP数据包都包含一个字段,指定要使用哪种传输层协议,在该协议的域内有一组端口,这些端口可以与任何其他协议中的端口相同,因为它们实际上是完全独立的集合。
至于第二个问题,答案在其他地方。