Lista przedmiotów z materiałami udostępnionymi dla studentów

Dla_studentów
  • Increase font size
  • Default font size
  • Decrease font size

Damian Jakubowski

Wykorzystanie interfejsu gniazd w systemie operacyjnym Linux na przykładzie aplikacji klient - serwer "Globalne FTP"


Opiekun pracy dyplomowej: dr inż. Piotr Dębiec prof. ucz.
Praca dyplomowa inżynierska obroniona 2005-05-31
Streszczenie pracy dyplomowej:
Tematem pracy był standardowy interfejs gniazd sieciowych dostępny na platformie Linux. Jako punkt wyjścia do jego opisu wykorzystano protokoły sieciowe. Są one bowiem podstawą działania wszystkich sieci komputerowych. Zapewniają one możliwość wymiany danych pomiędzy komputerami, a szczegółowiej rzecz ujmując pomiędzy uruchomionymi na nich programami. Podstawą działania największej sieci czyli Internetu oraz znaczącej większości sieci lokalnych są protokoły rodziny TCP/IP i dlatego zostały one w sposób szczegółowy opisane w niniejszej pracy. Protokół IP jest protokołem pozwalającym na przesyłanie informacji pomiędzy węzłami sieci, jednakże nie kontroluje on poprawności przesyłanych danych. Protokołem, który dodaje do protokołu IP cechę niezawodności jest protokół TCP, który ma wbudowane mechanizmy kontroli transmisji informacji. Razem tworzą one rodzinę TCP/IP, która jest wykorzystywana przez większości oprogramowania sieciowego. Przykładem takiego oprogramowania jest usługa FTP, która pozwala na przesyłanie plików pomiędzy komputerami. Jej konstrukcja jest zbudowana w oparciu o model klient-serwer. Definiuje on zasady zestawiania wirtualnych połączeń, które tworzą pomiędzy sobą programy wymieniające dane. I tak serwer jest programem, który biernie oczekuje na połączenia pod ogólnie znanym adresem, natomiast połączenia inicjują klienci, którzy chcą skorzystać z usług oferowanych przez serwer. Aby uprościć tworzenie oprogramowania sieciowego stworzono mechanizm gniazd sieciowych. Jest to zestaw funkcji programowych zawartych w standardowej bibliotece dostarczanej z każdą dystrybucją systemu operacyjnego Linux. Zasadniczym ich elementem jest tzw. gniazdo sieciowe. Jest ono wirtualnym tworem istniejącym w pamięci komputera i pośredniczącym pomiędzy tworzącym je programem użytkowym, a tą częścią systemu operacyjnego, która zajmuje się obsługą sieci. Zostało ono obudowane w szereg funkcji, które uprościły do maksimum obsługę sieci w aplikacji, a jednocześnie zwolniły programistę z konieczności szczegółowej znajomości protokołów sieciowych przy pomocy których wymienia informacje jego program. Część praktyczna niniejszej pracy obejmowała zaprojektowanie i stworzenie aplikacji klient – serwer "Globalne FTP". Służyła ona do podobnie jak jej protoplasta FTP do transferu plików pomiędzy komputerami. Jako podstawę jej działania wybrano protokół TCP/IP, którym posłużono się jako warstwą wyjściową do stworzenia protokołu spełniającego wymagania tworzonej aplikacji. Podstawową cechą tego protokołu, która decydowała o jego funkcjonalności był sposób przesyłania plików z systemu plików serwera do klienta. Pozwalała ona bowiem na przesłanie wszystkich plików o podanej nazwie z bieżącego folderu oraz jego podkatalogów. Pozwalało to na przykład na kopiowanie plików bez znajomości ich dokładnej lokalizacji.