是否有任何字段/选项/任何我可以放入TCP数据包(无论是syn还是ack或只是普通数据),我确信它会被另一端完整地返回?
例如。我想用一个数字“标记”一个特定的连接(src,srcport,dst,dstport),我总是可以从属于该连接的数据包中读取该数字。这意味着我可以在不使用4元组的情况下识别连接(如上所述)。
答案 0 :(得分:3)
是:它被称为封装在TCP服务器协议中的客户端协议。
换句话说:定义客户端协议以满足您的需求。不要试图在TCP开销中“推”额外的位。
TCP当然有“options”开销,但我怀疑你会找到一种简单的方法来访问这些......无论如何,你不应该这样做。
答案 1 :(得分:1)
您可以在应用程序中使用查找表,将标记与套接字关联。
答案 2 :(得分:1)
您可能会滥用TCP时间戳选项。不过,这似乎不是一个好主意。
答案 3 :(得分:0)
不,您所描述的内容没有任何便利。
通常,如果您正在编写一个与其他系统有多个连接的套接字应用程序,您将要做的是跟踪属于每个远程系统的套接字句柄。在接收数据时,您正在使用套接字句柄(以某种形式,不知道您正在使用哪种操作系统或语言),因此您可以根据任何套接字句柄采取适当的操作。
我从未见过基于4元组地址/端口跟踪连接的服务器应用程序。这似乎太过分了。
在重新阅读您的问题时,您似乎可能会从TCP驱动程序级别的角度提出这个问题。你在这里写什么样的软件?
答案 4 :(得分:0)
在UDP中,目标IP和目标端口号用于解复用数据包,但在TCP目标IP,源IP,目标端口号和源端口号(4元组)都需要区分连接为什么推理为这种用法。