为什么互联网上的进程不需要使用TCP或UDP?
-
29-09-2020 - |
题
这里是Andrew S. Tanenbaum,计算机网络,第5版,第5章(网络层)的摘录,第455页:
[第五,不需要在互联网上使用TCP或UDP。如果机器上的用户决定使用某些新的传输协议与计算机B上的用户通信(例如,对于多媒体应用程序),则引入NAT框将导致应用程序失败,因为NAT框将无法使用正确找到TCP源端口。]
我的问题是:在这种情况下。“过程”是什么意思?它是路由器之间数据交换的过程吗?为什么互联网上的进程不需要使用TCP或UDP?不是IP协议的一部分,因此它将在Internet上使用?
解决方案
一个过程是由一个或多个线程执行的计算机程序的实例。它包含程序代码及其活动。根据操作系统(OS),过程可以由多个执行线程组成,该线程同时执行指令
所以,随着Tanenbaum指出,希望通过互联网进行通信的过程,需要 Not 使用TCP或UDP。实际上,除了TCP或UDP之外还有其他传输协议,尽管这两个是最常见的。请参阅 Wikipedia在传输协议上为其他传输协议(如SCTP和DCCP)。 NAT框需要TCP源端口到工作,无法正常使用其他传输协议。我认为Tanenbaum给出了多媒体应用程序的示例,因为要求可以是完全不同的,例如,对于实时多媒体,在这里还有另一个传输协议组合,RTP / UDP / IP(REP OVER UDP上的实时传输协议,然后IP)更适合多媒体流量而不是TCP / IP。
其他提示
在TCP和UDP下,没有IP是一个单独的下层。您可以通过PC发送原始IP数据包,并通过现有的Internet基础架构将其达到世界的另一边(假设相关的防火墙规则允许它们)。IP标头具有字节以指定正在使用的下一个协议。秒超过一半被分配给协议。只有2项的分配仅适用于TCP和UDP。
TCP和UDP层加入2字节端口号,以便在同一IP地址上的多个侦听过程区分哪个过程符合该数据包。TCP另外添加了丢失数据包的连接语义。