Transcript
Programowanie Sieciowe
1
dr inż. Tomasz Jaworski
[email protected] http://tjaworski.iis.p.lodz.pl/
Katedra Informatyki Stosowanej
Cel przedmiotu
Zapoznanie z • mechanizmem przesyłania danych przy pomocy sieci komputerowych • nawiązywaniem i zamykaniem połączenia • tworzeniem serwerów jedno- i wielodostępowych
Katedra Informatyki Stosowanej
2
Plan przedmiotu • Model OSI
– Model ISO a TCP/IP
• Porównanie TCP i UDP • Wyjaśnienie pojęć: Adres IP, Port, Para gniazdowa – Konwersja danych
• Klient TCP • Serwer TCP
– Operacje blokujące i nieblokujące
• Elementy wielozadaniowości • Programowanie z wykorzystaniem środowiska Visual Studio 2008 i bibliotek MFC Katedra Informatyki Stosowanej
3
Literatura
[1] Richard W. Stevens, Unix: Programowanie usług sieciowych, Tom 1 [2] Beej's Guide to Network Programming Using Internet Sockets (http://beej.us/guide/bgnet/)
Katedra Informatyki Stosowanej
4
Połączenia między komputerami
Komputer (Klient)
Komputer (Serwer)
Komputer (Klient) Komputer (Klient)
Komputer (Klient)
Komputer (Klient)
Komputer (Serwer)
Komputer (Klient)
Komputer (Klient) Komputer (Klient)
Katedra Informatyki Stosowanej
Komputer (Klient)
• Serwer-klient – najczęściej spotykana relacja • Jeden serwer może obsługiwać wiele klientów jednocześnie (np. komunikatory, serwery WWW) – Pierwsza polska gra MUD, Studnia Dusz
• Komputer-komputer (P2P, Peer to peer) – bezpośrednie połączenie między komputerami 5
Model OSI – Open System Interconnection
• Model przyjęty jako norma ISO (Międzynarodowej Organizacji Normalizacyjnej, ang. International Organization for Standardization),
• Abstrakcyjny; specjalizacja pod postacią Modelu TCP lepiej odpowiada rzeczywistości
Katedra Informatyki Stosowanej
6
Model OSI – Open System Interconnection Aplikacji/ zastosowań Prezentacji Sesji Transportowa
Warstwa aplikacji • Komunikacja z użytkownikiem, • Wyświetlanie grafiki, tekstu (przeglądarka WWW, gry multiplayer), • Zapis/odczyt danych z dysku,
Sieciowa Łącza danych/ kanałowa Fizyczna Katedra Informatyki Stosowanej
7
Model OSI – Open System Interconnection Aplikacji/ zastosowań Prezentacji Sesji Transportowa Sieciowa Łącza danych/ kanałowa Fizyczna Katedra Informatyki Stosowanej
Warstwa prezentacji • Przygotowanie danych do wysłania – Kompresja, – Szyfrowanie, – Serializacja obiektów binarnych do np. formatu XML,
• Ustalenie kolejności bajtów do tzw. sieciowej kolejności bajtów (network byte order). – Pierwszeństwo bajtu bardziej znaczącego (big-endian). – 0xCAFFE001 -> CA, FF, E0, 01, – htons(unsigned short), htonl(unsigned long), – ntohs(unsigned short), – ntohl(unsigned long), 8
Model OSI – Open System Interconnection Aplikacji/ zastosowań Prezentacji Sesji Transportowa Sieciowa Łącza danych/ kanałowa
Warstwa sesji • Odpowiada za nadzorowanie połączenie, monitorowanie jego stanu, • W przypadku zerwania połączenia program nadzorcy może ponawiać połączenie, np. n razy, po czym poinformować warstwę wyższą o błędzie • Ukrycie gniazd przed warstwą prezentacji
Fizyczna Katedra Informatyki Stosowanej
9
Model OSI – Open System Interconnection Aplikacji/ zastosowań
Warstwa transportowa •
Prezentacji Sesji
•
Transportowa Sieciowa
– Służą do tego gniazda surowe (raw sockets) – Można tworzyć własne protokoły komunikacji
Łącza danych/ kanałowa Fizyczna Katedra Informatyki Stosowanej
Wykorzystywana najczęściej przez protokół TCP (Transmission Control Protocol) lub UDP (User Datagram Protocol). Można pominąć warstwę transportową i komunikować się bezpośrednio przy pomocy oprogramowania IPV4 oraz IPv6.
•
Przyjmuje strumień danych, generuje pakiety. 10
Model OSI – Open System Interconnection Aplikacji/ zastosowań Prezentacji Sesji Transportowa
Warstwa sieciowa • Przesyłanie • Obsługiwana przez oprogramowanie protokołów IPv4 oraz IPv6. • Przyjmuje pakiety, generuje datagramy IP.
Sieciowa Łącza danych/ kanałowa Fizyczna Katedra Informatyki Stosowanej
11
Model OSI – Open System Interconnection Aplikacji/ zastosowań Prezentacji Sesji Transportowa Sieciowa
Warstwa łącza danych • Sterowniki dostarczane przez producenta sprzętu lub systemu operacyjnego, • Ograniczenie wielkości segmentu do 1500 bajtów, MTU (Maximum Transfer Units) • Przyjmuje datagramy, generuje ramki.
Łącza danych/ kanałowa Fizyczna Katedra Informatyki Stosowanej
12
Model OSI – Open System Interconnection Aplikacji/ zastosowań Prezentacji Sesji Transportowa
Warstwa fizyczna • sprzęt – Karta sieciowa – Konwertery medium – Kable
• Informacje przesyłane jako strumień bitów (110101010101110111001…)
Sieciowa Łącza danych/ kanałowa Fizyczna Katedra Informatyki Stosowanej
13
Model OSI – przepływ danych
Aplikacji/ zastosowań
Aplikacji/ zastosowań
Prezentacji
Prezentacji
Sesji
Sesji
Transportowa
Transportowa
Sieciowa
Sieciowa
Łącza danych/ kanałowa
Łącza danych/ kanałowa
Fizyczna
Fizyczna
LAN/Internet
Host A (klient) Katedra Informatyki Stosowanej
Host B (klient)
14
Model OSI vs Model TCP/IP Model TCP/IP
Generalizacja dla rodziny protokołów Internetu
Aplikacji/ zastosowań
Zastosowań
Transportowa
Transportowa
TCP RAW UDP
Sieciowa
Internetu
IPv4 / IPv6
Dostępu do sieci
Sterowniki + sprzęt
Model OSI Aplikacji/ zastosowań Prezentacji Sesji
Łącza danych/ kanałowa Fizyczna
Katedra Informatyki Stosowanej
15
Model TCP Warstwa aplikacji Aplikacji/ zastosowań
Transportowa Internetu
• Kontakt z użytkownikiem lub procesem (GUI, Video) • Transformacja danych do jednolitego formatu • Dialog między aplikacjami pracującymi zdalnymi, pracującymi wg założonego protokołu (np. FTP, HTTP)
Dostępu do sieci
Katedra Informatyki Stosowanej
16
Model TCP Warstwa transportowa Aplikacji/ zastosowań
Transportowa Internetu Dostępu do sieci
Katedra Informatyki Stosowanej
• Przesyłanie danych między aplikacjami (określanych na podstawie unikalnych par numer_ip:port) • Obsługa wielu aplikacji jednocześnie; para numer_ip:port może być przyporządkowana tylko do jednego procesu • W modelu OSI to tutaj znajduje się oprogramowanie TCP
17
Model TCP Warstwa Internetu Aplikacji/ zastosowań
• Protokół IPv4 lub IPv6, • Bazuje na adresie IP
Transportowa Internetu Dostępu do sieci
Katedra Informatyki Stosowanej
18
Model TCP Warstwa dostępu Aplikacji/ zastosowań
• Przekazywanie informacji przez fizyczne połączenie (nadawanie/odbiór)
Transportowa Internetu Dostępu do sieci
Katedra Informatyki Stosowanej
19
Enkapsulacja danych w Modelu TCP/IP
Warstwa aplikacji
Dane aplikacji
Nagłówek segmentu
Dane aplikacji
Nagłówek pakietu
Nagłówek segmentu
Dane aplikacji
Nagłówek pakietu
Nagłówek segmentu
Dane aplikacji
Warstwa transportowa
Warstwa Internetu (warstwa sieciowa)
Warstwa dostępu do sieci (Warstwa łącza danych + fizyczna)
Nagłówek ramki
0101010010101110111001001011010100100010111101011010.. Katedra Informatyki Stosowanej
20
Dziękuję za uwagę!
Katedra Informatyki Stosowanej