W nagłówku każdego segmentu czy datagramu, znajduje się numer portu źródłowego i numer portu docelowego. Numer portu źródłowego jest powiązany z aplikacją, która wysłała te dane na hoście źródłowym. Jak to przedstawiono na rysunku, port docelowy wskazuje do jakiej aplikacji mają trafić dane na hoście docelowym.

Jeżeli wiadomość jest dostarczana z użyciem protokołu TCP lub UDP, wymagane protokoły i usługi są identyfikowane za pomocą numeru portu. Port jest numerycznym identyfikatorem wewnątrz każdego segmentu, który jest używany do śledzenia określonych konwersacji i żądania usług docelowych. Każda wiadomość, którą wysyła host, zawiera zarówno port źródłowy, jak i docelowy.

Port docelowy

Klient umieszcza numer portu docelowego w segmencie, aby wskazać serwerowi docelowemu, jakiej usługi żąda. Przykładowo, port 80 odnosi się do protokołu HTTP lub innych usług sieci Web. Dla przykładu, sprecyzowany port 80 jest dla serwera, który odbiera zapytanie, informacją o tym, że wymagane są usługi sieci Web. Należy pamiętać, że serwer może oferować równolegle więcej niż jedną usługę. Np. serwer może "pracować" na porcie 80 i w tym samym czasie oferować realizację połączeń FTP na porcie 21.

Port źródłowy

Numer portu źródłowego jest generowany losowo, przez urządzenie wysyłające dane w celu identyfikacji konwersacji pomiędzy dwoma urządzeniami. Umożliwia to prowadzenie wielu konwersacji równolegle. Innymi słowy, urządzenie może wysyłać wiele zapytań HTTP (np. wiele zakładek jednocześnie) do serwera jednocześnie. Osobne konwersacje są śledzone w oparciu o porty źródłowe.