2009-11-27 122 views
1

是否有任何字段/选项/任何东西,我可以把一个TCP包(不管是SYN或ACK或只是简单的数据),我可以肯定将由另一端完好归还?TCP连接持久状态

例如,我想用一个数字来“标记”一个特定的连接(src,srcport,dst,dstport),我总是可以从属于那个连接的数据包中读取这个数字。这意味着我可以在不使用四元组的情况下识别连接(如上所述)。

+0

这是一个编程问题? – Abel 2009-11-27 01:01:10

+1

http://www.packetdrop.net/ – jldupont 2009-11-27 01:04:35

+1

packetdrop.net ...谢谢,那就是我想要的地方:) – TripShock 2009-11-27 12:12:36

回答

1

您可能会滥用TCP时间戳选项。不过,这似乎不是一个好主意。

+1

不好的坏主意。 – jldupont 2009-11-27 01:14:14

+0

为什么这是一个坏主意? – TripShock 2009-11-27 12:13:24

+2

因为它是一个标准字段,只能以标准方式进行操作。在两个端点之间有很多网络元素,当流量穿过像互联网这样的地方时更是如此。你永远不知道什么时候一些DPI(深度包检测)装备的机器将强制适用于某个领域的适当语义,即使是低使用率的领域。 – jldupont 2009-11-28 20:21:23

3

是:它被称为封装在TCP服务器协议中的客户端协议。

换句话说:定义客户端协议,以满足您的需求。不要试图在TCP开销中“推”额外的比特。


当然也有在TCP的“options”开销,但我怀疑,你会发现一种简单的方法来访问这些......在任何情况下,你不应该。

0

不,没有任何设施可以描述您所描述的内容。

通常如果你正在写与其他系统的多个连接套接字应用程序,你要做的,就是跟踪属于每个远程系统的套接字句柄的。在接收数据时,您使用套接字句柄(以某种形式,不知道您使用的是哪种操作系统或语言),以便您可以根据任何套接字句柄采取适当的操作。

我从来没有看到跟踪的基础上的地址/端口的四元组连接的服务器应用程序。这似乎是太多的工作。

重读你的问题,好像你可能会问这从视TCP驱动程序级别的点。你在这里写什么软件?

1

你可以在你的应用程序中的查找表,你的标签与插座关联。

0

在UDP中,目标IP和目标端口号用于解复用数据包,但是在TCP目标IP,源IP,目标端口号和源端口号(4元组)中都需要区分连接为什么推理为此使用。