icq autopsie
ICQ autopsie
Acum, că aveți o idee despre activitatea ICQ poți vorbi despre lucruri mai serioase. Acum am, de fapt, să ne deschidere ICQ.
date de protocol UDP Poștale
După cum sa menționat deja, mesajele ICQ pot fi trimise prin UDP. UDP câmp de pachete de date la trimiterea de la client la server are următoarea structură:
0 sau mai mulți parametri. Depinde de câmpul de comanda
Luați în considerare fiecare dintre parametrii trecut la pachet:
VERSIUNEA - este prezentă în fiecare ambalaj, indicând în primul rând că acest pachet de ICQ. De asemenea, se indică numărul de versiune ICQ (aici este versiunea 4 a ICQ. Deci, valoarea va fi 04, 00)
SEQ_NUM (n) - conține un număr de secvențe de pachete. Fiecare pachet are numărul său unic propriu, exceptând cazurile când pachete de retransmisie. Acest câmp este utilizat pentru a urmări pierderea de pachete sau duplicarea. Fiecare pachet crește valoarea de unul. Server și client sunt pachete de numerotare care nu se suprapun. Ie pachete de numărul de secvență de la serverul nu este conectat la numerele de serie ale pachetelor de client. Numărul primului pachet la serverul începe cu 00 00 și 01 00 la client.
COMANDĂ - trimite comenzi pot avea valori diferite, dar ne vom ocupa doar cele mai elementare, necesare pentru transmiterea mesajelor și a stării de ieșire a clientului.
Comenzile trimise de la client la server:
Înregistrează-te pe server
Pentru a transfera server „lista de contacte“
Acesta este trimis pentru a confirma faptul că utilizatorul nu este deconectat de la rețea
Utilizatorul a schimbat statusul
Trimis în timpul înregistrării pe server
Actualizarea informațiilor de bază despre utilizator
Trimite un mesaj pentru utilizator, nu în lista de contacte. Este folosit pentru a trimite textul care însoțește solicitarea de a adăuga la lista de contacte
ACK - confirmare de primire a pachetului. Spre deosebire de alte echipe, câmpul SEQ_NUM conține numărul de serie al recepției mesajului este confirmată. Acceptarea acestui pachet nu ar trebui să fie confirmat.
SEND_MESSAGE - trimite un mesaj prin intermediul serverului.