Wyk 11 SK ID4x2010 FTP


dr inż. K. Gromaszek Sieci Komputerowe
Sieci Komputerowe
Sieci Komputerowe
Wykład 11
File Transfer Protocol (FTP)
Protokół FTP
Protokół FTP
" Protokół FTP różni się od innych usług tym, iż wykorzystuje dwa połączenia TCP do
przesyłania plików:
" połączenie sterujące (control connection) jest zestawiane w architekturze klient/serwer.
Serwer otwiera pasywnie dedykowany port FTP (najczęściej 21) i oczekuje na
połączenie klienta. Klient wykonuje aktywne otwarcie portu i zestawia połączenie
kontrolne, które pozostaje aktywne przez cały czas trwania komunikacji klienta z
serwerem. Połączenie sterujące jest wykorzystywane do przesyłania oraz odbierania
rozkazów pomiędzy klientem i serwerem. Połączenie sterujące powinno posiadać
ustawione parametry pakietu IP TOS jako  minimize delay
" połączenie przesyłu danych (data connection) jest zestawiane każdorazowo przy
przesyle pojedynczego pliku. Połączenie przesyłu danych powinno posiadać ustawioną
wartość pola TOS w nagłówku IP jako  maximize throughput
Protokół FTP a pole TOS
Protokół FTP a pole TOS
Minimize Maximize Maximize Minimize Wart.
Usługa
delay throughput reliability monetary cost hex
0x10
Telnet/Rlogin 1 0 0 0
FTP
0x10
control 1 0 0 0
data 0 1 0 0
0x08
0x08
any bulk data 0 1 0 0
0x10
TFTP 1 0 0 0
SMTP
0x10
command phase 1 0 0 0
data phase 0 1 0 0
0x08
DNS
0x10
UDP query 1 0 0 0
0x00
TCP query 0 0 0 0
zone transfer 0 1 0 0
0x08
ICMP
0x00
error 0 0 0 0
query 0 0 0 0
0x00
0x04
any IGP 0 0 1 0
0x04
SNMP 0 0 1 0
0x00
BOOTP 0 0 0 0
0x02
NNTP 0 0 0 1
Transfer plików przez FTP
Transfer plików przez FTP
" Zadaniem interfejsu użytkownika jest więc tłumaczenie wykonywanych akcji (kopiowanie,
zakładanie katalogów, kasowanie,...) na komendy FTP i przesyłanie ich przez łącze
sterujące. A także, upraszczając, interpretacja otrzymywanych od serwera odpowiedzi i
przedstawianie ich w formie zrozumiałej dla użytkownika (np. komunikaty błędów).
Komendy protokołu FTP  Linia sterująca
Komendy protokołu FTP  Linia sterująca
" Wykorzystanie protokołu FTP opiera się na przesyłaniu komend do serwera oraz
odbieraniu od niego odpowiedzi poprzez połączenie sterujące.
" Rozkazy te są przesyłane jako znaki w formacie NVT ASCII i muszą być zakończone
parą znaków kontrolnych CR/LF. Długość rozkazu wynosi 3 lub 4 bajty i składa się z
drukowanych znaków ASCII, czasem z dodatkowymi argumentami.
Rozkaz Opis
ABORT Przerwanie wcześniejszego rozkazu lub transferu danych
LIST filelist Wylistowanie katalogów lub plików
PASS password Hasło na serwerze
PORT n1,& ,n6 Adres IP klienta (n1.n2.n3.n4) i nr portu (n5x256+n6)
QUIT Zamknięcie sesji z serwerem
RETR filename Otrzymanie (get) pliku
STOR filename Wysłanie (put) pliku
SYST Serwer zwraca typ pliku
TYPE type Określenie typu pliku: A=ASCII, I=image
USER username Użytkownik na serwerze
Komendy protokołu FTP  Linia sterująca
Komendy protokołu FTP  Linia sterująca
" Każdy rozkaz przesyłany od klienta do serwera powoduje wygenerowanie
odpowiedzi w przeciwnym kierunku. Składa się ona z trzech cyfr w formacie ASCII
(xyz) wraz z opcjonalnie zawartym dodatkowym kodem wiadomości.
Odpowiedz Opis
1yz Pozytywna wstępna odpowiedz
2yz Pozytywne przyjęcie rozkazu
3yz Pozytywne przejściowe odrzucenie rozkazu, ale w tej sytuacji powinien zostać wysłany
inny rozkaz
4yz Przejściowe odrzucenie rozkazu, który powinien zostać powinien zostać ponowiony
5yz Trwałe odrzucenie rozkazu, który nie powinien być ponawiany
x0z Błąd składni
x1z Informacja
x2z Połączenie. Odpowiedz na połączenie sterujące lub transferu danych
x3z Autoryzacja w systemie użytkowników serwera
x4z Niesprecyzowana komenda
x5z Status systemu plików
Opis komunikatów FTP - Linia sterująca
Opis komunikatów FTP - Linia sterująca
" Wykorzystanie wszystkich trzech cyfr do przesłania komunikatu odpowiedzi, rozszerza
znacznie jej wartość informacyjną. Poniżej przedstawiono kilka przykładowych
spotykanych komunikatów, wraz z wygenerowanym przez klienta opisem słownym:
125 Data connection already open; transfer
starting.
200 Command OK.
214 Help message (for human user).
331 Username OK, password required.
425 Can't open data connection.
452 Error writing file.
500 Syntax error (unrecognized command).
501 Syntax error (invalid arguments).
502 Unimplemented MODE type.
Reprezentacja danych  Linia sterujÄ…ca
Reprezentacja danych  Linia sterujÄ…ca
Cecha Wartość Opis
Domyślne ustawienie. Wymaga od klienta i serwera
konwersji plików z własnych systemów na NVT ASCII.
Podobnie jak w TFTP (netascii) każda linia musi być
ASCII zakończona znakami sterującymi CR/LF. Oznacza to w
praktyce, że odbiorca musi skanować każdy odbierany bajt
w poszukiwaniu tych znaków, co wpływa na obniżenie
wydajności transmisji.
Alternatywny format przesyłu danych tekstowych
file type EBCDIC wykorzystujący mechanizm EBCDIC znajdowania końca
linii.
Dane wysyłane są jako ciągły strumień bitów. Ten typ
wykorzystywany jest najczęściej do przesyłu danych
image, binary
binarnych lub multimedialnych.
Wykorzystywany w przesyle danych pomiędzy systemami
o różnej długości bajtu. Liczba bitów w bajcie jest
Local
określana przez nadawcę. Dla systemów 8-bit typ ten jest
tożsamy z image.
Wartość domyslna. Plik nie zawiera innych informacji
Nonprint
formatujących oprócz znaków CR/LF.
format
Plik zawiera formatowanie pionowe w formacie Telnet
control
Telnet
zgodne z kodami sterujÄ…cymi drukarek.
(ASCII)
Pierwszy znak każdej linii jest kodem sterującym w
Fortran
formacie Fortran.
Ustawienie domyślne. Plik jest traktowany jako ciągły
File structure
strumień bajtów i nie posiada wewnętrznej struktury pliku.
Ten format struktury jest wykorzystywany tylko w
structure record structure
przypadku plików tekstowych (ASCII i EBCDIC).
Każda strona jest transmitowana z unikatowym numerem
page structure
do odbiornika.
Ustawienie domyślne. Plik przesyłany jest jako strumień
Stream
bitów.
Transfer pliku odbywa się w postaci serii bloków
transmission
Block
poprzedzonych nagłówkami.
mode
Wykorzystanie kompresji pliku przy wysyłaniu (w
Compressed transmisji tekstowej kompresowane sÄ…  puste znaki, a w
binarnej 0.
Nawiązywanie połączenie FTP (1/2)
Nawiązywanie połączenie FTP
(1/2)
" Można wyszczególnić trzy sposoby wykorzystania łącza data connection:
«% przesyÅ‚ pliku z klienta do serwera
«% przesyÅ‚ pliku z serwera do klienta
«% przesyÅ‚ listingu plików lub katalogów z serwera do klienta
" Proces nawiązywania połączenia:
«% wywoÅ‚anie poÅ‚Ä…czenia data connection jest kontrolowane przez stacjÄ™ klienta,
ponieważ to one wysyła komendę wymuszającą transfer pliku (pobranie pliku, zapis
pliku, wylistowanie katalogu)
«% stacja klienta dokonuje wyboru portu dla Å‚Ä…cza danych, z puli portów dostÄ™pnych i
przeprowadza pasywne otwarcie wskazanego portu (prowadzi nasłuch)
«% stacja klienta wysyÅ‚a wybrany numer portu przez Å‚Ä…cze sterujÄ…ce komendÄ… PORT do
serwera, serwer odbiera numer i otwiera aktywne połączenie przez wskazany port ze
stacjÄ… klienta
Tryb aktywny FTP
Tryb aktywny FTP
" W trybie aktywnym, klient
korzystając z protokołu TCP
Å‚Ä…czy siÄ™ z
nieuprzywilejowanego porty
N> 1024 na port 21
(command) serwera
" Następnie klient zaczyna
nasłuchiwanie na porcie N+1
" Problemy trybu aktywnego:
" Wówczas serwer z portu 20
«% nawiÄ…zywanie poÅ‚Ä…czenia z portu 20
serwera na wysoki port klienta (data) powinien nawiązać
(FIREWALLE !!!)
połączenie TCP do klienta na
«% Przechodzenie takich poÅ‚Ä…czeÅ„ przez
podany mu port N+1
NAT
Tryb pasywny FTP
Tryb pasywny FTP
" RozpoczynajÄ…c transmisjÄ™ klient
otwiera dwa lokalne
nieuprzywilejowane porty
(N>1024 i najczęściej N+1)
" Z pierwszego z nich połączenie
nawiÄ…zywane jest na port 21
serwera z poleceniem PASV
" Serwer otwiera
nieuprzywilejowany port M>1024
a następnie wysyła do klienta
polecenie PORT M
" Problemy trybu aktywnego:
" Klient nawiązuje połączenie ze
«% Tryb pasywny otwiera dużą dziurÄ™ w
swojego drugiego portu N+1 na
systemie zabezpieczeń serwera FTP
M serwera w celu dokonania
«% RozwiÄ…zanie:
transferu danych
«% wykorzystanie okreÅ›lonego zakresu
" Port serwera 20 nie uczestniczy
w połączeniu pasywnym
portów wysokich + konfig. firewalla
Nawiązywanie połączenie FTP (2/2)
Nawiązywanie połączenie FTP
(2/2)
" Stacja klienta wybiera numery portów dla łącz odpowiednio: 1173  kontrolne, 1174 
danych i otwiera pasywnie port 1174.
" Następnie wysyłana jest komenda PORT, której argumentami jest sześć liczb 8-bit w
kodzie ASCII oddzielonych przecinkami. Pierwsze cztery liczby określają adres IP stacji
klienta (tu 140.252.13.34), a następne dwie określają 16-bit numer portu liczony jako: 4
x 256 +150 = 1174.
" W tym momencie serwer otwiera aktywnie port 20 (domyślnie) dla łącza danych stacji
klienta
Protokół HTTP
Protokół HTTP
" HTTP (Hypertext Transfer Protocol) jest protokołem odpowiedzialnym za przesyłanie w
internecie stron WWW
" Obsługiwany na porcie 80 TCP, oraz rzadziej na portach 8008 i 8080
" Do enkapsulacji HTTP poprzez strumień SSL zarezerwowany został port 443 TCP
(tworzÄ…c tzw HTTPS)
" Ponadto rzadko używany S-HTTP zapewniający bezpieczną transmisję na porcie 80
" Różnice między HTTPS i S-HTTP:
«% HTTPS - tworzy bezpieczny kanaÅ‚ do transmisji HTTP
«% S-HTTP  zorientowany na bezpiecznÄ… transmisjÄ™ pojedynczych komunikatów
protokołu HTTP
" W3C  organizacja zajmujÄ…ca siÄ™ rozwojem i standaryzacjÄ… HTTP
Protokół HTTP
Protokół HTTP
" Jednostką logiczną HTTP jest wiadomość (message) składająca się z
zapytania od klienta do serwera i odpowiedzi serwera
" Metody protokołu HTTP
Metoda Opis
DELETE Żądanie usunięcia zasobu z serwera
GET Żądanie zasobu z serwera w formie nagłówka i treści
HEAD Żądanie zasobu z serwera w formie nagłówka
LINK Żądanie od serwera relacji między istniejącymi zasobami
OPTIONS Żądanie od serwera identyfikacji obsługiwanych metod
POST Żądanie odebrania przez serwer danych od klienta
PUT Żądanie odebrania przez serwer pliku
TRACE Żądanie zwrócenia przez serwer nagłówków wiadomości wysyłanej
od klienta (dla celów testowych)
UNLINK Żądanie usunięcia relacji między istniejącymi zasobami
Kody stanu protokółu HTTP
Kody stanu protokółu HTTP
" Jednostką logiczną HTTP jest wiadomość (message) składająca się z
zapytania od klienta do serwera i odpowiedzi serwera
" Metody protokołu HTTP
Wart. Rodzaj Rodz EN Znaczenie
1xx Informacyjne Informational Żądanie odebrane, proces w trakcie
wykonywania
2xx Sukces Success Akcja została poprawnie odebrana
zrozumiana i zaakceptowana
3xx Przekierowanie Redirection Dalsze akcje muszą zostać podjęte aby
zakończyć żądanie
4xx Błąd po stronie klienta Client Error Żądanie ma złą składnię lub nie może
być spełnione
5xx Błąd serwra Server Error Serwer najprawdopodobniej nie może
wykonać poprawnego żądania
Dziękuję za uwagę
Dziękuję za uwagę
" Pytania ?
" Uwagi?


Wyszukiwarka

Podobne podstrony:
Wyk 10 SK ID4x2010 DNS SMTP
Wyk SK?2010Dostep
Wyk SK?2010
anonymous ftp sites list sk 1
Wyk ad 02
Mat Bud wyk
wyk(Ia) wstęp PBiID
anonymous ftp sites list nl 2
anonymous ftp sites list org 7
Stan cywilny, wyk struktura ludnosci wg 5 str
si ownie wyk?
Klasyfikacje jÄ…kania
Socjologia klasyczna WYK? 7 i 8
HG wyk 9
IAQ wyk 5
Wyk ad IV Minimalizacja funkcji logicznych

więcej podobnych podstron