2009-11-27 3 views
1

Есть ли какое-либо поле/параметр/все, что я могу поместить в TCP-пакет (будь то syn или ack или просто данные), которые, я уверен, будут возвращены другим концом целыми?Постоянное состояние TCP-соединения

Для примера. Я хочу «пометить» конкретное соединение (src, srcport, dst, dstport) с числом, которое я всегда могу прочитать из пакета, принадлежащего этому соединению. Это означает, что я могу идентифицировать соединение, не используя 4-кортеж (как указано выше).

+0

Это вопрос программирования? – Abel

+1

http://www.packetdrop.net/ – jldupont

+1

packagedrop.net ... спасибо, это именно то, где я хочу быть :) – TripShock

ответ

1

Возможно, вы можете использовать опцию TCP Timestamp для этого. Однако это не похоже на отличную идею.

+1

плохой плохой идеей. – jldupont

+0

Почему это плохая идея? – TripShock

+2

Потому что это стандартное поле и должно управляться только стандартным образом. Существует множество сетевых элементов между двумя конечными точками и тем более, когда трафик пересекает такое место, как Интернет. Вы никогда не знаете, когда какой-либо DPI (Deep-Packet-Inspection) оборудовал машину, обеспечит правильную семантику для поля, даже с низким уровнем использования. – jldupont

3

Да: он называется протоколом клиента, инкапсулированным в протоколе TCP-сервера.

Другими словами: определить протокол клиента в соответствии с вашими потребностями. Не пытайтесь «перетаскивать» лишние биты в служебных данных TCP.


Есть, конечно, «options» над головой в TCP, но я сомневаюсь, что вы найдете простой способ получить доступ к этим ... и в любом случае, вы не должны.

0

Нет, у вас нет объектов для описания.

Обычно, если вы пишете приложение сокета с несколькими подключениями к другим системам, отслеживается дескриптор сокета, который принадлежит каждой удаленной системе. При получении данных вы используете дескриптор сокета (в той или иной форме, не знаете, какую ОС или язык вы используете), поэтому вы можете предпринять соответствующие действия на основе любой дескриптор сокета.

Я никогда не видел серверное приложение, которое отслеживает соединения на основе 4-кортежей адресов/портов. Это похоже на слишком много работы.

Перечитывая свой вопрос, кажется, вы можете спросить об этом с точки зрения уровня драйвера TCP. Какое программное обеспечение вы пишете здесь?

1

В приложении может быть таблица поиска, в которой вы связываете свой тег с сокетом.

0

В UDP IP-адрес назначения и номер порта назначения используются для демультиплексирования пакетов, но в IP-адресе назначения TCP, IP-адрес источника, номер порта назначения и номера портов источника (4-кортежи), необходимые для различения соединений, почему аргументация для этого использования.

Смежные вопросы