假设应用程序将带有TCP标头的数据包发送到服务器以获取特定功能,其标头为ethernet + IPv4 + TCP。是否可以使用UDP头发送相同的数据包,其中所有数据都相同?据我所知,接收方将只是逐层解复用数据包的报头,因此当UDP报头成功解复用时,应将数据包的数据传递给服务器的应用层。有什么误解吗?
答案 0 :(得分:0)
接收方将不知道将数据传递到哪个应用程序,因为没有应用程序正在侦听指定的UDP端口。 pacakge将被删除。
答案 1 :(得分:0)
如果服务器侦听端口,无论使用哪种协议,顶部都会有一些应用程序逻辑,期望某些数据到达此端口。
根据您的示例,如果服务器侦听两个端口(A + B),它肯定希望在这两个端口中的每一个上都有不同的类型的数据。
如果clinet现在决定切换端口,比如将要转移到端口A的数据发送到端口B,服务器的应用程序逻辑肯定会感到困惑,因为它不知道它在端口B上收到的内容(如果设计得很好)服务器中的软件)它将断开端口B上的连接。
这种情况完全取决于使用哪种协议。
就像你试图将电脑的电源线插入网络插座但插入电源插座一样。虽然两个插座都内置在PC中,但您不能简单地使用任何插座进行任何类型的连接/传输。
答案 2 :(得分:0)
假设应用程序将带有TCP标头的数据包发送到服务器以获取特定功能,其标头为ethernet + IPv4 + TCP。
我无法想到这一点。应用程序不发送TCP数据包。应用程序发送数据TCP发送TCP数据包。
是否可以使用UDP头发送相同的数据包,其中所有数据都相同?
是的,当然,只需通过UDP套接字而不是TCP套接字发送它,假设数据符合UDP数据报。
根据我的知识,接收方将只对多路复用的报头进行解复用 逐层数据包,因此当UDP报头成功解复用时,数据包的数据应传递到服务器的应用层。
有任何误解吗?
不是真的,但是你滥用标准术语,并将权力归功于其他地方真正存在的应用程序。该应用程序与以太网或TCP或UDP或IP标头无关。
我也有强烈的感觉,你是在一个小山丘上建造一座山。