Dydaktyka:
FeedbackTo jest stara wersja strony!
Przypomnienie: skąd wiadomo jaki jest używany:
https://pl.wikipedia.org/wiki/IPv4#Nag.C5.82.C3.B3wek_IP
Lista przydzielonych numerów protokołów
/etc/protocols
(less /etc/protocols
)
System operacyjny wybiera do jakiego programu ma trafić wiadomość na podstawie numeru protokołu warstwy transportowej oraz numeru portu – adresu na warstwie transportowej.
Żeby system operacyjny wiedział który proces czeka na wiadomości kierowane na konkretny port, trzeba wpierw powiązać (bind
) numer portu z procesem.
Lista domyślnych portów:
/etc/services
Połączenie między dwoma programami jest identyfikowane na podstawie:
Protokoły warstwy transportowej używają zwykle numerów portu z zakresu 0÷65535.
Ten zakres jest podzielony na porty:
netstat [-a|-l] [-t] [-u] [-p] [-n]
(np. netstat -atupn
)ss [-a|-l] [-t] [-u] [-p] [-n]
(np. ss -atupn
)/proc/net/(tcp|udp|…)
(np. cat /proc/net/tcp
)
Testowanie łączności programami netcat
/ nc
oraz socat
Najpopularniejszy program netcat / nc ma wiele wersji, między innymi:
Serwer (GNU / "oryginalny" / bb) | Serwer (BSD) | Klient | |
---|---|---|---|
TCP | nc -l -p 12345 | nc -l 12345 | nc 10.0.0.1 12345 |
UDP | nc -u -l -p 12345 | nc -u -l 12345 | nc -u 10.0.0.1 12345 |
Mniej popularny, bardziej rozbudowany (i wciąż rozwijany) socat
Serwer | Klient | |
---|---|---|
TCP | socat TCP-LISTEN:12345 - | socat - TCP-CONNECT:10.0.0.1:12345 |
UDP | socat UDP-RECV:12345 - | socat - UDP-SENDTO:10.0.0.1:12345 |
UDP | socat UDP-LISTEN:12345 - | socat - UDP:10.0.0.1:12345 |
SCTP | socat SCTP-LISTEN:12345 - | socat - SCTP-CONNECT:10.0.0.1:12345 |
Socat nie rozróżnia wielkości liter, pozwala na skróty - np. udp-l
jako udp-listen
czy tcp
jako tcp-connect
Adresy IPv6 podaje się w nawiasach kwadratowych (sic!), np. [::1]
Inne przykłady:
nc www.put.poznan.pl 80
) tekst: GET /
(pusta linia ma znaczenie)
socat tcp-l:12345,fork -
, przyłącz kilka osóbsocat tcp-l:12345,reuseaddr -
socat tcp-l:8080,fork tcp:fc.put.poznan.pl:80
nc sunsite.icm.edu.pl 21
wyślij: USER anonymous PASS anonymous EPSV
Dalej: otwórz połączenie na ten sam adres i otrzymany w odpowiedzi port
Przez pierwsze połączenie wyślij:
LIST QUIT
http://tools.ietf.org/html/rfc768
Działanie:
Wielkość datagramów ograniczona do 64k (zwykle wysyła się mniejsze).
Pozwala na używanie rozgłoszeń / multicastów
Protokoły / programy używające UDP: DNS, DHCP, strumieniowanie dźwięku (multimediów), gry sieciowe
Algorytm Nagle'awindow scale option, RTTM, congestion control (przeciążenie), ECN [1] [2], skaner portów, SYN flood
Protokoły / programy używające TCP - "wszysto", np. http, ftp, ssh, ssl, …
Poza TCP (75%-95% ruchu) i UDP (reszta) można spotkać jeszcze na warstwie transportowej następujące protokoły ogólnego przeznaczenia: