Porty
Komputer jednocześnie wysyła i odbiera pocztę strony internetowe połączenia VOIP te usługi są śledzone przez usługi oparte o TCP i UDP. Do rozróżniania segmentów przeznaczonych do poszczególnych aplikacji w nagłówku segmentu są zawarte 16-bitowe numerów portów źródłowego i docelowego .
1. Porty ogólnie znane (ang. well-known) mają numery z przedziału 0-1023. Dobrze znane porty są zdefiniowane dla aplikacji serwerowych Niektóre aplikacje i przypisane numery portów telnet -23, SMTP-25HTTP- 80, FTP-20dane, FTP-21sterowanie
2. Porty zarejestrowane (ang. registered) mają numery z przedziału 1024 - 49151. Zarejestrowane porty są przypisywane do procesów użytkownika
Dynamiczne porty(efemeryczne)- są przypisywane dynamicznie do aplikacji klienckich podczas inicjowania polaczenia
3. Porty dynamiczne -krótkotrwałe(efemeryczne) mają numery z przedziału 49152-6535.
. Gdy klient chce skontaktować się z serwerem, wówczas musi go zidentyfikować. klienci używają portów efemerycznych czyli krótkotrwałych Klienci zwykle nie muszą zajmować się numerami
***************************************************************************
Funkcje ustalające kolejności bajtów
Sieci komputerowe mają swoje standardy określające w jakiej kolejności mają być przesyłane bajty .
W systemach operacyjnych nie ma standardu określającego kolejność bajtów .
Big endian to forma zapisu danych, w której najbardziej znaczący bajt umieszczony jest jako pierwszy. Procesory, które używają formy big endian, to między innymi Motorola 68000, IBM System/360
Procesor zapisujący 32-bitowe wartości w pamięci, przykładowo A0 B7 07 08 od adresem 100, umieszcza dane, zajmując adresy od 100 do 103 w następującej kolejności:
100 101 102 103
A0 B7 07 08
czyli np. jeśli na swoim komputerze wyślę 0xA0 0xB7 0x07 0x08, na komputerze z drugiej strony uzyskam 0xA0 0xB7 0x07 0x08
Little endian to forma zapisu danych, w której mniej znaczący bajt umieszczony jest jako pierwszy. Procesory, które używają formy little endian, to między innymi wszystkie z rodziny x86, DEC .Procesor zapisujący 32-bitowe wartości w pamięci, przykładowo 08 07 B7 A0. pod adresem 100, umieszcza dane zajmując adresy od 100 do 103 w następującej kolejności:
100 101 102 103
08 07 B7 A0.
czyli jeśli na swoim komputerze wyślę 0xA0 0xB7 0x07 0x08, na komputerze z drugiej strony uzyskam 0x08 0x07 0xB7 0xA0 ***********************************************************************
Konwersja wartości pomiędzy lokalnym a sieciowym porządkiem bajtów
Funkcja htonl() przekształca wartość long integer hostlong z lokalnego na sieciowy porządek bajtów.
Funkcja htons() przekształca wartość short integer hostshort z lokalnego na sieciowy porządek bajtów.
Funkcja ntohl() przekształca wartość long integer netlong z sieciowego na lokalny porządek bajtów.
Funkcja ntohs() przekształca wartość short integer netshort z sieciowego na lokalny porządek bajtów.