аутопсия ICQ

аутопсия ICQ

Сега, когато имате някаква представа за работата на ICQ може да се говори за неща, по-сериозни. Сега ние, всъщност, нека отваряне ICQ.

данни пощенското UDP протокол

Както вече споменахме, ICQ съобщения могат да се изпращат по UDP. UDP пакети данни поле при изпращане от клиента към сървъра има следната структура:

0 или повече параметри. Това зависи от област COMMAND

Помислете за всеки от параметрите, предавани на пакета:

ВЕРСИЯ - присъства във всеки пакет, което показва, първо, че този пакет от ICQ. Той също така посочва номера на ICQ версия (тук е версия на ICQ 4. Така стойността ще бъде 04, 00)

SEQ_NUM (п) - съдържа номер на пакет последователност. Всеки пакет има свой уникален номер, освен когато препредаване пакет. Това поле се използва за проследяване на загуба на пакети или дублиране. Всеки пакет увеличава стойността по един. Сървърът и клиентът да не се припокриват номериране пакети. Т.е. брой последователност на пакети от сървъра не е свързан към серийните номера на пакети от клиента. Брой на първия пакет със сървъра започва с 00 00 и 01 00 при клиента.

COMMAND - изпраща команди могат да имат различни стойности, но ние ще се занимава само с най-основните, необходими за предаване на съобщения и за състоянието на изхода на клиента.

Команди от клиента към сървъра:

Регистрация на сървъра

За да прехвърлите сървър "списък с контакти"

Той е изпратен, за да потвърдите, че потребителят не е изключен от мрежата

Потребителят се промени статуса си

Изпратено по време на регистрацията на сървъра

Актуализиране на основна информация за потребителя

Изпрати съобщение до потребителя, а не в списъка ви с контакти. Тя се използва за изпращане на текста, придружаващ искането да добавите към вашия списък с контакти


ACK - потвърждение за получаване на пакета. За разлика от други отбори, област SEQ_NUM съдържа серийния номер на рецепцията на съобщение е потвърдена. Приемането на този пакет не трябва да бъде потвърдена.

SEND_MESSAGE - изпращане на съобщение чрез сървъра.