SK Moduł 12: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd1.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd1.png|thumb|500px]] | ||
|valign="top"| | |valign="top"| | ||
|} | |} | ||
Linia 6: | Linia 6: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd2.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd2.png|thumb|500px]] | ||
|valign="top"|W tym rozdziale zostaną omówione i przedstawione podstawowe usługi sieciowe, z którymi większość użytkowników ma styczność na codzień. Część z nich jest nawet postrzegana jako synonim posiadania dostępu do sieci Internet, np. usługi WWW, poczta elektroniczna, a ich brak zmniejsza w znaczącym stopniu atrakcyjność posiadania tegoż dostępu. Oprócz nich istnieje liczna grupa usług, nieco mniej popularnych, wykorzystywanych w sieciach lokalnych i coraz częściej w sieciach rozległych, np. usługi terminalowe, o których również będzie mowa w tym rozdziale. | |valign="top"|W tym rozdziale zostaną omówione i przedstawione podstawowe usługi sieciowe, z którymi większość użytkowników ma styczność na codzień. Część z nich jest nawet postrzegana jako synonim posiadania dostępu do sieci Internet, np. usługi WWW, poczta elektroniczna, a ich brak zmniejsza w znaczącym stopniu atrakcyjność posiadania tegoż dostępu. Oprócz nich istnieje liczna grupa usług, nieco mniej popularnych, wykorzystywanych w sieciach lokalnych i coraz częściej w sieciach rozległych, np. usługi terminalowe, o których również będzie mowa w tym rozdziale. | ||
Kolejność omawiania usług będzie następująca: | Kolejność omawiania usług będzie następująca: | ||
Linia 20: | Linia 20: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd3.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd3.png|thumb|500px]] | ||
|valign="top"|Idea przesyłania informacji w postaci elektronicznej między użytkownikami w sieci jest tak samo stara, jak pomysł połączenia komputerów w sieć. Najczęściej pierwszym doświadczeniem z sieciami dla większości użytkowników było wysłanie/odebranie e-maila. Wygoda, szybkość i prostota programów pocztowych sprawiają, że poczta elektroniczna jest najczęściej wykorzystywaną usługą w sieciach. Co więcej, dla licznej grupy użytkowników dostępność tej usługi całkowicie zaspokaja ich potrzeby wykorzystania sieci. | |valign="top"|Idea przesyłania informacji w postaci elektronicznej między użytkownikami w sieci jest tak samo stara, jak pomysł połączenia komputerów w sieć. Najczęściej pierwszym doświadczeniem z sieciami dla większości użytkowników było wysłanie/odebranie e-maila. Wygoda, szybkość i prostota programów pocztowych sprawiają, że poczta elektroniczna jest najczęściej wykorzystywaną usługą w sieciach. Co więcej, dla licznej grupy użytkowników dostępność tej usługi całkowicie zaspokaja ich potrzeby wykorzystania sieci. | ||
Przedstawione poniżej protokoły ukrywają przed użytkownikiem mechanizm przesyłania poczty między serwerami oraz metody dostępu do jego skrzynek pocztowych. | Przedstawione poniżej protokoły ukrywają przed użytkownikiem mechanizm przesyłania poczty między serwerami oraz metody dostępu do jego skrzynek pocztowych. | ||
Linia 27: | Linia 27: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd4.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd4.png|thumb|500px]] | ||
|valign="top"|Simple Mail Transfer Protocol służy tylko i wyłącznie do przesyłania poczty między komputerami. Nie specyfikuje on systemu pocztowego wysyłającego ani odbierającego, nazw użytkowników, sposobu przechowywania informacji przez serwery pocztowe, wielkości przesyłki, liczby przesyłek. Są to najczęściej parametry konfigurowane przez administratorów serwerów pocztowych i nie mają nic wspólnego z protokołem SMTP jako takim. | |valign="top"|Simple Mail Transfer Protocol służy tylko i wyłącznie do przesyłania poczty między komputerami. Nie specyfikuje on systemu pocztowego wysyłającego ani odbierającego, nazw użytkowników, sposobu przechowywania informacji przez serwery pocztowe, wielkości przesyłki, liczby przesyłek. Są to najczęściej parametry konfigurowane przez administratorów serwerów pocztowych i nie mają nic wspólnego z protokołem SMTP jako takim. | ||
Standard SMTP określa jedynie format komunikatów wymienianych przez maszynę nadającą przesyłkę i odbierającą ją. Komunikaty te są przesyłane w postaci czytelnych tekstów ASCII, co pozwala na komunikację dowolnych serwerów pocztowych bazujących na dowolnych systemach operacyjnych. Zestaw znaków ASCII jest bardzo prosty i znany większości użytkowników. Standardowa procedura wysłania listy opiera się na utworzeniu połączenia TCP ze zdalną maszyną i oczekiwaniu aż ta przyśle komunikat: 220 <nazwa maszyny> ESMTP server ready. Dalej następuje, np.: | Standard SMTP określa jedynie format komunikatów wymienianych przez maszynę nadającą przesyłkę i odbierającą ją. Komunikaty te są przesyłane w postaci czytelnych tekstów ASCII, co pozwala na komunikację dowolnych serwerów pocztowych bazujących na dowolnych systemach operacyjnych. Zestaw znaków ASCII jest bardzo prosty i znany większości użytkowników. Standardowa procedura wysłania listy opiera się na utworzeniu połączenia TCP ze zdalną maszyną i oczekiwaniu aż ta przyśle komunikat: 220 <nazwa maszyny> ESMTP server ready. Dalej następuje, np.: | ||
Linia 51: | Linia 51: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd6.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd6.png|thumb|500px]] | ||
|valign="top"|Jak widać, w nagłówku listu jest umieszczona informacja o użyciu MIME w wersji 1.0 oraz o tym, że list składa się z kilku części (Content-Type: multipart/mixed). | |valign="top"|Jak widać, w nagłówku listu jest umieszczona informacja o użyciu MIME w wersji 1.0 oraz o tym, że list składa się z kilku części (Content-Type: multipart/mixed). | ||
Każda z nich może być zakodowana w innym formacie, co również przedstawia przedstawiony przykład. Standard MIME wymaga od aplikacji używania pary identyfikatorów, rozdzielonych znakiem "/" w nagłówku Content-Type. Pierwszy identyfikator, oprócz przedstawionego w przykładzie, informuje o typie danych. Możliwe są następujące typy: | Każda z nich może być zakodowana w innym formacie, co również przedstawia przedstawiony przykład. Standard MIME wymaga od aplikacji używania pary identyfikatorów, rozdzielonych znakiem "/" w nagłówku Content-Type. Pierwszy identyfikator, oprócz przedstawionego w przykładzie, informuje o typie danych. Możliwe są następujące typy: | ||
Linia 69: | Linia 69: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd7.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd7.png|thumb|500px]] | ||
|valign="top"|Dostarczanie przesyłek poczty elektronicznej odbywa się w następujący sposób. Nadawca tworzy list a następnie łączy się przy pomocy swojego klienta pocztowego (MUA - ang. Mail User Agent) z serwerem (MTA - ang. Mail Transfer Agent), który go wyśle. Jeżeli połączenie się nie uda, to list nie jest wysyłany. Najczęściej program wysyłającego umieszcza go w swojej lokalnej kolejce listów oczekujących na wysłanie. Po ustalonym czasie lub przy próbie wysłania kolejnego listu i nawiązaniu połączenia z serwerem, wszystkie listy oczekujące na wysłanie zostaną przekazane do serwera. Przykład konfiguracji klienta poczty przedstawia slajd. | |valign="top"|Dostarczanie przesyłek poczty elektronicznej odbywa się w następujący sposób. Nadawca tworzy list a następnie łączy się przy pomocy swojego klienta pocztowego (MUA - ang. Mail User Agent) z serwerem (MTA - ang. Mail Transfer Agent), który go wyśle. Jeżeli połączenie się nie uda, to list nie jest wysyłany. Najczęściej program wysyłającego umieszcza go w swojej lokalnej kolejce listów oczekujących na wysłanie. Po ustalonym czasie lub przy próbie wysłania kolejnego listu i nawiązaniu połączenia z serwerem, wszystkie listy oczekujące na wysłanie zostaną przekazane do serwera. Przykład konfiguracji klienta poczty przedstawia slajd. | ||
Linia 79: | Linia 79: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd8.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd8.png|thumb|500px]] | ||
|valign="top"|Utrzymywanie serwerów pocztowych na komputerze każdego użytkownika oraz ich ciągła praca w ciągu doby są zbyt kosztowne dla większości firm. Poza tym jest to zbyt skomplikowane w przypadku, gdy użytkownicy nie potrafią rozwiązać problemów powstających przy obsłudze serwera. Dlatego też w prawie 100% firm jest uruchomiony jeden lub kilka serwerów pocztowych dla użytkowników. Ułatwia to ich administrację oraz utrzymanie. Jednocześnie powstaje problem dostępu do skrzynek pocztowych użytkowników na serwerze. Najczęściej administratorzy chcą unikać sytuacji, w której dostęp do serwera pocztowego ma każdy użytkownik chcący przeczytać pocztę elektroniczną. Z wysłaniem nie ma problemu, gdyż wystarczy otworzyć sesję TCP z serwerem i przekazać mu wiadomość. W celu rozwiązania problemu w dokumencie RFC 1939 został zdefiniowany protokół dostępu do skrzynek pocztowych -- POP3 (and. Post Office Protocol Version 3). Służy on do wykonywania operacji kasowania oraz odczytywania listów przechowywanych w skrzynce pocztowej na innym komputerze. Alternatywnym protokołem dla POP3 jest opisany w dalszej części IMAP. Użytkownik konfigurując swojego klienta pocztowego zazwyczaj może wybrać jeden z tych protokołów. Przykład przedstawia slajd. | |valign="top"|Utrzymywanie serwerów pocztowych na komputerze każdego użytkownika oraz ich ciągła praca w ciągu doby są zbyt kosztowne dla większości firm. Poza tym jest to zbyt skomplikowane w przypadku, gdy użytkownicy nie potrafią rozwiązać problemów powstających przy obsłudze serwera. Dlatego też w prawie 100% firm jest uruchomiony jeden lub kilka serwerów pocztowych dla użytkowników. Ułatwia to ich administrację oraz utrzymanie. Jednocześnie powstaje problem dostępu do skrzynek pocztowych użytkowników na serwerze. Najczęściej administratorzy chcą unikać sytuacji, w której dostęp do serwera pocztowego ma każdy użytkownik chcący przeczytać pocztę elektroniczną. Z wysłaniem nie ma problemu, gdyż wystarczy otworzyć sesję TCP z serwerem i przekazać mu wiadomość. W celu rozwiązania problemu w dokumencie RFC 1939 został zdefiniowany protokół dostępu do skrzynek pocztowych -- POP3 (and. Post Office Protocol Version 3). Służy on do wykonywania operacji kasowania oraz odczytywania listów przechowywanych w skrzynce pocztowej na innym komputerze. Alternatywnym protokołem dla POP3 jest opisany w dalszej części IMAP. Użytkownik konfigurując swojego klienta pocztowego zazwyczaj może wybrać jeden z tych protokołów. Przykład przedstawia slajd. | ||
Linia 88: | Linia 88: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd9.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd9.png|thumb|500px]] | ||
|valign="top"|W ramach jednej sesji serwer POP3 pracuje kolejno w kilku trybach. Zaraz po nawiązaniu połączenia znajduje się w trybie autoryzacji. Przejście do następnego trybu następuje, gdy klient pomyślnie przejdzie proces identyfikacji -- poda prawidłową nazwę użytkownika i hasło. Serwer wówczas uzyskuje prawo do przeczytania zwartości skrzynki użytkownika. Po przeczytaniu informuje o liczbie wiadomości w skrzynce i przechodzi do trybu transakcyjnego. Po przesłaniu wiadomości ze skrzynki serwer czeka na komendę QUIT. Po jej otrzymaniu przechodzi do trybu odświeżania informacji na serwerze. W tym trybie aktualizowana jest informacja o przeczytanych bądź nie przeczytanych wiadomościach w skrzynce użytkownika oraz zwalniane są uprzednio zajęte zasoby systemu. Następnie serwer zamyka połączenie TCP. | |valign="top"|W ramach jednej sesji serwer POP3 pracuje kolejno w kilku trybach. Zaraz po nawiązaniu połączenia znajduje się w trybie autoryzacji. Przejście do następnego trybu następuje, gdy klient pomyślnie przejdzie proces identyfikacji -- poda prawidłową nazwę użytkownika i hasło. Serwer wówczas uzyskuje prawo do przeczytania zwartości skrzynki użytkownika. Po przeczytaniu informuje o liczbie wiadomości w skrzynce i przechodzi do trybu transakcyjnego. Po przesłaniu wiadomości ze skrzynki serwer czeka na komendę QUIT. Po jej otrzymaniu przechodzi do trybu odświeżania informacji na serwerze. W tym trybie aktualizowana jest informacja o przeczytanych bądź nie przeczytanych wiadomościach w skrzynce użytkownika oraz zwalniane są uprzednio zajęte zasoby systemu. Następnie serwer zamyka połączenie TCP. | ||
Przed wejściem w tryb transakcyjny serwer POP3 blokuje dostęp do skrzynki, aby ochronić ją przed modyfikacją zanim serwer przejdzie do trybu odświeżania informacji o skrzynce. | Przed wejściem w tryb transakcyjny serwer POP3 blokuje dostęp do skrzynki, aby ochronić ją przed modyfikacją zanim serwer przejdzie do trybu odświeżania informacji o skrzynce. | ||
Linia 96: | Linia 96: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd10.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd10.png|thumb|500px]] | ||
|valign="top"|W trybie transakcyjnym serwer może otrzymać komendy: | |valign="top"|W trybie transakcyjnym serwer może otrzymać komendy: | ||
stat - odpowiada liczbą wiadomości oraz ich łączną wielkością w bajtach, | stat - odpowiada liczbą wiadomości oraz ich łączną wielkością w bajtach, | ||
Linia 112: | Linia 112: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd11.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd11.png|thumb|500px]] | ||
|valign="top"|Protokół ten został zdefiniowany w dokumencie RFC1730. Jego uaktualnienie zawiera RFC3501. Przedstawione poniżej omówienie odnosi się do wersji 4 protokołu IMAP. Poprzednie, 2 i 2bis, są raczej rzadko używane. | |valign="top"|Protokół ten został zdefiniowany w dokumencie RFC1730. Jego uaktualnienie zawiera RFC3501. Przedstawione poniżej omówienie odnosi się do wersji 4 protokołu IMAP. Poprzednie, 2 i 2bis, są raczej rzadko używane. | ||
Podobnie jak POP3, protokół IMAP pozwala użytkownikom na zdalny dostęp do swoich skrzynek pocztowych na serwerach, ich modyfikowanie, przeszukiwanie, tworzenie folderów, ustawianie flag. Nie pozwala na wysyłanie wiadomości poczty elektronicznej. | Podobnie jak POP3, protokół IMAP pozwala użytkownikom na zdalny dostęp do swoich skrzynek pocztowych na serwerach, ich modyfikowanie, przeszukiwanie, tworzenie folderów, ustawianie flag. Nie pozwala na wysyłanie wiadomości poczty elektronicznej. | ||
Linia 120: | Linia 120: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd12.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd12.png|thumb|500px]] | ||
|valign="top"|Serwery IMAP również pracują w kilku trybach. Większość komend, które klient może wydać serwerowi jest ściśle przypisana do trybu pracy. Komend jest znacznie więcej w porównaniu z protokołem POP3. Tryby pracy to: | |valign="top"|Serwery IMAP również pracują w kilku trybach. Większość komend, które klient może wydać serwerowi jest ściśle przypisana do trybu pracy. Komend jest znacznie więcej w porównaniu z protokołem POP3. Tryby pracy to: | ||
nie autentyzowany - serwer pracuje w tym stanie dopóki, użytkownik nie zostanie prawidłowo zidentyfikowany, | nie autentyzowany - serwer pracuje w tym stanie dopóki, użytkownik nie zostanie prawidłowo zidentyfikowany, | ||
Linia 132: | Linia 132: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd13.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd13.png|thumb|500px]] | ||
|valign="top"|Po otwarciu sesji TCP między klientem a serwerem, klient może wydać serwerowi następujące komendy: | |valign="top"|Po otwarciu sesji TCP między klientem a serwerem, klient może wydać serwerowi następujące komendy: | ||
CAPABILITY - serwer odpowiada listą obsługiwanych przez niego opcji, | CAPABILITY - serwer odpowiada listą obsługiwanych przez niego opcji, | ||
Linia 143: | Linia 143: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd14.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd14.png|thumb|500px]] | ||
|valign="top"|Najprostszym sposobem jest podanie nazwy użytkownika i hasła. Prezentuje to przykład na slajdzie. | |valign="top"|Najprostszym sposobem jest podanie nazwy użytkownika i hasła. Prezentuje to przykład na slajdzie. | ||
|} | |} | ||
Linia 175: | Linia 175: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd16.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd16.png|thumb|500px]] | ||
|valign="top"|Jak widać możliwości, które oferuje serwer IMAP, są znacznie większe niż w protokole POP3. Daje on użytkownikowi duże możliwości zarządzania swoimi wiadomościami na serwerze. Dodatkowo możliwości te są poszerzone o zbiór komend dostępny w trybie czytania wiadomości z wybranej skrzynki: | |valign="top"|Jak widać możliwości, które oferuje serwer IMAP, są znacznie większe niż w protokole POP3. Daje on użytkownikowi duże możliwości zarządzania swoimi wiadomościami na serwerze. Dodatkowo możliwości te są poszerzone o zbiór komend dostępny w trybie czytania wiadomości z wybranej skrzynki: | ||
CHECK - wymusza na serwerze sprawdzanie wszelkiego typu statusu lub stanów skrzynki, np. synchronizację zawartości skrzynki w pamięci serwera z zawartością zapisaną na dysku, | CHECK - wymusza na serwerze sprawdzanie wszelkiego typu statusu lub stanów skrzynki, np. synchronizację zawartości skrzynki w pamięci serwera z zawartością zapisaną na dysku, | ||
Linia 192: | Linia 192: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd17.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd17.png|thumb|500px]] | ||
|valign="top"|Z punktu widzenia użytkownika, najważniejszą funkcją oferowaną przez serwery IMAP, jest możliwość dokładnego zarządzania wiadomościami na serwerze oraz możliwość szybkiego ich odbierania. W przeciwieństwie do serwerów POP3, serwery IMAP mogą wysyłać klientowi tylko nagłówki wiadomości bez ich treści. Dla użytkowników łączących się z siecią przez zwykłe modemy jest to ogromne udogodnienie. Mogą od razu kasować niechciane wiadomości bez przesyłania ich na swój lokalny komputer. Użytkownicy mogą sortować nadchodzące przesyłki i zapisywać je do różnych skrzynek zgodnie ze zdefiniowanymi przez siebie regułami. | |valign="top"|Z punktu widzenia użytkownika, najważniejszą funkcją oferowaną przez serwery IMAP, jest możliwość dokładnego zarządzania wiadomościami na serwerze oraz możliwość szybkiego ich odbierania. W przeciwieństwie do serwerów POP3, serwery IMAP mogą wysyłać klientowi tylko nagłówki wiadomości bez ich treści. Dla użytkowników łączących się z siecią przez zwykłe modemy jest to ogromne udogodnienie. Mogą od razu kasować niechciane wiadomości bez przesyłania ich na swój lokalny komputer. Użytkownicy mogą sortować nadchodzące przesyłki i zapisywać je do różnych skrzynek zgodnie ze zdefiniowanymi przez siebie regułami. | ||
Inną zaletą korzystania z serwerów IMAP jest możliwość rozsyłania wiadomości w grupie użytkowników bez potrzeby obciążania serwera pocztowego. Wystarczy, że zapisze on wiadomość w podanej skrzynce, którą będą mogli wybrać użytkownicy tej grupy w konfiguracji swoich klientów IMAP. W przypadku serwera POP3 konieczne w takim wypadku jest rozesłanie wiadomości do wszystkich użytkowników. W konfiguracji klienta POP3 można też stworzyć dodatkowe konto u każdego klienta w grupie a klientom kazać odbierać pocztę również z tych dodatkowych kont. Jest to jednak rozwiązanie bardziej złożone niż w protokole IMAP. | Inną zaletą korzystania z serwerów IMAP jest możliwość rozsyłania wiadomości w grupie użytkowników bez potrzeby obciążania serwera pocztowego. Wystarczy, że zapisze on wiadomość w podanej skrzynce, którą będą mogli wybrać użytkownicy tej grupy w konfiguracji swoich klientów IMAP. W przypadku serwera POP3 konieczne w takim wypadku jest rozesłanie wiadomości do wszystkich użytkowników. W konfiguracji klienta POP3 można też stworzyć dodatkowe konto u każdego klienta w grupie a klientom kazać odbierać pocztę również z tych dodatkowych kont. Jest to jednak rozwiązanie bardziej złożone niż w protokole IMAP. | ||
Linia 199: | Linia 199: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd18.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd18.png|thumb|500px]] | ||
|valign="top"|Przesyłanie plików przez użytkowników jest jedną z najczęściej wykonywanych operacji. Stanowią one znaczną część ruchu w sieciach komputerowych. | |valign="top"|Przesyłanie plików przez użytkowników jest jedną z najczęściej wykonywanych operacji. Stanowią one znaczną część ruchu w sieciach komputerowych. | ||
Protokoły do tego używane zapewniają dostęp do plików na innych komputerach dwiema drogami: albo przez kopiowanie (FTP, SCP) albo jako dostęp zintegrowany z systemem operacyjnym gdzie operacje dostępu do zdalnych plików są dla użytkownika niewidoczne (NFS, CIFS). W obu jednak przypadkach protokoły muszą uwzględniać prawa dostępu do pliku (nie zawsze zapisywane w ten sam sposób jak w systemie lokalnym), różnice w nazwach plików, różnice w reprezentacjach binarnych (choć czasami konwersja formatów powodowałaby utratę danych i jest niemożliwa). | Protokoły do tego używane zapewniają dostęp do plików na innych komputerach dwiema drogami: albo przez kopiowanie (FTP, SCP) albo jako dostęp zintegrowany z systemem operacyjnym gdzie operacje dostępu do zdalnych plików są dla użytkownika niewidoczne (NFS, CIFS). W obu jednak przypadkach protokoły muszą uwzględniać prawa dostępu do pliku (nie zawsze zapisywane w ten sam sposób jak w systemie lokalnym), różnice w nazwach plików, różnice w reprezentacjach binarnych (choć czasami konwersja formatów powodowałaby utratę danych i jest niemożliwa). | ||
Linia 206: | Linia 206: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd19.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd19.png|thumb|500px]] | ||
|valign="top"|FTP (ang. File Transfer Protocol był pierwszym z protokołów przeznaczonych specjalnie do transferu plików. Aby z niego korzystać, użytkownik musi mieć program klienta. Program klienta oferuje użytkownikowi dostęp interakcyjny. Program ten łączy się ze wskazanym serwerem FTP, próbując otworzyć sesję TCP na porcie 21. Przed wykonaniem jakichkolwiek operacji przesłania danych do lub z serwera, użytkownik musi podać identyfikator w postaci nazwy użytkownika i hasła. | |valign="top"|FTP (ang. File Transfer Protocol był pierwszym z protokołów przeznaczonych specjalnie do transferu plików. Aby z niego korzystać, użytkownik musi mieć program klienta. Program klienta oferuje użytkownikowi dostęp interakcyjny. Program ten łączy się ze wskazanym serwerem FTP, próbując otworzyć sesję TCP na porcie 21. Przed wykonaniem jakichkolwiek operacji przesłania danych do lub z serwera, użytkownik musi podać identyfikator w postaci nazwy użytkownika i hasła. | ||
Serwer i klient FTP używają odrębnego połączenia do przesyłania danych sterujących oraz odrębnych połączeń do transmisji każdego z czytanych lub zapisywanych plików z osobna. Połączenie sterujące jest otwarte tak długo jak trwa sesja FTP. Wszystkie komendy wysyłane do serwera oraz jego odpowiedzi są przesyłane w kodzie ASCII (tak samo jak w przypadku SMTP, POP3, IMAP). | Serwer i klient FTP używają odrębnego połączenia do przesyłania danych sterujących oraz odrębnych połączeń do transmisji każdego z czytanych lub zapisywanych plików z osobna. Połączenie sterujące jest otwarte tak długo jak trwa sesja FTP. Wszystkie komendy wysyłane do serwera oraz jego odpowiedzi są przesyłane w kodzie ASCII (tak samo jak w przypadku SMTP, POP3, IMAP). | ||
Linia 216: | Linia 216: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd20.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd20.png|thumb|500px]] | ||
|valign="top"|Sieciowy system plików (ang. Network File System) został opracowany przez firmę Sun Microsystems. System ten zapewnia użytkownikowi ,,przezroczysty'' dostęp do plików i programów położonych na innych komputerach. Konieczne do tego jest jedynie uruchomienie serwera NFS oraz wyposażenie użytkownika w program klienta. | |valign="top"|Sieciowy system plików (ang. Network File System) został opracowany przez firmę Sun Microsystems. System ten zapewnia użytkownikowi ,,przezroczysty'' dostęp do plików i programów położonych na innych komputerach. Konieczne do tego jest jedynie uruchomienie serwera NFS oraz wyposażenie użytkownika w program klienta. | ||
Klient może wysyłać do serwera polecenia otwarcia, zapisania, odczytania pliku. Serwer sprawdza czy użytkownik, który wysyła te polecenia ma prawo do wykonania tych operacji. Informacje o tym są pobierane przez serwer na podstawie identyfikatora użytkownika, który albo istnieje w lokalnych dla serwera plikach konfiguracyjnych (np. /etc/passwd i musi być identyczny na stacji użytkownika i serwerze w systemach UNIX) albo są dostępne przez serwisy takie jak NIS lub NIS+ (ang. Network Information Service). | Klient może wysyłać do serwera polecenia otwarcia, zapisania, odczytania pliku. Serwer sprawdza czy użytkownik, który wysyła te polecenia ma prawo do wykonania tych operacji. Informacje o tym są pobierane przez serwer na podstawie identyfikatora użytkownika, który albo istnieje w lokalnych dla serwera plikach konfiguracyjnych (np. /etc/passwd i musi być identyczny na stacji użytkownika i serwerze w systemach UNIX) albo są dostępne przez serwisy takie jak NIS lub NIS+ (ang. Network Information Service). | ||
Linia 226: | Linia 226: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd21.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd21.png|thumb|500px]] | ||
|valign="top"|SCP (ang. Secure Copy) jest usługą najczęściej interpretowaną jako fragment oprogramowania SSH (opisanego w dalszej części). Wynika to stąd, że usługa ta jest instalowana w systemach przy okazji uruchamiania tego serwisu. Można z niej jednak korzystać bez instalacji całego SSH. W chwili obecnej dostępne są programy SCP działające zarówno w środowisku Windows (WinSCP, pscp) jak i wszelkiego typu systemach UNIX. Slajd przedstawia przykład działania programu WinSCP. | |valign="top"|SCP (ang. Secure Copy) jest usługą najczęściej interpretowaną jako fragment oprogramowania SSH (opisanego w dalszej części). Wynika to stąd, że usługa ta jest instalowana w systemach przy okazji uruchamiania tego serwisu. Można z niej jednak korzystać bez instalacji całego SSH. W chwili obecnej dostępne są programy SCP działające zarówno w środowisku Windows (WinSCP, pscp) jak i wszelkiego typu systemach UNIX. Slajd przedstawia przykład działania programu WinSCP. | ||
W w swoim działaniu, z dotychczas wymienionych usług, SCP najbardziej przypomina FTP. Oferuje mechanizm autoryzacji użytkownika przed wykonaniem operacji odczytu lub zapisu plików. W przeciwieństwie jednak do FTP, SCP nie używa dwóch odrębnych kanałów do komunikacji i transferu danych. Poza tym nie pracuje w trybie interaktywnym z użytkownikiem, choć niektóre programy np. WinSCP pozwalają na to. To, co wyróżnia SCP, to stosowanie mechanizmów kryptograficznych przy wymianie danych między serwerem a klientem. Najczęściej są to te same mechanizmy, które oferuje SSH, gdyż to właśnie ta usługa jest wykorzystywana do zestawiania sesji, wymiany kluczy między serwerem a klientem, ustalaniu parametrów transmisji (kompresja przesyłanych danych lub jej brak, częstotliwość wymiany klucza). | W w swoim działaniu, z dotychczas wymienionych usług, SCP najbardziej przypomina FTP. Oferuje mechanizm autoryzacji użytkownika przed wykonaniem operacji odczytu lub zapisu plików. W przeciwieństwie jednak do FTP, SCP nie używa dwóch odrębnych kanałów do komunikacji i transferu danych. Poza tym nie pracuje w trybie interaktywnym z użytkownikiem, choć niektóre programy np. WinSCP pozwalają na to. To, co wyróżnia SCP, to stosowanie mechanizmów kryptograficznych przy wymianie danych między serwerem a klientem. Najczęściej są to te same mechanizmy, które oferuje SSH, gdyż to właśnie ta usługa jest wykorzystywana do zestawiania sesji, wymiany kluczy między serwerem a klientem, ustalaniu parametrów transmisji (kompresja przesyłanych danych lub jej brak, częstotliwość wymiany klucza). | ||
Linia 233: | Linia 233: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd22.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd22.png|thumb|500px]] | ||
|valign="top"|Dosyć często zdarza się sytuacja, w której użytkownicy chcieliby mieć możliwość korzystania z zasobów innych komputerów pracujących w odległych miejscach, nie posiadając dostępu do konsoli tych maszyn. Jednym ze sposobów zapewniających ten rodzaj pracy są serwisy WWW, np. wyszukiwarki internetowe. Poprzez odpowiedni interfejs oferują one dostęp do bazy adresów oraz możliwość ich przeszukiwania. Nie zawsze jednak chodzi tylko o tego typu dostęp. Często np. studenci chcą korzystać z kompilatorów zainstalowanych na serwerach uczelnianych, pracownicy ze specjalistycznego oprogramowania używanego w firmie, itd. Wówczas nieocenione stają się możliwości korzystania z opisanych poniżej protokołów oferujących dostęp do wszystkich poleceń na odległym systemie. | |valign="top"|Dosyć często zdarza się sytuacja, w której użytkownicy chcieliby mieć możliwość korzystania z zasobów innych komputerów pracujących w odległych miejscach, nie posiadając dostępu do konsoli tych maszyn. Jednym ze sposobów zapewniających ten rodzaj pracy są serwisy WWW, np. wyszukiwarki internetowe. Poprzez odpowiedni interfejs oferują one dostęp do bazy adresów oraz możliwość ich przeszukiwania. Nie zawsze jednak chodzi tylko o tego typu dostęp. Często np. studenci chcą korzystać z kompilatorów zainstalowanych na serwerach uczelnianych, pracownicy ze specjalistycznego oprogramowania używanego w firmie, itd. Wówczas nieocenione stają się możliwości korzystania z opisanych poniżej protokołów oferujących dostęp do wszystkich poleceń na odległym systemie. | ||
|} | |} | ||
Linia 239: | Linia 239: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd23.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd23.png|thumb|500px]] | ||
|valign="top"|Protokół ten umożliwia użytkownikowi zestawienie sesji TCP między dwoma odległymi systemami. Na jednym z nich musi pracować proces serwera TELNET. Użytkownik musi być wyposażony w program klienta. Użytkownik może wskazać serwer TELNET- a podając jego nazwę lub numer IP. Serwer przeprowadza autoryzację użytkownika. W tym celu musi on podać nazwę użytkownika i hasło. Jednak przesyłane dane, pomiędzy klientem i serwerem, nie są w żaden sposób zabezpieczone przed podsłuchem. | |valign="top"|Protokół ten umożliwia użytkownikowi zestawienie sesji TCP między dwoma odległymi systemami. Na jednym z nich musi pracować proces serwera TELNET. Użytkownik musi być wyposażony w program klienta. Użytkownik może wskazać serwer TELNET- a podając jego nazwę lub numer IP. Serwer przeprowadza autoryzację użytkownika. W tym celu musi on podać nazwę użytkownika i hasło. Jednak przesyłane dane, pomiędzy klientem i serwerem, nie są w żaden sposób zabezpieczone przed podsłuchem. | ||
Po nawiązaniu sesji TCP klient przesyła do serwera informacje o wszystkich naciśniętych klawiszach. Zwrotnie przyjmuje znaki, które przysłał serwer i wyświetla je na terminalu użytkownika. Ponieważ serwer TELNET-u musi obsługiwać wiele sesji jednocześnie, zazwyczaj jeden proces serwera oczekuje na nowe połączenia na porcie 23 TCP. Dalej przekazuje on obsługę połączenia tworzonemu w tym celu procesowi podrzędnemu. Dla użytkownika, po nawiązaniu sesji przy pomocy TELNET- a , praca z odległym systemem przebiega w sposób przypominający pracę na lokalnej konsoli. | Po nawiązaniu sesji TCP klient przesyła do serwera informacje o wszystkich naciśniętych klawiszach. Zwrotnie przyjmuje znaki, które przysłał serwer i wyświetla je na terminalu użytkownika. Ponieważ serwer TELNET-u musi obsługiwać wiele sesji jednocześnie, zazwyczaj jeden proces serwera oczekuje na nowe połączenia na porcie 23 TCP. Dalej przekazuje on obsługę połączenia tworzonemu w tym celu procesowi podrzędnemu. Dla użytkownika, po nawiązaniu sesji przy pomocy TELNET- a , praca z odległym systemem przebiega w sposób przypominający pracę na lokalnej konsoli. | ||
Linia 246: | Linia 246: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd24.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd24.png|thumb|500px]] | ||
|valign="top"|Największy problem, z jakim mieli do czynienia autorzy tego protokołu, to różnorodność systemów operacyjnych na jakich może działać klient i serwer. Heterogeniczność środowisk niesie za sobą różną interpretację znaków pochodzących z klawiatury, możliwość używania 7 bitowego lub 8 bitowego zbioru znaków ASCII. | |valign="top"|Największy problem, z jakim mieli do czynienia autorzy tego protokołu, to różnorodność systemów operacyjnych na jakich może działać klient i serwer. Heterogeniczność środowisk niesie za sobą różną interpretację znaków pochodzących z klawiatury, możliwość używania 7 bitowego lub 8 bitowego zbioru znaków ASCII. | ||
W celu rozwiązania problemu TELNET definiuje tzw. sieciowy terminal wirtualny (ang. Network Virtual Terminal - NVT). Dzięki niemu klient i serwer posługują się tym samym interfejsem w komunikacji między sobą. Poza tym protokół umożliwia negocjowanie opcji (oprócz zbioru opcji standardowych) oraz nie wymaga, aby dane wejściowe klienta pochodziły z klawiatury, a dane wyjściowe były wyświetlane na ekranie. | W celu rozwiązania problemu TELNET definiuje tzw. sieciowy terminal wirtualny (ang. Network Virtual Terminal - NVT). Dzięki niemu klient i serwer posługują się tym samym interfejsem w komunikacji między sobą. Poza tym protokół umożliwia negocjowanie opcji (oprócz zbioru opcji standardowych) oraz nie wymaga, aby dane wejściowe klienta pochodziły z klawiatury, a dane wyjściowe były wyświetlane na ekranie. | ||
Linia 255: | Linia 255: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd25.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd25.png|thumb|500px]] | ||
|valign="top"|Projektanci NVT zdecydowali o rozdzieleniu poleceń od zwykłych danych przesyłanych w kodzie ASCII między klientem a serwerem. Dzięki temu definiowanie nowych funkcji kontrolnych jest bardzo przejrzyste i elastyczne. Nie ma kłopotu z interpretacją, czy znak powinien być potraktowany jako dane czy jako funkcja kontrolna. | |valign="top"|Projektanci NVT zdecydowali o rozdzieleniu poleceń od zwykłych danych przesyłanych w kodzie ASCII między klientem a serwerem. Dzięki temu definiowanie nowych funkcji kontrolnych jest bardzo przejrzyste i elastyczne. Nie ma kłopotu z interpretacją, czy znak powinien być potraktowany jako dane czy jako funkcja kontrolna. | ||
Aby zapanować nad programem, który nie działa prawidłowo na odległej maszynie, to jednak czasami nie wystarczające. W przypadku, gdy program użytkownika wykonuje nieskończone pętle, nie czytając danych z wejścia i nie generując danych na wyjściu, w pewnym momencie bufory systemu operacyjnego mogą się zapełnić. Serwer nie będzie mógł wówczas zapisać większej ilości danych w buforze pseudoterminalu. Musi więc zaprzestać czytania danych z połączenia TCP, co spowoduje zapełnienie buforów połączenia. To z kolei zmusi serwer do proponowania zerowej wielkości okna, czyli zaprzestania przepływu danych. Przy opisanych dotychczas możliwościach nie ma metody wysłania programowi polecenia IP. Dlatego też TELNET przesyła sygnały poza kolejką normalnych danych. W przypadku wysyłania funkcji kontrolnej protokół wysyła dodatkowo funkcję SYNCH i dodaje zarezerwowany bajt DMARK (ang. Data Mark). W nagłówku TCP ustawia flagę URG. Dzięki temu sygnał dociera natychmiast do serwera. Bajt DMARK oznacza, że część SYNCH zawiera strumień danych (zawsze pilnych). | Aby zapanować nad programem, który nie działa prawidłowo na odległej maszynie, to jednak czasami nie wystarczające. W przypadku, gdy program użytkownika wykonuje nieskończone pętle, nie czytając danych z wejścia i nie generując danych na wyjściu, w pewnym momencie bufory systemu operacyjnego mogą się zapełnić. Serwer nie będzie mógł wówczas zapisać większej ilości danych w buforze pseudoterminalu. Musi więc zaprzestać czytania danych z połączenia TCP, co spowoduje zapełnienie buforów połączenia. To z kolei zmusi serwer do proponowania zerowej wielkości okna, czyli zaprzestania przepływu danych. Przy opisanych dotychczas możliwościach nie ma metody wysłania programowi polecenia IP. Dlatego też TELNET przesyła sygnały poza kolejką normalnych danych. W przypadku wysyłania funkcji kontrolnej protokół wysyła dodatkowo funkcję SYNCH i dodaje zarezerwowany bajt DMARK (ang. Data Mark). W nagłówku TCP ustawia flagę URG. Dzięki temu sygnał dociera natychmiast do serwera. Bajt DMARK oznacza, że część SYNCH zawiera strumień danych (zawsze pilnych). | ||
Linia 265: | Linia 265: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd26.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd26.png|thumb|500px]] | ||
|valign="top"|Secure Shell jest usługą funkcjonalnie zbliżoną do TELNET- a . Tak samo jak w przypadku TELNET- a użytkownik musi posiadać program klienta łączącego się z procesem serwera. Po połączeniu ze zdalnym systemem użytkownik ma możliwość korzystania z dostępnych na nim poleceń i programów. SSH zawiera również możliwość negocjowania niektórych opcji połączenia oraz ustalanie parametrów wirtualnych terminali. Jednak na tym podobieństwa się kończą. Autorzy SSH stworzyli protokół wymiany danych, odporny na podsłuch sieciowy. Cała komunikacja między dwoma zdalnymi systemami jest szyfrowana. Do tego celu użyli silnych kryptograficznie i ogólnie dostępnych algorytmów ( w niektórych krajach, np. USA niektóre z nich są opatentowane i niestety ich eksport poza granice tego kraju jest prawnie zakazany). Z tej zalety SSH szeroko korzystają i doceniają administratorzy systemów oraz ci użytkownicy, którym zależy na bezpieczeństwie przesyłanych danych. W szczególności dotyczy to haseł dostępu do systemów. | |valign="top"|Secure Shell jest usługą funkcjonalnie zbliżoną do TELNET- a . Tak samo jak w przypadku TELNET- a użytkownik musi posiadać program klienta łączącego się z procesem serwera. Po połączeniu ze zdalnym systemem użytkownik ma możliwość korzystania z dostępnych na nim poleceń i programów. SSH zawiera również możliwość negocjowania niektórych opcji połączenia oraz ustalanie parametrów wirtualnych terminali. Jednak na tym podobieństwa się kończą. Autorzy SSH stworzyli protokół wymiany danych, odporny na podsłuch sieciowy. Cała komunikacja między dwoma zdalnymi systemami jest szyfrowana. Do tego celu użyli silnych kryptograficznie i ogólnie dostępnych algorytmów ( w niektórych krajach, np. USA niektóre z nich są opatentowane i niestety ich eksport poza granice tego kraju jest prawnie zakazany). Z tej zalety SSH szeroko korzystają i doceniają administratorzy systemów oraz ci użytkownicy, którym zależy na bezpieczeństwie przesyłanych danych. W szczególności dotyczy to haseł dostępu do systemów. | ||
Program klienta w celu połączenia z serwerem musi zestawić sesję TCP z maszyną serwera. Standardowo proces serwera oczekuje na połączenia na porcie 22 TCP. Po takim połączeniu przekazuje obsługę do procesu potomnego, sam czekając dalej na nowe połączenia. | Program klienta w celu połączenia z serwerem musi zestawić sesję TCP z maszyną serwera. Standardowo proces serwera oczekuje na połączenia na porcie 22 TCP. Po takim połączeniu przekazuje obsługę do procesu potomnego, sam czekając dalej na nowe połączenia. | ||
Linia 273: | Linia 273: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd27.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd27.png|thumb|500px]] | ||
|valign="top"|Wstępne dane są zabezpieczone wybranym symetrycznym algorytmem szyfrującym, ale algorytm opiera swoje działanie na idei szyfrowania asymetrycznego. W systemach tych do szyfrowania lub deszyfrowania potrzebne są dwa odrębne klucze: prywatny i publiczny. Wiadomość zaszyfrowana kluczem publicznym może być odczytana tylko przez kogoś, kto posiada klucz prywatny z tej pary kluczy. Klucze prywatny i publiczny powinny być wygenerowane przez użytkownika programem ssh-keygen w systemach UNIX. Jeżeli są wygenerowane to, klient SSH przekazuje serwerowi, której ze znanych mu par klucz-użytkownik ma użyć. Są to klucze publiczne. Serwer, jeżeli nie znajdzie informacji zabraniającej mu zestawiania połączeń z komputerem użytkownika, wyśle klientowi numer losowy (ang. challenge) zaszyfrowany kluczem publicznym użytkownika. Ponieważ klucz prywatny jest zabezpieczony tzw. wyrażeniem przejściowym, więc tylko użytkownik znający to wyrażenie będzie w stanie odczytać wiadomość od serwera. W ten sposób użytkownik potwierdzi swoją tożsamość. | |valign="top"|Wstępne dane są zabezpieczone wybranym symetrycznym algorytmem szyfrującym, ale algorytm opiera swoje działanie na idei szyfrowania asymetrycznego. W systemach tych do szyfrowania lub deszyfrowania potrzebne są dwa odrębne klucze: prywatny i publiczny. Wiadomość zaszyfrowana kluczem publicznym może być odczytana tylko przez kogoś, kto posiada klucz prywatny z tej pary kluczy. Klucze prywatny i publiczny powinny być wygenerowane przez użytkownika programem ssh-keygen w systemach UNIX. Jeżeli są wygenerowane to, klient SSH przekazuje serwerowi, której ze znanych mu par klucz-użytkownik ma użyć. Są to klucze publiczne. Serwer, jeżeli nie znajdzie informacji zabraniającej mu zestawiania połączeń z komputerem użytkownika, wyśle klientowi numer losowy (ang. challenge) zaszyfrowany kluczem publicznym użytkownika. Ponieważ klucz prywatny jest zabezpieczony tzw. wyrażeniem przejściowym, więc tylko użytkownik znający to wyrażenie będzie w stanie odczytać wiadomość od serwera. W ten sposób użytkownik potwierdzi swoją tożsamość. | ||
W przypadku, gdy klucze publiczny i prywatny nie zostały wygenerowane, serwer SSH wyśle klientowi zapytanie o nazwę użytkownika i jego hasło. | W przypadku, gdy klucze publiczny i prywatny nie zostały wygenerowane, serwer SSH wyśle klientowi zapytanie o nazwę użytkownika i jego hasło. | ||
Linia 283: | Linia 283: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd28.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd28.png|thumb|500px]] | ||
|valign="top"|Remote Desktop Protocol podobnie jak SSH czy TELNET daje możliwość zdalnego dostępu do serwera. O ile jednak opisane wcześniej protokoły służą głównie do pracy z terminalami tekstowymi, to RDP jest wykorzystywany głównie w usługach Terminal Services systemów firmy Microsoft. SSH daje możliwość tunelowania połączeń do serwera XWindows i często ten mechanizm jest wykorzystywany przez użytkowników. Jednak jest to dodatkowa cecha SSH. RDP służy do wirtualnego przenoszenia całego środowiska graficznego użytkownika na lokalny komputer. Przykład konfiguracji klienta RDP przedstawia slajd. | |valign="top"|Remote Desktop Protocol podobnie jak SSH czy TELNET daje możliwość zdalnego dostępu do serwera. O ile jednak opisane wcześniej protokoły służą głównie do pracy z terminalami tekstowymi, to RDP jest wykorzystywany głównie w usługach Terminal Services systemów firmy Microsoft. SSH daje możliwość tunelowania połączeń do serwera XWindows i często ten mechanizm jest wykorzystywany przez użytkowników. Jednak jest to dodatkowa cecha SSH. RDP służy do wirtualnego przenoszenia całego środowiska graficznego użytkownika na lokalny komputer. Przykład konfiguracji klienta RDP przedstawia slajd. | ||
Protokół RDP nie wprowadza dużego dodatkowego obciążenia dla lokalnego komputera. W zasadzie zadaniem lokalnej maszyny jest tylko i wyłącznie obsługa aplikacji wyświetlającej wyniki działania programów uruchomionych na serwerze. Ta cecha sprawia, że: | Protokół RDP nie wprowadza dużego dodatkowego obciążenia dla lokalnego komputera. W zasadzie zadaniem lokalnej maszyny jest tylko i wyłącznie obsługa aplikacji wyświetlającej wyniki działania programów uruchomionych na serwerze. Ta cecha sprawia, że: | ||
Linia 294: | Linia 294: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd29.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd29.png|thumb|500px]] | ||
|valign="top"|Oczywiście wiele tych cech jest wspólnych dla RDP, SSH czy TELNET- a . O ile jednak wyżej opisane protokoły były znane od dosyć dawna, to usługi terminalowe w systemach Windows mają znacznie krótszą historię. W ostatnich latach stały się nawet bardzo istotne w heterogenicznych środowiskach sieciowych dzięki programom takim jak: | |valign="top"|Oczywiście wiele tych cech jest wspólnych dla RDP, SSH czy TELNET- a . O ile jednak wyżej opisane protokoły były znane od dosyć dawna, to usługi terminalowe w systemach Windows mają znacznie krótszą historię. W ostatnich latach stały się nawet bardzo istotne w heterogenicznych środowiskach sieciowych dzięki programom takim jak: | ||
rdesktop - pozwala klientom UNIX na łączenie się z serwerami Windows Terminal, | rdesktop - pozwala klientom UNIX na łączenie się z serwerami Windows Terminal, | ||
Linia 304: | Linia 304: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd30.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd30.png|thumb|500px]] | ||
|valign="top"|Firma Microsoft oparła implementację RDP o protokół wymiany danych między aplikacjami - T.128. Jest on również znany jako T.SHARE. Standard został opracowany przez ITU-T. Pod adresem http://www.rdesktop.org/docs/t128.zip i http://www.rdesktop.org/docs/t125.zip można znaleźć dokumenty ITU-T o tym protokole. Oprócz tego, dodatkowych informacji można szukać w dokumentach RFC905 i RFC2126. | |valign="top"|Firma Microsoft oparła implementację RDP o protokół wymiany danych między aplikacjami - T.128. Jest on również znany jako T.SHARE. Standard został opracowany przez ITU-T. Pod adresem http://www.rdesktop.org/docs/t128.zip i http://www.rdesktop.org/docs/t125.zip można znaleźć dokumenty ITU-T o tym protokole. Oprócz tego, dodatkowych informacji można szukać w dokumentach RFC905 i RFC2126. | ||
Najważniejszą cechą rodziny protokołów T.120 jest możliwość przesyłu danych w kilku wirtualnych kanałach (do wykorzystania jest 64000 kanałów w jednym połączeniu). Dane są w nich transmitowane równolegle, a przy tym niezależnie. Dzięki temu dane warstwy prezentacji są niezależne od informacji pochodzących z portów szeregowych, klawiatury, myszy. | Najważniejszą cechą rodziny protokołów T.120 jest możliwość przesyłu danych w kilku wirtualnych kanałach (do wykorzystania jest 64000 kanałów w jednym połączeniu). Dane są w nich transmitowane równolegle, a przy tym niezależnie. Dzięki temu dane warstwy prezentacji są niezależne od informacji pochodzących z portów szeregowych, klawiatury, myszy. | ||
Linia 313: | Linia 313: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd31.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd31.png|thumb|500px]] | ||
|valign="top"|Warto zwrócić uwagę na dwa elementy stosu RDP. Skład się on z kilku części. Każda z nich jest odpowiedzialna za odrębne funkcje. Najważniejsze z nich to: | |valign="top"|Warto zwrócić uwagę na dwa elementy stosu RDP. Skład się on z kilku części. Każda z nich jest odpowiedzialna za odrębne funkcje. Najważniejsze z nich to: | ||
MCSMUX - (ang. Multipoint Communication Service), | MCSMUX - (ang. Multipoint Communication Service), | ||
Linia 325: | Linia 325: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd32.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd32.png|thumb|500px]] | ||
|valign="top"|Sieć Internet z całą pewnością nie byłaby tak atrakcyjna dla użytkowników, gdyby nie zgromadzone w niej informacje i , co ważniejsze, możliwość łatwego dotarcia do nich. Oczywiście możliwość wymiany danych np. poczty elektronicznej, plików jest dużym ułatwieniem w pracy, bez którego dzisiaj trudno się obejść. | |valign="top"|Sieć Internet z całą pewnością nie byłaby tak atrakcyjna dla użytkowników, gdyby nie zgromadzone w niej informacje i , co ważniejsze, możliwość łatwego dotarcia do nich. Oczywiście możliwość wymiany danych np. poczty elektronicznej, plików jest dużym ułatwieniem w pracy, bez którego dzisiaj trudno się obejść. | ||
Czasami jednak rozsyłanie tych samych plików do setek użytkowników lub opisywanie pewnych rzeczy jest znacznie trudniejsze niż np. po prostu narysowanie ich. Oczywiście rysunek trzeba zaprezentować innym użytkownikom sieci. Tu z pomocą przychodzi protokół HTTP (ang. Hypertext Transfer Protocol) oraz znana dobrze wszystkim usługa WWW (ang. World Wide Web). Dzięki nim oraz językowi służącemu do tworzenia stron WWW - HTML (ang. Hypertext Markup Language) użytkownicy mogą łatwo przedstawiać wyniki swoich prac, poglądy, firmy przedstawiać produkty itd. W zasadzie można powiedzieć, że rozwój sieci Internet w ostatnich latach był motywowany przez rosnącą popularność serwisów WWW oraz wykorzystywanie protokołu HTTP do przesyłania danych przez inne aplikacje niż tylko przeglądarki stron WWW. | Czasami jednak rozsyłanie tych samych plików do setek użytkowników lub opisywanie pewnych rzeczy jest znacznie trudniejsze niż np. po prostu narysowanie ich. Oczywiście rysunek trzeba zaprezentować innym użytkownikom sieci. Tu z pomocą przychodzi protokół HTTP (ang. Hypertext Transfer Protocol) oraz znana dobrze wszystkim usługa WWW (ang. World Wide Web). Dzięki nim oraz językowi służącemu do tworzenia stron WWW - HTML (ang. Hypertext Markup Language) użytkownicy mogą łatwo przedstawiać wyniki swoich prac, poglądy, firmy przedstawiać produkty itd. W zasadzie można powiedzieć, że rozwój sieci Internet w ostatnich latach był motywowany przez rosnącą popularność serwisów WWW oraz wykorzystywanie protokołu HTTP do przesyłania danych przez inne aplikacje niż tylko przeglądarki stron WWW. | ||
Linia 333: | Linia 333: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd33.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd33.png|thumb|500px]] | ||
|valign="top"|Zanim zostanie przedstawiony protokół HTTP należy przypomnieć, że pomiędzy nim a WWW istnieje różnica i nie są to dwa tożsame pojęcia. WWW składa się z trzech rzeczy: protokołu HTTP, języka HTML i systemu nazewnictwa URI (ang. Uniform Resource Identifier). Protokół HTTP jest używany do komunikacji między komponentami WWW, czyli np. przeglądarkami stron, serwerami proxy. Przy pomocy HTTP informacje są przesyłane w wielu różnych formatach, językach i kodowaniach znaków. Składnia wiadomości jest oparta o przedstawiony wcześniej MIME i nie jest w żaden sposób interpretowana przez protokół. | |valign="top"|Zanim zostanie przedstawiony protokół HTTP należy przypomnieć, że pomiędzy nim a WWW istnieje różnica i nie są to dwa tożsame pojęcia. WWW składa się z trzech rzeczy: protokołu HTTP, języka HTML i systemu nazewnictwa URI (ang. Uniform Resource Identifier). Protokół HTTP jest używany do komunikacji między komponentami WWW, czyli np. przeglądarkami stron, serwerami proxy. Przy pomocy HTTP informacje są przesyłane w wielu różnych formatach, językach i kodowaniach znaków. Składnia wiadomości jest oparta o przedstawiony wcześniej MIME i nie jest w żaden sposób interpretowana przez protokół. | ||
Historię rozwoju protokołu przedstawia tabela na slajdzie. Z tabeli tej widać, że protokół ma stosunkowo krótką historię rozwoju. Mimo to we współczesnych sieciach odgrywa on kluczową rolę. | Historię rozwoju protokołu przedstawia tabela na slajdzie. Z tabeli tej widać, że protokół ma stosunkowo krótką historię rozwoju. Mimo to we współczesnych sieciach odgrywa on kluczową rolę. | ||
Linia 340: | Linia 340: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd34.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd34.png|thumb|500px]] | ||
|valign="top"|Generalnie rzecz biorąc HTTP jest protokołem bardzo prostym. Mimo to, jest bardzo uniwersalny. Jego główne cechy to: | |valign="top"|Generalnie rzecz biorąc HTTP jest protokołem bardzo prostym. Mimo to, jest bardzo uniwersalny. Jego główne cechy to: | ||
używanie URI do identyfikacji zasobów w sieci, | używanie URI do identyfikacji zasobów w sieci, | ||
Linia 351: | Linia 351: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd35.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd35.png|thumb|500px]] | ||
|valign="top"|Adres URI jest uważany za bezwzględny, jeśli ciąg znaków, który go reprezentuje, zaczyna się od tzw. schematu i dalej znaków reprezentujących zasób osiągalny w sieci przy pomocy tego schematu. Schemat to nic innego jak wskazanie protokołu, który ma być użyty do pobrania zasobu. Pierwsza specyfikacja HTTP/0.9 uwzględniała schematy: file, news, http, telnet, gopher. Mimo, że określenie protokołu wskazuje wyraźnie jego nazwę to, do pobrania zasobu mogą być również użyte inne protokoły. Typowe pobranie strony HTML z sieci powoduje skorzystanie z systemu DNS do odnalezienia numeru IP serwera i z protokołu TCP do nawiązania z nim sesji. Najbardziej znanym schematem jest HTTP. | |valign="top"|Adres URI jest uważany za bezwzględny, jeśli ciąg znaków, który go reprezentuje, zaczyna się od tzw. schematu i dalej znaków reprezentujących zasób osiągalny w sieci przy pomocy tego schematu. Schemat to nic innego jak wskazanie protokołu, który ma być użyty do pobrania zasobu. Pierwsza specyfikacja HTTP/0.9 uwzględniała schematy: file, news, http, telnet, gopher. Mimo, że określenie protokołu wskazuje wyraźnie jego nazwę to, do pobrania zasobu mogą być również użyte inne protokoły. Typowe pobranie strony HTML z sieci powoduje skorzystanie z systemu DNS do odnalezienia numeru IP serwera i z protokołu TCP do nawiązania z nim sesji. Najbardziej znanym schematem jest HTTP. | ||
Każdy z protokołów ma inną składnię i mechanizm nazywania zasobów. Poprzez oddzielenie protokołu i ciągu znaków lokalizującego zasób, mechanizm nazywania w WWW pozwala na pobieranie tego samego pliku przy pomocy różnych protokołów. Mechanizm ten był bardzo potrzebny i często wykorzystywany w początkowych czasach funkcjonowania WWW. Dzięki temu również WWW stało się tak uniwersalnym interfejsem do pobierania zasobów, które zazwyczaj są tylko dostępne przez np. FTP. Przykładem wykorzystania tego jest rtsp://clips.foo.com/audio/X lub telnet://ox.mycompany.com.pl. Kiedy przeglądarka spotyka się z takim odwołaniem do zasobu, interpretuje rodzaj protokołu do pierwszego wystąpienia znaku ":" a następnie uruchamia połączenie przy jego pomocy - RTSP (ang. Real Time Streaming Protocol) lub TELNET. | Każdy z protokołów ma inną składnię i mechanizm nazywania zasobów. Poprzez oddzielenie protokołu i ciągu znaków lokalizującego zasób, mechanizm nazywania w WWW pozwala na pobieranie tego samego pliku przy pomocy różnych protokołów. Mechanizm ten był bardzo potrzebny i często wykorzystywany w początkowych czasach funkcjonowania WWW. Dzięki temu również WWW stało się tak uniwersalnym interfejsem do pobierania zasobów, które zazwyczaj są tylko dostępne przez np. FTP. Przykładem wykorzystania tego jest rtsp://clips.foo.com/audio/X lub telnet://ox.mycompany.com.pl. Kiedy przeglądarka spotyka się z takim odwołaniem do zasobu, interpretuje rodzaj protokołu do pierwszego wystąpienia znaku ":" a następnie uruchamia połączenie przy jego pomocy - RTSP (ang. Real Time Streaming Protocol) lub TELNET. | ||
Linia 358: | Linia 358: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd36.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd36.png|thumb|500px]] | ||
|valign="top"|Jak już zostało wspomniane, protokół HTTP nie używa sesji połączeniowej do wymiany danych między klientem i serwerem. Cała komunikacja jest oparta o mechanizm ,,zapytanie - odpowiedź''. Zapytanie wysłane przez klienta do serwera nie musi być odebrane przez oryginalny serwer, do którego było kierowane. Może je obsłużyć dowolny serwer posiadający żądany zasób lub np. serwer proxy. Dla klienta jest to zupełnie niewidoczne. Serwer odbierający zapytanie odsyła odpowiedź. | |valign="top"|Jak już zostało wspomniane, protokół HTTP nie używa sesji połączeniowej do wymiany danych między klientem i serwerem. Cała komunikacja jest oparta o mechanizm ,,zapytanie - odpowiedź''. Zapytanie wysłane przez klienta do serwera nie musi być odebrane przez oryginalny serwer, do którego było kierowane. Może je obsłużyć dowolny serwer posiadający żądany zasób lub np. serwer proxy. Dla klienta jest to zupełnie niewidoczne. Serwer odbierający zapytanie odsyła odpowiedź. | ||
Protokół HTTP specyfikuje kilka metod, których może użyć klient do pobierania, modyfikacji, tworzenia i usuwania zasobu. Są to: | Protokół HTTP specyfikuje kilka metod, których może użyć klient do pobierania, modyfikacji, tworzenia i usuwania zasobu. Są to: | ||
Linia 373: | Linia 373: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd37.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd37.png|thumb|500px]] | ||
|valign="top"|Odpowiedź serwera składa się z : | |valign="top"|Odpowiedź serwera składa się z : | ||
numeru kodu odpowiedzi, mówiącego o sukcesie lub błędzie, | numeru kodu odpowiedzi, mówiącego o sukcesie lub błędzie, | ||
Linia 386: | Linia 386: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd38.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd38.png|thumb|500px]] | ||
|valign="top"|Z punktu widzenia komunikacji w sieci, HTTP jest protokołem poziomu aplikacji, używa protokołów warstw niższych ( w rzeczywistości tylko jednego - TCP). Ponieważ nie da się wygenerować odpowiedzi serwera dopóki nie otrzyma on zapytania od klienta , dlatego też kierunek zapytań zawsze zaczyna się od klienta do serwera. Następnie wysyłane są odpowiedzi. Każda taka wymiana komunikatów jest traktowana przez serwer zupełnie oddzielnie. Protokół HTTP nie posiada mechanizmów, które potrafiłyby przenosić informację o wcześniejszych odwołaniach klienta do serwera i jego odpowiedziach. Z tego punktu widzenia HTTP jest protokołem bezstanowym i nie zarządza sesjami. | |valign="top"|Z punktu widzenia komunikacji w sieci, HTTP jest protokołem poziomu aplikacji, używa protokołów warstw niższych ( w rzeczywistości tylko jednego - TCP). Ponieważ nie da się wygenerować odpowiedzi serwera dopóki nie otrzyma on zapytania od klienta , dlatego też kierunek zapytań zawsze zaczyna się od klienta do serwera. Następnie wysyłane są odpowiedzi. Każda taka wymiana komunikatów jest traktowana przez serwer zupełnie oddzielnie. Protokół HTTP nie posiada mechanizmów, które potrafiłyby przenosić informację o wcześniejszych odwołaniach klienta do serwera i jego odpowiedziach. Z tego punktu widzenia HTTP jest protokołem bezstanowym i nie zarządza sesjami. | ||
Powód, dla którego postanowiono tak zrobić, jest bardzo prosty. W czasach powstawania WWW tworzono jeszcze kilka innych, konkurencyjnych systemów. Wszystkie one miały zapewnić dostęp do dużych zasobów w Internecie. Gdyby dodać do protokołu przechowywanie informacji o każdej sesji, to mogłoby się okazać, że serwery muszą przechowywać duże zbiory danych o swoich użytkownikach. WWW tym samym stałby się rozwiązaniem słabo skalowalnym . | Powód, dla którego postanowiono tak zrobić, jest bardzo prosty. W czasach powstawania WWW tworzono jeszcze kilka innych, konkurencyjnych systemów. Wszystkie one miały zapewnić dostęp do dużych zasobów w Internecie. Gdyby dodać do protokołu przechowywanie informacji o każdej sesji, to mogłoby się okazać, że serwery muszą przechowywać duże zbiory danych o swoich użytkownikach. WWW tym samym stałby się rozwiązaniem słabo skalowalnym . | ||
Linia 394: | Linia 394: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd39.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd39.png|thumb|500px]] | ||
|valign="top"|Problem, jaki niesie za sobą model wymiany wiadomości w HTTP, jest związany z obciążeniem, którego nie generuje ten protokół jako taki, ale TCP. Jak wiemy, TCP potrzebuje wymiany kilku pakietów do otwarcia sesji. HTTP może przesyłać swoje dane dopiero po otwarciu sesji TCP. Użytkownicy wykorzystujący WWW bardzo często po odebraniu odpowiedzi serwera zmieniają go na inny. Tak się dzieje np. gdy korzystamy z wyszukiwarek internetowych. TCP nie zamyka od razu połączenia po stronie serwera, a system operacyjny użytkownika nie wysyła do niego informacji, że sesja nie będzie już używana. Tym sposobem zarówno klient jak i serwer mogą mieć sporą liczbę otwartych, nieużywanych sesji TCP. Wbrew temu co może się wydawać, zmniejszenie czasu nieaktywności sesji przed jej zamknięciem nie jest rozwiązaniem. Opóźnienia w sieci mają charakter losowy i często dane docierają w różnym czasie do odbiorcy. Jeżeli czas nieaktywności będzie zbyt krótki, sesja będzie zamknięta przed odebraniem danych. Użytkownik wówczas będzie otwierał nową sesję, która znowu po chwili będzie zamknięta. Serwer będzie obciążany samymi operacjami zamykania/otwierania sesji. Czas oczekiwania użytkownika na odpowiedź serwera będzie wydłużany o czas potrzebny na zestawienie sesji TCP, co czasami może trwać kilka sekund. Otwieranie i zamykanie sesji jest w sumie najbardziej kosztowną operacją dla serwera. Poza tym w sieci pojawia się ogromna liczba krótkich pakietów IP. Zwiększają one jej obciążenie zmniejszając tym samym szansę na przesłanie większej liczby danych. Sytuacja ta jest dość często spotykana w sieciach. | |valign="top"|Problem, jaki niesie za sobą model wymiany wiadomości w HTTP, jest związany z obciążeniem, którego nie generuje ten protokół jako taki, ale TCP. Jak wiemy, TCP potrzebuje wymiany kilku pakietów do otwarcia sesji. HTTP może przesyłać swoje dane dopiero po otwarciu sesji TCP. Użytkownicy wykorzystujący WWW bardzo często po odebraniu odpowiedzi serwera zmieniają go na inny. Tak się dzieje np. gdy korzystamy z wyszukiwarek internetowych. TCP nie zamyka od razu połączenia po stronie serwera, a system operacyjny użytkownika nie wysyła do niego informacji, że sesja nie będzie już używana. Tym sposobem zarówno klient jak i serwer mogą mieć sporą liczbę otwartych, nieużywanych sesji TCP. Wbrew temu co może się wydawać, zmniejszenie czasu nieaktywności sesji przed jej zamknięciem nie jest rozwiązaniem. Opóźnienia w sieci mają charakter losowy i często dane docierają w różnym czasie do odbiorcy. Jeżeli czas nieaktywności będzie zbyt krótki, sesja będzie zamknięta przed odebraniem danych. Użytkownik wówczas będzie otwierał nową sesję, która znowu po chwili będzie zamknięta. Serwer będzie obciążany samymi operacjami zamykania/otwierania sesji. Czas oczekiwania użytkownika na odpowiedź serwera będzie wydłużany o czas potrzebny na zestawienie sesji TCP, co czasami może trwać kilka sekund. Otwieranie i zamykanie sesji jest w sumie najbardziej kosztowną operacją dla serwera. Poza tym w sieci pojawia się ogromna liczba krótkich pakietów IP. Zwiększają one jej obciążenie zmniejszając tym samym szansę na przesłanie większej liczby danych. Sytuacja ta jest dość często spotykana w sieciach. | ||
Najnowsza specyfikacja HTTP/1.1 pozwala na utrzymywanie ,,sesji HTTP'' między przeglądarką a serwerem. Niektóre implementacje HTTP/1.0 pozwalały na używanie nagłówka Keep-Alive. W HTTP/1.1 zostało to przekształcone do tzw. stałego połączenia (ang. persistent connection). Mechanizm ten pozwala klientowi na poinformowaniu serwera, że jest zainteresowany utrzymaniem stałego połączenia z nim, poza pojedynczą wymianę wiadomości. Należy pamiętać, że ta wymiana może składać się z kilkunastu ramek TCP. W przypadku HTTP/1.0 mimo to istnieje problem określenia, jak długo połączenie ma być utrzymywane, gdy serwer odsyła dynamicznie generowaną odpowiedź np. przez skrypt. Nie zawiera ona wówczas nagłówka podającego jej wielkość. Klient może jedynie stwierdzić, że otrzymał całość gdy serwer zamyka połączenie. Na szczęście, poprzez rozszerzenia nagłówka HTTP, serwer może określać jak długo połączenie będzie utrzymywane po otrzymaniu ostatniego zapytania. Może również określić maksymalną liczbę zapytań, które klient może wysłać w danym połączeniu. | Najnowsza specyfikacja HTTP/1.1 pozwala na utrzymywanie ,,sesji HTTP'' między przeglądarką a serwerem. Niektóre implementacje HTTP/1.0 pozwalały na używanie nagłówka Keep-Alive. W HTTP/1.1 zostało to przekształcone do tzw. stałego połączenia (ang. persistent connection). Mechanizm ten pozwala klientowi na poinformowaniu serwera, że jest zainteresowany utrzymaniem stałego połączenia z nim, poza pojedynczą wymianę wiadomości. Należy pamiętać, że ta wymiana może składać się z kilkunastu ramek TCP. W przypadku HTTP/1.0 mimo to istnieje problem określenia, jak długo połączenie ma być utrzymywane, gdy serwer odsyła dynamicznie generowaną odpowiedź np. przez skrypt. Nie zawiera ona wówczas nagłówka podającego jej wielkość. Klient może jedynie stwierdzić, że otrzymał całość gdy serwer zamyka połączenie. Na szczęście, poprzez rozszerzenia nagłówka HTTP, serwer może określać jak długo połączenie będzie utrzymywane po otrzymaniu ostatniego zapytania. Może również określić maksymalną liczbę zapytań, które klient może wysłać w danym połączeniu. | ||
Linia 401: | Linia 401: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd40.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd40.png|thumb|500px]] | ||
|valign="top"|Metadane są informacjami związanymi z przedmiotem, którego dotyczą, ale nie są jego częścią. W przypadku HTTP metadane są przesyłane w nagłówkach. Oczywiście nie do każdego zasobu da się takie metadane stworzyć, np. w przypadku dynamicznie generowanych odpowiedzi serwer nie umieszcza informacji o jej wielkości gdyż obliczenie tego wprowadzałoby dodatkowe opóźnienie. Należy jednak pamiętać, że takie dane mają charakter nie tylko informacyjny. Często mogą one istotnie zmienić odpowiedzi serwera, kolejne zapytania klienta. | |valign="top"|Metadane są informacjami związanymi z przedmiotem, którego dotyczą, ale nie są jego częścią. W przypadku HTTP metadane są przesyłane w nagłówkach. Oczywiście nie do każdego zasobu da się takie metadane stworzyć, np. w przypadku dynamicznie generowanych odpowiedzi serwer nie umieszcza informacji o jej wielkości gdyż obliczenie tego wprowadzałoby dodatkowe opóźnienie. Należy jednak pamiętać, że takie dane mają charakter nie tylko informacyjny. Często mogą one istotnie zmienić odpowiedzi serwera, kolejne zapytania klienta. | ||
Najczęściej wykorzystywanymi informacjami są: | Najczęściej wykorzystywanymi informacjami są: | ||
Linia 411: | Linia 411: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd41.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd41.png|thumb|500px]] | ||
|valign="top"|Network News Transfer Protocol - NNTP służy do transmisji artykułów związanych z ,,elektronicznymi grupami'' usługi news. Programy klienckie użytkowników wykorzystują ten protokół do komunikacji z lokalnymi serwerami news a serwery do wymiany wiadomości między sobą. | |valign="top"|Network News Transfer Protocol - NNTP służy do transmisji artykułów związanych z ,,elektronicznymi grupami'' usługi news. Programy klienckie użytkowników wykorzystują ten protokół do komunikacji z lokalnymi serwerami news a serwery do wymiany wiadomości między sobą. | ||
Usługa news służy do wymiany wiadomości między użytkownikami, podobnie jak poczta elektroniczna. Jednak między tymi dwoma serwisami istnieją zasadnicze różnice. Poczta elektroniczna służy do wymiany listów e-mail między dwoma osobami lub w kręgu niedużej grupy ludzi. Przykładem może być firma, która może utworzyć listę e-mailową związaną z danym tematem. Użytkownicy zainteresowani otrzymywaniem wiadomości z tej listy mogą się na nią zapisać. Pierwsza niedogodność płynąca z tego rozwiązania to wysyłanie oddzielnej kopii tego samego listu do każdej z zapisanych osób. Zwiększa to niepotrzebnie obciążenie serwera i sieci. Druga, ważniejsza, to sposób zarządzania listą. Jeśli nie jest automatyczny, to administrator listy musi ręcznie dodawać lub usuwać użytkowników. Oczywiście listą może zarządzać program, który odbiera listy kierowane na specjalny adres. Nie likwiduje to jednak problemu do końca, zwłaszcza gdy użytkownik zapomni zmienić swój adres e-mail na liście zanim zmieni go w rzeczywistości. Wówczas serwer będzie próbował wysyłać listy pod nieistniejące adresy, a lista zapisanych osób będzie rosła. | Usługa news służy do wymiany wiadomości między użytkownikami, podobnie jak poczta elektroniczna. Jednak między tymi dwoma serwisami istnieją zasadnicze różnice. Poczta elektroniczna służy do wymiany listów e-mail między dwoma osobami lub w kręgu niedużej grupy ludzi. Przykładem może być firma, która może utworzyć listę e-mailową związaną z danym tematem. Użytkownicy zainteresowani otrzymywaniem wiadomości z tej listy mogą się na nią zapisać. Pierwsza niedogodność płynąca z tego rozwiązania to wysyłanie oddzielnej kopii tego samego listu do każdej z zapisanych osób. Zwiększa to niepotrzebnie obciążenie serwera i sieci. Druga, ważniejsza, to sposób zarządzania listą. Jeśli nie jest automatyczny, to administrator listy musi ręcznie dodawać lub usuwać użytkowników. Oczywiście listą może zarządzać program, który odbiera listy kierowane na specjalny adres. Nie likwiduje to jednak problemu do końca, zwłaszcza gdy użytkownik zapomni zmienić swój adres e-mail na liście zanim zmieni go w rzeczywistości. Wówczas serwer będzie próbował wysyłać listy pod nieistniejące adresy, a lista zapisanych osób będzie rosła. | ||
Linia 420: | Linia 420: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd42.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd42.png|thumb|500px]] | ||
|valign="top"|Podobnie jak w przypadku listu e-mail, artykuł zawiera szereg nagłówków: | |valign="top"|Podobnie jak w przypadku listu e-mail, artykuł zawiera szereg nagłówków: | ||
adres e-mail autora, | adres e-mail autora, | ||
Linia 435: | Linia 435: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd43.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd43.png|thumb|500px]] | ||
|valign="top"|NNTP został zaproponowany jako zastępstwo starego UUCP (ang. UNIX-to-UNIX Copy Protocol) w 1986 r. | |valign="top"|NNTP został zaproponowany jako zastępstwo starego UUCP (ang. UNIX-to-UNIX Copy Protocol) w 1986 r. | ||
Aplikacja, służąca do odczytywania artykułów z serwera news, otwiera połączenie TCP z serwerem na porcie 119. Podobnie jak FTP i SMTP serwer zwraca trzycyfrowy kod, z opcjonalną wiadomością tekstową do komend wydawanych przez klienta. W zależności od rodzaju odpowiedzi może ona mieć jeszcze dodatkowe parametry. Numer i typ dodatkowych parametrów jest dołączany przez serwer do każdej odpowiedzi, co ułatwia klientowi ich interpretację. Podczas przetwarzania komend serwer pamięta nazwę bieżącej grupy news oraz numer artykułu pobranego przez klienta. | Aplikacja, służąca do odczytywania artykułów z serwera news, otwiera połączenie TCP z serwerem na porcie 119. Podobnie jak FTP i SMTP serwer zwraca trzycyfrowy kod, z opcjonalną wiadomością tekstową do komend wydawanych przez klienta. W zależności od rodzaju odpowiedzi może ona mieć jeszcze dodatkowe parametry. Numer i typ dodatkowych parametrów jest dołączany przez serwer do każdej odpowiedzi, co ułatwia klientowi ich interpretację. Podczas przetwarzania komend serwer pamięta nazwę bieżącej grupy news oraz numer artykułu pobranego przez klienta. | ||
Linia 442: | Linia 442: | ||
{| border="0" cellpadding="4" width="100%" | {| border="0" cellpadding="4" width="100%" | ||
|valign="top" width="500px"|[[Grafika:SK_M12_Slajd44.png]] | |valign="top" width="500px"|[[Grafika:SK_M12_Slajd44.png|thumb|500px]] | ||
|valign="top"|NNTP ma bogaty zbiór poleceń spełniających różne funkcje. Jednym ze zbiorów takich komend są polecenia dostarczające generalnych informacji o serwerze i dostępnych grupach news, np.: | |valign="top"|NNTP ma bogaty zbiór poleceń spełniających różne funkcje. Jednym ze zbiorów takich komend są polecenia dostarczające generalnych informacji o serwerze i dostępnych grupach news, np.: | ||
lista obsługiwanych przez serwer poleceń, | lista obsługiwanych przez serwer poleceń, |
Wersja z 11:13, 21 wrz 2006
![]() |
![]() |
Najprostszym sposobem jest podanie nazwy użytkownika i hasła. Prezentuje to przykład na slajdzie. |
![]() |
Firma Microsoft oparła implementację RDP o protokół wymiany danych między aplikacjami - T.128. Jest on również znany jako T.SHARE. Standard został opracowany przez ITU-T. Pod adresem http://www.rdesktop.org/docs/t128.zip i http://www.rdesktop.org/docs/t125.zip można znaleźć dokumenty ITU-T o tym protokole. Oprócz tego, dodatkowych informacji można szukać w dokumentach RFC905 i RFC2126.
Najważniejszą cechą rodziny protokołów T.120 jest możliwość przesyłu danych w kilku wirtualnych kanałach (do wykorzystania jest 64000 kanałów w jednym połączeniu). Dane są w nich transmitowane równolegle, a przy tym niezależnie. Dzięki temu dane warstwy prezentacji są niezależne od informacji pochodzących z portów szeregowych, klawiatury, myszy. W wersji usług terminalowych udostępnionych wraz z Windows NT4.0 Server wszystkie sesje były typu ,,punkt-punkt. RDP jednak, jako rozszerzenie T.Share pozwala na sesje typu multicast. RDP został zaprojektowany w sposób pozwalający mu wykorzystywać protokoły takie jak TCP/IP, NetBios, IPX do komunikacji. Czyni go to niezależnym od użytej technologii sieciowej i pozwala na używanie w różnorodnych środowiskach. Dane pochodzące z aplikacji, przesyłane przy pomocy RDP, są obsługiwane niemal identycznie jak inne programy nie korzystające z RDP. Jedynym dodatkiem jest stos tego protokołu. W stosie tym następuje podział danych na fragmenty, przekierowanie do odpowiedniego kanału, szyfrowanie, podział danych na ramki i przesłanie do protokołów warstw niższych. Odbiór danych odbywa się w przeciwnym kierunku. W systemach Windows złożoność tego procesu ukryto przed programistami udostępniając im odpowiedniego typu API (ang. Application Programming Interace). |
![]() |
Adres URI jest uważany za bezwzględny, jeśli ciąg znaków, który go reprezentuje, zaczyna się od tzw. schematu i dalej znaków reprezentujących zasób osiągalny w sieci przy pomocy tego schematu. Schemat to nic innego jak wskazanie protokołu, który ma być użyty do pobrania zasobu. Pierwsza specyfikacja HTTP/0.9 uwzględniała schematy: file, news, http, telnet, gopher. Mimo, że określenie protokołu wskazuje wyraźnie jego nazwę to, do pobrania zasobu mogą być również użyte inne protokoły. Typowe pobranie strony HTML z sieci powoduje skorzystanie z systemu DNS do odnalezienia numeru IP serwera i z protokołu TCP do nawiązania z nim sesji. Najbardziej znanym schematem jest HTTP.
Każdy z protokołów ma inną składnię i mechanizm nazywania zasobów. Poprzez oddzielenie protokołu i ciągu znaków lokalizującego zasób, mechanizm nazywania w WWW pozwala na pobieranie tego samego pliku przy pomocy różnych protokołów. Mechanizm ten był bardzo potrzebny i często wykorzystywany w początkowych czasach funkcjonowania WWW. Dzięki temu również WWW stało się tak uniwersalnym interfejsem do pobierania zasobów, które zazwyczaj są tylko dostępne przez np. FTP. Przykładem wykorzystania tego jest rtsp://clips.foo.com/audio/X lub telnet://ox.mycompany.com.pl. Kiedy przeglądarka spotyka się z takim odwołaniem do zasobu, interpretuje rodzaj protokołu do pierwszego wystąpienia znaku ":" a następnie uruchamia połączenie przy jego pomocy - RTSP (ang. Real Time Streaming Protocol) lub TELNET. |