Komunikacja przez sieć z wykorzystaniem biblioteki WINSOCK. dr inż. Piotr Kaczmarek Instytut Automatyki i Inżynierii Informatycznej
|
|
- Jacek Stasiak
- 7 lat temu
- Przeglądów:
Transkrypt
1 Komunikacja przez sieć z wykorzystaniem biblioteki WINSOCK dr inż. Piotr Kaczmarek Instytut Automatyki i Inżynierii Informatycznej
2 LAN (Local Area Network) Warstwa fizyczna Podstawowe topologie: -Gwiazda -Magistrala -Ring Medium: -UTP, optical fiber, 2.4GHz...
3 Model ISO OSI
4 Warstwa fizyczna (physical layer) Warstwa fizyczna: (physical layer) Jest odpowiedzialna za transmisję strumienia bitów między węzłami sieci. Definiuje protokoły opisujące interfejsy fizyczne, to jest ich aspekty: mechaniczny, elektryczny, funkcjonalny i proceduralny. Do funkcji tej warstwy należą: sprzęgniecie z medium transmisji danych, dekodowanie sygnałów, określanie zakresu amplitudy prądu lub napięcia i określanie parametrów mechanicznych łączówek (kształtu, wymiarów i liczby styków) oraz inne kwestie związane z transmisją bitów.
5 Warstwa łącza danych Zapewnia niezawodne łącze pomiędzy sąsiednimi węzłami. Nadzoruje przepływ informacji przez łącze i w związku z podatnością warstwy fizycznej na zakłócenia i wynikające stąd błędy oferuje własne mechanizmy kontroli błędów w przesyłanych ramkach lub pakietach (CRC - Cyclic Redundancy Check).
6 Adres MAC MAC (ang. Media Access Control) podwarstwa warstwy łącza danych (ang. Data Link Layer, DLL) w modelu OSI sprzętowy adres karty sieciowej Ethernet i Token Ring, unikatowy w skali światowej, nadawany przez producenta danej karty podczas produkcji. Adres MAC (ang. MAC address) jest 48-bitowy i zapisywany jest heksadecymalnie (szesnastkowo). Pierwsze 24 bity oznaczają producenta karty sieciowej, pozostałe 24 bity są unikatowym identyfikatorem danego egzemplarza karty. Na przykład adres 00:0A:E6:3E:FD:E1 oznacza, że karta została wyprodukowana przez Elitegroup Computer System Co. (ECS) i producent nadał jej numer 3E:FD:E1.
7 Mechanizmy wykrywania kolizji CSMA/CD (Carrier Sense Multiple Access with Collision Detect) Metoda dostępu CSMA/CD została zastosowana w takich sieciach jak: Ethernet (IEEE 802.3), IsoEthernet (IEEE 802.9) Fast Ethernet (IEEE 802.3u) - rozszerzenie (inna nazwa ISO u) lub 100Base-T, Gigabitowy Ethernet.
8 CSMA/CD 1) stacja, która wykryje kolizję jako pierwsza, natychmiast przestaje nadawać i wysyła charakterystyczny sygnał zakłócający - tzw. jamming signal. 2) Wszystkie pozostałe stacje usłyszawszy ten sygnał, przerywają swoje transmisje na losowo wybrany przedział czasu t. (Czas ten nie jest zupełnie losowy, jest bowiem wyznaczany na podstawie odpowiedniego algorytmu, który wykorzystuje 6-o bajtowy adres karty sieciowej. Zabezpieczona jest wobec tego sytuacja, w której stacje wylosowałyby tą samą chwilę na retransmisję.
9 CSMA/CD 3) Po tym czasie każda ze stacji, która brała udział w kolizji ponawia próbę transmisji. Jeżeli znowu nastąpi kolizja, wówczas przedział czasu, jaki stacja ma odczekać jest równy 2*t. Przy ponownej kolizji czas ten ponownie jest podwajany. 4. Jeżeli 16 razy pod rząd stacja nie będzie w stanie przeprowadzić transmisji z powodu ciągle występujących kolizji, wówczas kolejne próby są zaniechane, a informacja o błędzie przekazywana jest do wyższych warstw modelu ISO/OSI i ostatecznie dociera do użytkownika.
10 Warstwa sieciowa (network layer) Dostarcza środków do ustanawiania, utrzymania i rozłączania połączeń sieciowych miedzy systemami otwartymi, w których rezydują komunikujące się aplikacje, i odpowiada, za obsługę błędów komunikacji. Ponadto warstwa sieciowa jest odpowiedzialna za funkcje routingu, który wyznacza optymalną pod względem liczby połączeń drogę przesyłania pakietu przez sieć.
11 TCP (Transsmition Control Protocol) warstwa transpotrowa Ustala połączenie pomiędzy dwoma komputerami mającymi wymieniać dane (połączenie wirtualne) Połączenie nie kończy się na interface sieci, sięga aż do warstwy aplikacji (do określonego procesu uruchomionego na komputerze Każdy komputer tworzy gniazdo (socket), a punkty końcowe połączenia dołączane są do tegoż gniazda. Każde gniazdo posiada adres nazwany (numer portu)
12 TCP komunikacja Dane są przesyłane w segmentach TCP (ramkach z 20bajtowym nagłówkiem) Protokół zapewnia niezawodność transmisji (kontroluje dostarczenie pakietu (potwierdzenia), oraz jego poprawność (suma kontrolna) Pakiet jest dostarczany wyłącznie do adresata W pierwszej fazie żądanie połączenia musi być wysłane przez nadawcę a uzyskanie połączenia potwierdzone przez odbiorcę
13 UDP (User Datagram Protocol) warstwa transpotrowa Protokół bezpołączeniowy, więc nie ma narzutu na nawiązywanie połączenia i śledzenie sesji. Brak mechanizmów kontroli przepływu i retransmisji. Korzyści: większa szybkość transmisji danych i brak dodatkowych zadań, którymi musi zajmować się host posługujący się tym protokołem. Z tych względów UDP jest często używany w takich zastosowaniach jak wideokonferencje, strumienie dźwięku w Internecie i gry sieciowe, gdzie dane muszą być przesyłane możliwie szybko, a poprawianiem błędów zajmują się inne warstwy modelu OSI. Przykładem może być VoIP lub protokół DNS. UDP udostępnia mechanizm identyfikacji różnych punktów końcowych (np. pracujących aplikacji, usług czy serwisów) na jednym hoście dzięki portom. UDP zajmuje się dostarczaniem pojedynczych
14 INTER-NET połączenie wielu sieci między sobą Musi istnieć sposób komunikacji miedzy różnymi standardami sieci Należy określić ścieżkę przesyłania danych
15 IP (Internet Protocol) Dane z datagramów sieci lokalnej są wyłuskiwane i umieszczane w ramkach standardu IP IP pozwala na określenie adresu hosta w innej sieci Protokół zapewnia efektywne przesyłanie pakietów, nie pozwala jednak na kontrolę ich dostarczenia Określenie trasy przesyłania datagramu oraz translacja pakietu IP z i na pakiet protokołu wykorzystywanego w sieci lokalnej spoczywa na Routerach (traserach)
16 Komputery w sieci lokalnej mogą być adresowane na podstawie adresu MAC (Medium Acces Control) karty sieciowej Do adresowania komputerów w środowisku między sieciowym stosuje się adres IP (IPv4 przedstawiony obok) Do poszerzenia przestrzeni adresowej stosuje się CIDR(Classes Interdomain Routing) lub IPv6 (z 16bajtowym adresem) Można również wykorzystywać nazwy domenowe (w sieci musi istnieć server DNS (Domain Name Server) tłumaczący nazwę na adres IP komputera Adresowanie
17 IP v6 - adres składa się z 128b liczby (zazwyczaj zapisuje się w postaci 8x 16b wartości - bloki złożone z 0 można pominąć zastępijąc je :: Przykłady: 2001:0db8:0000:0000:0000:0000:1428:57ab 2001:0db8:0:0:0:0:1428:57ab 2001:0db8:0:0::1428:57ab 2001:0db8::1428:57ab 2001:db8::1428:57ab
18 IPv6 typy adresów W adresacji stosuje się trzy typy adresów: adresy unicast identyfikujące pojedynczy interfejs; pakiety, które są kierowane na ten typ adresu dostarczane są tylko do odbiorcy adresy multicast identyfikujące grupę interfejsów (mogą one należeć do różnych węzłów), pakiety wysyłane na ten adres dostarczane są do wszystkich członków grupy adresy anycast podobnie jak adresy multicast, identyfikują one grupę interfejsów, jednak pakiet wysyłany na ten adres dostarczany jest tylko do najbliższego węzła (węzeł ten jest wyznaczany przez protokół rutingu)
19 Zakresy adresów adresy lokalne dla łącza (link-local address) są to adresy wykorzystywane tylko do komunikacji w jednym segmencie sieci lokalnej lub przy połączeniu typu point-to-point. Rutery nie przekazują pakietów z tego rodzaju adresem. Z puli pozostałych adresów wyróżniane są przez prefiks FE80::/10. Każdy interfejs musi mieć przydzielony co najmniej jeden adres lokalny dla łącza, nawet jeżeli posiada adres globalny lub unikatowy adres lokalny. unikatowe adresy lokalne (unique local adress) są to adresy będące odpowiednikami adresów prywatnych wykorzystywanych w protokole IPv4. Z puli pozostałych adresów wyróżniane są przez prefiks FC00::/7. Od adresów lokalnych łącza odróżnia je także prefiks rutingu. adresy globalne (global unicast address) widoczne w całym internecie, są odpowiednikami adresów publicznych stosowanych w IPv4; wszystkie pozostałe
20 Adresy specjalne IPv6 ::/128 adres nieokreślony (zawierający same zera). ::1/128 loopback, adres wskazujący na host lokalny. ::/96 pula zarezerwowana dla zachowania kompatybilności z protokołem IPv4 (pierwsze 96 bitów stanowią 0, pozostają 32 bity na adresy w formacie IPv4). ::ffff:0:0/64 jw., ale pozwala wykorzystywać komunikację według protokołu IPv6 w sieci IPv :7f8::/32 pula zarezerwowana dla punktów wymiany ruchu, każdy z nich dostaje jedną podsieć / :db8::/32 pula wykorzystywana w przykładach i dokumentacji nigdy nie będzie wykorzystywana produkcyjnie. 2002::/24 adresy typu IPv6 do IPv4. Są to adresy wygenerowane na podstawie istniejących, publicznych adresów IPv4, dostępne dla każdego użytkownika.
21 Autokonfiguracja IPv6 Dla podsieci będących LAN-em przydzielana jest pula adresów z maską /64, co umożliwia tworzenie unikatowych adresów lokalnych dla łącza w oparciu o numery sprzętowe MAC (IEEE 802). Adres taki (dla adresu MAC 10:22:33:44:55:66) będzie miał postać: 64bitowy_prefiks_sieci:1222:33FF:FE44:5566
22 Routing pakietów
23 TCP/IP Stanowi połączenie dwóch protokołów Umożliwia efektywne przesyłanie pakietów między sieciami (IP) oraz zapewnia kontrolę i niezawodność przesyłanie pakietów między dwoma komputerami (TCP) Protokół ten działa również w sieciach lokalnych w których komputery posiadają adresy IP. Mechanizm ten można również wykorzystywać do komunikacji między aplikacjami uruchomionymi na pojedynczym komputerze z wykorzystaniem adresu loop back (localhost)
24 TCP/IP w modelu OSI - połączenie można ustanowić pomiędzy 2 dowolnymi hostami, - połączenie jest tworzone pomiędzy dwoma aplikacjami z których jedna pełni rolę serwera (nasłuchuje i przyjmuje połączenie) a drugi klienta (inicjującego połączenie) - serwer musi mieć publiczny adres IP lub musi znajdować się w tej samej sieci LAN co klient - serwer prowadzi nasłuch (czeka na zgłoszenia) na przypisanym mu porcie
25 Brak gniazd Wykorzystanie gniazd Gniazda usługi serwera Standardowo stosuje się gniazda (odpowiadające numerom telefonów) w celu realizacji pewnych usług. Gniazda są identyfikowane przez ich numer, aplikacja klienta może połączyć się z określonym gniazdem serwera 80 httpd, 21 ftp, powyżej numeru 1024 znajdują się gniazda z których mogą korzystać inne aplikacje Połączenie z gniazdem można uzyskać przez wpisanie adresu IP i nr gniazda w postaci xxx.xxx.xxx:gniazdo
26 Protokoły Http: - port 80 Ftp: - port 21 Ssh: - port 22 Smtp: - port 25 Pop3: - port 110
27 Bezpieczeństwo Pakiety danych mogą być przechwycone w trakcie ich transmisji, co może skutkować odczytaniem poufnych informacji Szyfrowanie polega na zakodowaniu danych po stronie klienta i rozkodowaniu ich po stronie odbiorcy. Do kodowania wykorzystuje się protokół TSL/SSL oparty o klucz publiczny i prywatny
28 Klucz prywatny i publiczny (RSA) Tworzenie klucza: 1. Wybieramy losowo dwie duże liczby pierwsze p i q (najlepiej w taki sposób, aby obie miały zbliżoną długość w bitach, ale jednocześnie były od siebie odległe wartościami - maksymalizuje to bezpieczeństwo klucza) 2. Obliczamy wartość n = pq 3. Obliczamy wartość funkcji Eulera dla n: φ(n)=(p-1)(q-1) 4. Wybieramy liczbę e (1 < e < φ(n)) względnie pierwszą z φ(n) 5. Znajdujemy liczbę d odwrotną do e mod φ(n);
29 TSL/SSL TLS (ang. Transport Layer Security) rozwinięcie protokołu SSL (ang. Secure Socket Layer), zaprojektowanego pierwotnie przez Netscape Communications Corporation. TLS zapewnia poufność i integralność transmisji danych, a także uwierzytelnienie serwera, a niekiedy również klienta. Serwer wyposażony jest w certyfikat (CA) pozwalający na jego jednoznacze zidentyfikowanie. Przy nawiązywaniu połączenia klient otrzymuje klucz publiczny do szyfrowania danych sesji.
30 Forwarding portów Adresy w sieci LAN zazwyczaj pochodzą z przestrzeni adresowej przypisanej sieciom prywatnym (komputery nie mają publicznych adresów IP. Możliwe jest jednak przekierowanie ruchu z pewnego portu na IP publicznym na pewien określony port komputera w sieci LAN. Dzięki temu można zadedykować do konkretnej usługi osobny komputer, bez konieczności zwiększania puli publicznych Publiczne IP Prywatne IP np
31 Wirtualne sieci prywatne VPN Udostępnienie na zewnątz wszystkich zasobów sieci lokalnej byłoby dużym zagrożeniem bezpieczeństwa Z drugiej stony udostępnienie tylko niektórych usług (przez forwardowanie portów) jest również luką bezpieczeństwa I nie umożliwia korzystanie z wszystkich zasobów sieci. Sieć wirtualna tworzy szyfrowany tunel przez który komputer znajdujacy się poza siecią LAN może mieć dostę do wszystkich zasobów tej sieci (otrzymuje adres IP w sieci lokalnej)
32 Architektura Klient-Serwer Architektura ta dotyczy warstwy aplikacji Wszystkie zasoby zgromadzone są na serwerze i są udostępniane przez niego komputerom klientom wyłącznie w takim zakresie w jakim ich potrzebują, Architektura ta umożliwia ograniczenie dostępu do pewnych zasobów, hermetyzację W architekturze tej można stosować wolne komputery klientów z małą pamięcią dyskową, ponieważ większość zadań wykonywana jest w obrębie serwera, zaś komputer klienta służy wyłącznie do wyświetlania wyniku operacji Komunikacja między serwerem a klientami może odbywać się z wykorzystaniem protokołu TCP/IP, lecz wymaga sprecyzowania interface u komunikacji
33 Algorytm komunikacji Serwer oczekuje na żądania klientów i obsługuje je w określonej kolejności, sam jednak nie inicjuje połączenia Należy ustalić (jeśli nie korzysta się ze standardowego protokołu (np. http lub ftp) w jaki sposób przekazywać żądania do servera Należy ustalić jakie zadania leżą w kompetencji servera a jakie klienta W celu aktualizacji swoich danych to aplikacja klienta musi zgłaszać odpowiednie żądanie
34 Interface komunikacji Żądanie przesyłane do serwera, wywołuje w aplikacji działającej na serwerze odpowiednią funkcję, której argumentami stają się dane przesłane przez klienta Należy zdefiniować wszystkie możliwe typy żądań oraz dane przesyłane przy każdym z tych żądań i odpowiedzi serwera i umieścić je w dwóch klasach interface u osobno dla klienta i dla serwera
35 Przykładowa klasa interface u Pomiędzy klientem i serwerem przesyłane są dane opisane strukturą: struct CSFRAME{ int ID; long DataSize void *Data }; Strona klienta Żądania: ID Opis 1 PrześlijAktualneDane 2 SprawdzDane dane NULL dane do sprawdzenia (np. Wykonany ruch) Strona serwera Odpowiedzi servera ID opis 1 AkualneDane 2 Błąd dane Aktualne dane (np. plansza) kod błędu
36 Interface - implementacja Po stronie serwera i klienta powinny znajdować się dwie klasy które realizują komunikację Powinny one posiadać metody nazwane tak jak żądania klienta (przesłanie żądania klienta wywołuje odpowiednią funkcję na serwerze) Strona klienta class CClientInterface{ public: CPlansza* PrzeslijAktualneDane(); int SprawdzDane(CPlansza* plansza) private: CSFRAME KomunikatOdebrany; CSFRAME KomunikatWysłany; }; Strona serwera class CServerInterface{ public: void OdbierzŻądanie(); CPlansza* PrzeslijAktualneDane(); int SprawdzDane(CPlansza* plansza private: CSFRAME KomunikatOdebrany; CSFRAME KomunikatWysłany; };
37 Interface implementacja cd. Strona klienta CPlansza* CClientInterface::PrzeslijAktualneDane() { KomunikatWyslany.ID=1; KomunikatWyslany.DataSize=0; KomunikatWyslany.Data=NULL; WyslijDoServera(KomunikatWyslany); OdbierzZSerwera(&KomunikatOdebrany); if(komunikatodebrany.id==1) return KomunikatOdebrany. Data; else return NULL; } int CClientInterface:: SprawdzDane(CPlansza* plansza) { KomunikatWyslany.ID=2; KomunikatWyslany.DataSize=sizeof(CPlansza); KomunikatWyslany.Data=plansza; WyslijDoServera(KomunikatWyslany); OdbierzZSerwera(&KomunikatOdebrany); return (int*) KomunikatOdebrany. Data; } Strona serwera CPlansza* CServerInterface:: OdbierzŻądanie() { CPlansza *plansza; int KodBladu; CzekajNaDaneOdKlienta(&KomunikatOdebrany); switch(komunikatodebrany.id){ case 1: plansza=przeslijaktualnedane(); KomunikatWyslany.ID=1; KomunikatWyslany.DataSize=sizeof(CPlansza); KomunikatWyslany.Data=plansza; case 2: KodBladu= SprawdzDane(KomunikatOdebrany.Data) KomunikatWyslany.ID=2; KomunikatWyslany.DataSize=sizeof(int); KomunikatWyslany.Data=&KodBladu; } WyslijDoKlienta(KomunikatWyslany); }
38 Inicjalizacja WinSock (klient/server) // Initialize Winsock. WSADATA wsadata; int iresult = WSAStartup( MAKEWORD(2,2), &wsadata ); if ( iresult!= NO_ERROR ) printf("error at WSAStartup()\n"); Ten kod musi zostać wywołany jednorazowo przy uruchomieniu aplikazcji wykorzystującej bibliotekę WinSock, dodatkowo należy dołączyć plik nagłowkowy #include "winsock2.h" i bibliotekę WS2_32.lib
39 Tworzenie nienazwanego gniazda (klient/server) // Create a socket. SOCKET m_socket; m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP ); if ( m_socket == INVALID_SOCKET ) { printf( "Error at socket(): %ld\n", WSAGetLastError() ); WSACleanup(); return; } Port stworzony przez klienta otrzymuje numer w chwili połączenia z serwerem. Numer portu na którym serwer nasłuchuje musi zostać przydzielony w następnym kroku
40 Połączenie z nazwanym portem (serwer) // Bind the socket. sockaddr_in service; service.sin_family = AF_INET; Inet_addr( IP ) przekształca ciąg znaków zwierających adres IP komputera do właściwej postaci (IN_ADDR) service.sin_addr.s_addr = inet_addr( " " ); Do przypisania adresu można service.sin_port = htons( ); if ( bind( m_socket, (SOCKADDR*) &service, sizeof(service) ) == SOCKET_ERROR ) { printf( "bind() failed.\n" ); closesocket(m_socket); return; } rwnież wykorzystać nazwę hosta (jeśli jest zarejestrowana w DNS: gethostbyname( p.pl ) htons konwertuje numer portu dany jako unsigned short na numer w formacie standardu TCP/IP (big-endian) Po wywołaniu funkcji bind na serwerze zostaje aktywowany port o wybranym numerze
41 Serwer oczekuje na żądanie klienta // Listen on the socket. if ( listen( m_socket, 1 ) == SOCKET_ERROR ) printf( "Error listening on socket.\n"); Serwer nasłuchuje na wybranym porcie (m_sock)., drugi argument funkcji listen określa długość kolejki zgłoszeń, dla aplikacji z wieloma klientami należy ją ustawić na wartość >1 listen pozostaje zawieszona tak długo jak nie pojawi się żądanie ze strony klienta
42 Połączenie klienta z serwerem (klient) sockaddr_in clientservice; clientservice.sin_family = AF_INET; clientservice.sin_addr.s_addr = inet_addr( " " ); clientservice.sin_port = htons( ); if ( connect( m_socket, (SOCKADDR*) &clientservice, sizeof(clientservice) ) == SOCKET_ERROR) { printf( "Failed to connect.\n" ); WSACleanup(); return; } Wywołanie connect powadzi do nawiązania połączenia z serwerem zlokalizowanym pod określonym adresem (clientservice) i słuchającym na wybranym porcie (27015). Serwer dla celu tego połączenia dedykuje odrębny port (jego adres przypisany zostaje do m_sock). Port nasłuchu nie służy do komunikacji z klientami a jedynie do nawiązania połączenia!!!
43 Akceptacja połączenia przychodzącego (serwer) // Accept connections. SOCKET AcceptSocket; printf( "Waiting for a client to connect...\n" ); while (1) { AcceptSocket = SOCKET_ERROR; while ( AcceptSocket == SOCKET_ERROR ) { AcceptSocket = accept( m_socket, NULL, NULL ); } printf( "Client Connected.\n"); break; } Po tym jak funkcja listen została przerwana przez żądanie ze strony klienta, accept aprobuje połączenie i dedykuje dla niego nowy port (AcceptSocket)
44 Wysyłanie i odbiór danych (klient/server) Odbiór danych: #define BUFF_LEN 32 int bytesrecv = SOCKET_ERROR; char recvbuf[buff_len] = ""; //bufor danych //Odbiera dane i zapisuje je do bufora. //Zwraca ilość odebranych bajtów (bytesrecv) bytesrecv = recv( m_socket, recvbuf, BUFF_LEN, 0 ); Wysyłanie danych: int bytessent; char sendbuf[] = ten tekst zostanie wyslany bytessent = send( m_socket, sendbuf, strlen(sendbuf), 0 ); Dla serwera należy zamiast m_sock wykorzystać port stworzony do komunikacji z klientem AcceptSocket!!!!
45 Komunikacja raz jeszcze WSAStartup(...) socket(...) WSAStartup(...) socket(...) bind(...) listen(...) connect(...) accept(...) send(...) recv(...) recv(...) send(...) Czarne strzałki wskazują miejsca, w których powinny znaleźć się poszczególne funkcje wykorzystywane do komunikacji Czerwone strzałki pokazują przepływ danych między klientem a serwerem
46 Obsługa wielu klientów w architekturze klient-serwer Opis problemu: Dostarczenie wielu użytkownikom tych samych danych (synchronizacja) Równoczesna szybka obsługa wielu zgłoszeń Możliwe rozwiązania: Multicasting lub broadcasting - serwer wsyła dane na adres sieciowy, który jest traktowany jako adres wszystkich komputerów Klienci co pewien określony czas żądają od serwera aktualizacji danych (serwer obsługuje każdego z klientów osobno)
47 Zwiekszenie efektywności obsługi klientów Dotychczasowy schemat (serwer) Serwer tworzy nazwane gniazdo 'GniazdoServera' za pomocą funkcji bind Serwer tworzy kolejkę zgłoszeń za pomocą funkcji listen Serwer oczekuje (nasłuchuje) na porcie 'GanizdoServera' na zgłoszenie się klienta i po jego zgłoszeniu tworzy za pomocą funkcji accept noew gniazdo (m_socket) dedykowane do komunikacji z tymże klientem Po przeprowadzeniu pojedynczej transakcji gniazdo klienta jest zamykane a serwer wraca do pkt. nr 3
48 Zwiekszenie efektywności obsługi klientów Dotychczasowy schemat (klient) Klient tworzy gniazdo nienzawane (socket) Klient łączy się z serverem (connect) Klient wysyła / odbiera dane z serwera Klient zamyka gniazdo. Ten schemat jest realizowany za każdym razem kiedy klient chce wysłać/odebrać dane z serwera
49 Zwiekszenie efektywności obsługi klientów Nowy schemat (serwer) Serwer tworzy nazwane gniazdo 'GniazdoServera' za pomocą funkcji bind Serwer tworzy kolejkę zgłoszeń za pomocą funkcji listen Serwer tworzy tablicę deskryptorów gniazd i dodaje do niego 'GniazdoServera' serwer przegląda tablicę deskryptorów gniazd i wybiera z niej gniazdo na którym pojawiła się aktywność za pomocą funkcji select Jeśli aktywność pojawiła się na gnieździe 'GniazdoSerwera' oznacza to że zgłosił się nowy klient. Wtedy serwer za pomocą funkcji accept tworzy nowe gniazdo dedykowane do komunikacji z tym klientem i umieszcza je w tablicy deskryptorów serwer odbiera/przesyła dane przez gniazdo klienta i wraca do pkt 4.
50 Zwiekszenie efektywności obsługi klientów Nowy schemat (klient) Klient tworzy gniazdo nienzawane (socket) Klient łączy się z serverem (connect) Klient wysyła / odbiera dane z serwera Aby ponownie wysłać dane klient realizuje pkt 3. Punkty 1-2 realizowane sa jednorazowo, a stworzone gniazdo może być wykorzystywane aż do czasu zakończenia połączenia przez closesocket(.)
51 Zwiekszenie efektywności obsługi klientów kod serwera //W kodze pominęto etap tworzenia gniazda nazwanego fd_set TablicaGniazd, TablicaGniazdTest; sockaddr_in sinremote; int naddrsize = sizeof(sinremote); listen(gniazdoserwera,5); //tworzy kolejkę FD_ZERO(&TablicaGniazd); //czysci tablice gniazd FD_SET(GniazdoSerwera,&TablicaGniazd); //dodaje gniazdo serwera do tablicy gniazd while(1){ //nieskonczona pęta serwera TablicaGniazdTest=TablicaGniazd; if (select(0, &TablicaGniazdTest, (fd_set*)null, (fd_set*)null, 0) > 0) { //// Cos sie stalo na jednym z gniazd.
52 Zwiekszenie efektywności obsługi klientów kod serwera if (FD_ISSET(GniazdoSerwera, &TablicaGniazdTest)) { //nowe połączenie SOCKET sd = accept(gniazdoserwera, (sockaddr*)&sinremote, &naddrsize); if (sd!= INVALID_SOCKET) { FD_SET(sd,&TablicaGniazd); //dodanie gniazda do tablicy // Wyswietlenie adnych klienta cout << "Accepted connection from " << inet_ntoa(sinremote.sin_addr) << ":" << ntohs(sinremote.sin_port) << ", socket " << sd << "." << endl; else { cout<< BLAD ; return; }}
53 Zwiekszenie efektywności obsługi klientów kod serwera else{ //poszukiwanie gniazda na którym wystąpił ruch for(int i=0;i<tablicagniazdtest.fd_count;i++) if(fd_isset(tablicagniazdtest.fd_array[i],&tablicagniazdtest) { SOCKET m_socket=tablicagniazdtest.fd_array[i]; int odczytano=0; ioctlsocket(m_socket,fionread,&odczytano); if(odczytano==0) { closesocket(m_socket); FD_CLR(m_socket,TablicaGniazd); } }
54 Zwiekszenie efektywności obsługi klientów kod serwera if(odczytano==0) //połączenie zamkniete { closesocket(m_socket); FD_CLR(m_socket,TablicaGniazd); } else { recv(m_socket,...) send(m_socket,...) } }//powrot do początku petli while(1)
55 class Cklient { char IP[16]; int port; sramka S; sramka R; SOCKET m_socket; public: Cklient(); Cklient(char *_IP, int _port); void SetIP(char *_IP, int _port); void Connect(); void Send(sRamka *_S); void Receive(sRamka *_R); }; Przykładowa klasa klienta
56 Wykorzystanie klasy { Cklient klient( ,2018); klient.connect(); Sramka R; R.ID=1; Klient.Send(&R); Klient.Receive(&R); }
Aplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project
Aplikacja Sieciowa Jedną z fundamentalnych właściwości wielu aplikacji jest możliwość operowania pomiędzy jednostkami (np. PC), które włączone są do sieci. W Windows operacja ta jest możliwa przy wykorzystaniu
Bardziej szczegółowoProtokoły sieciowe model ISO-OSI Opracował: Andrzej Nowak
Protokoły sieciowe model ISO-OSI Opracował: Andrzej Nowak OSI (ang. Open System Interconnection) lub Model OSI to standard zdefiniowany przez ISO oraz ITU-T, opisujący strukturę komunikacji sieciowej.
Bardziej szczegółowoProtokoły sieciowe - TCP/IP
Protokoły sieciowe Protokoły sieciowe - TCP/IP TCP/IP TCP/IP (Transmission Control Protocol / Internet Protocol) działa na sprzęcie rożnych producentów może współpracować z rożnymi protokołami warstwy
Bardziej szczegółowoMODEL WARSTWOWY PROTOKOŁY TCP/IP
MODEL WARSTWOWY PROTOKOŁY TCP/IP TCP/IP (ang. Transmission Control Protocol/Internet Protocol) protokół kontroli transmisji. Pakiet najbardziej rozpowszechnionych protokołów komunikacyjnych współczesnych
Bardziej szczegółowoKlient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Bardziej szczegółowoPodstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN
Podstawy Transmisji Danych Wykład IV Protokół IPV4 Sieci WAN to połączenia pomiędzy sieciami LAN 1 IPv4/IPv6 TCP (Transmission Control Protocol) IP (Internet Protocol) ICMP (Internet Control Message Protocol)
Bardziej szczegółowoSieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet
Sieci Komputerowe Wykład 1: TCP/IP i adresowanie w sieci Internet prof. nzw dr hab. inż. Adam Kisiel kisiel@if.pw.edu.pl Pokój 114 lub 117d 1 Kilka ważnych dat 1966: Projekt ARPANET finansowany przez DOD
Bardziej szczegółowoSieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski
Sieci komputerowe Wykład 5: Warstwa transportowa: TCP i UDP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 5 1 / 22 Warstwa transportowa Cechy charakterystyczne:
Bardziej szczegółowoAdresy w sieciach komputerowych
Adresy w sieciach komputerowych 1. Siedmio warstwowy model ISO-OSI (ang. Open System Interconnection Reference Model) 7. Warstwa aplikacji 6. Warstwa prezentacji 5. Warstwa sesji 4. Warstwa transportowa
Bardziej szczegółowoStos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)
Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol) W latach 1973-78 Agencja DARPA i Stanford University opracowały dwa wzajemnie uzupełniające się protokoły: połączeniowy TCP
Bardziej szczegółowoWarstwy i funkcje modelu ISO/OSI
Warstwy i funkcje modelu ISO/OSI Organizacja ISO opracowała Model Referencyjny Połączonych Systemów Otwartych (model OSI RM - Open System Interconection Reference Model) w celu ułatwienia realizacji otwartych
Bardziej szczegółowoDR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.
DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r. PLAN Reprezentacja liczb w systemach cyfrowych Protokół IPv4 Adresacja w sieciach
Bardziej szczegółowoProtokoły internetowe
Protokoły internetowe O czym powiem? Wstęp Model OSI i TCP/IP Architektura modelu OSI i jego warstwy Architektura modelu TCP/IP i jego warstwy Protokoły warstwy transportowej Protokoły warstwy aplikacji
Bardziej szczegółowoPrzesyłania danych przez protokół TCP/IP
Przesyłania danych przez protokół TCP/IP PAKIETY Protokół TCP/IP transmituje dane przez sieć, dzieląc je na mniejsze porcje, zwane pakietami. Pakiety są często określane różnymi terminami, w zależności
Bardziej szczegółowoProgramowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania
Bardziej szczegółowoSieci Komputerowe Modele warstwowe sieci
Sieci Komputerowe Modele warstwowe sieci mgr inż. Rafał Watza Katedra Telekomunikacji AGH Al. Mickiewicza 30, 30-059 Kraków, Polska tel. +48 12 6174034, fax +48 12 6342372 e-mail: watza@kt.agh.edu.pl Wprowadzenie
Bardziej szczegółowoSieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP
Sieci komputerowe Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP Zadania warstwy transportu Zapewnienie niezawodności Dostarczanie danych do odpowiedniej aplikacji w warstwie aplikacji (multipleksacja)
Bardziej szczegółowoPolitechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej
Politechnika Łódzka Instytut Systemów Inżynierii Elektrycznej Laboratorium komputerowych systemów pomiarowych Ćwiczenie 7 Wykorzystanie protokołu TCP do komunikacji w komputerowym systemie pomiarowym 1.
Bardziej szczegółowoModel sieci OSI, protokoły sieciowe, adresy IP
Model sieci OSI, protokoły sieciowe, adresy IP Podstawę działania internetu stanowi zestaw protokołów komunikacyjnych TCP/IP. Wiele z używanych obecnie protokołów zostało opartych na czterowarstwowym modelu
Bardziej szczegółowoZestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak
Protokół TCP/IP Protokół TCP/IP (Transmission Control Protokol/Internet Protokol) to zestaw trzech protokołów: IP (Internet Protokol), TCP (Transmission Control Protokol), UDP (Universal Datagram Protokol).
Bardziej szczegółowoReferencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37
Referencyjny model OSI 3 listopada 2014 Mirosław Juszczak 37 Referencyjny model OSI Międzynarodowa Organizacja Normalizacyjna ISO (International Organization for Standarization) opracowała model referencyjny
Bardziej szczegółowoModel OSI. mgr inż. Krzysztof Szałajko
Model OSI mgr inż. Krzysztof Szałajko Protokół 2 / 26 Protokół Def.: Zestaw reguł umożliwiający porozumienie 3 / 26 Komunikacja w sieci 101010010101101010101 4 / 26 Model OSI Open Systems Interconnection
Bardziej szczegółowoPlan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.
Plan wykładu 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6. Modem analogowy Sieć komputerowa Siecią komputerową nazywa się grupę komputerów
Bardziej szczegółowoAplikacja Sieciowa wątki po stronie klienta
Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się
Bardziej szczegółowoDr Michał Tanaś(http://www.amu.edu.pl/~mtanas)
Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Protokół komunikacyjny zapewniający niezawodność przesyłania danych w sieci IP Gwarantuje: Przyporządkowanie danych do konkretnego połączenia Dotarcie danych
Bardziej szczegółowoBazy Danych i Usługi Sieciowe
Bazy Danych i Usługi Sieciowe Sieci komputerowe Paweł Daniluk Wydział Fizyki Jesień 2012 P. Daniluk (Wydział Fizyki) BDiUS w. VI Jesień 2012 1 / 24 Historia 1 Komputery mainframe P. Daniluk (Wydział Fizyki)
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 13 Topologie sieci i urządzenia
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 13 Topologie sieci i urządzenia Topologie sieci magistrali pierścienia gwiazdy siatki Zalety: małe użycie kabla Magistrala brak dodatkowych urządzeń
Bardziej szczegółowoZiMSK. Konsola, TELNET, SSH 1
ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl Konsola, TELNET, SSH 1 Wykład
Bardziej szczegółowoZiMSK NAT, PAT, ACL 1
ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl NAT, PAT, ACL 1 Wykład Translacja
Bardziej szczegółowoAdresowanie grupowe. Bartłomiej Świercz. Katedra Mikroelektroniki i Technik Informatycznych. Łódź, 25 kwietnia 2006
Adresowanie grupowe Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 25 kwietnia 2006 Wstęp Na potrzeby sieci komputerowych zdefiniowano rożne rodzaje adresowania: adresowanie
Bardziej szczegółowoRywalizacja w sieci cd. Protokoły komunikacyjne. Model ISO. Protokoły komunikacyjne (cd.) Struktura komunikatu. Przesyłanie między warstwami
Struktury sieciowe Struktury sieciowe Podstawy Topologia Typy sieci Komunikacja Protokoły komunikacyjne Podstawy Topologia Typy sieci Komunikacja Protokoły komunikacyjne 15.1 15.2 System rozproszony Motywacja
Bardziej szczegółowoSystemy Operacyjne i Sieci Komputerowe Adres MAC 00-0A-E6-3E-FD-E1
Adres MAC (ang. MAC address) jest 48-bitowy i zapisywany jest heksadecymalnie (szesnastkowo). Pierwsze 24 bity oznaczają producenta karty sieciowej, pozostałe 24 bity są unikalnym identyfikatorem danego
Bardziej szczegółowoSieci komputerowe. Zajęcia 2 Warstwa łącza, sprzęt i topologie sieci Ethernet
Sieci komputerowe Zajęcia 2 Warstwa łącza, sprzęt i topologie sieci Ethernet Zadania warstwy łącza danych Organizacja bitów danych w tzw. ramki Adresacja fizyczna urządzeń Wykrywanie błędów Multipleksacja
Bardziej szczegółowoSieci komputerowe Warstwa transportowa
Sieci komputerowe Warstwa transportowa 2012-05-24 Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 Wprowadzenie umożliwia jednoczesną komunikację poprzez sieć wielu aplikacjom uruchomionym
Bardziej szczegółowoWarstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa
Warstwa sieciowa Model OSI Model TCP/IP Aplikacji Prezentacji Aplikacji podjęcie decyzji o trasowaniu (rutingu) na podstawie znanej, lokalnej topologii sieci ; - podział danych na pakiety Sesji Transportowa
Bardziej szczegółowoTechnologie informacyjne - wykład 8 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 8 - Prowadzący: Dmochowski
Bardziej szczegółowoProgramowanie Sieciowe 1
Programowanie Sieciowe 1 dr inż. Tomasz Jaworski tjaworski@iis.p.lodz.pl http://tjaworski.iis.p.lodz.pl/ Klient UDP Kolejność wykonywania funkcji gniazdowych klienta UDP Protokół UDP jest bezpołączeniowy:
Bardziej szczegółowoLaboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark
Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark Topologia Cele Część 1: Zapisanie informacji dotyczących konfiguracji IP komputerów Część 2: Użycie programu Wireshark do przechwycenia
Bardziej szczegółowoWykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych
Wykład 2: Budowanie sieci lokalnych 1 Budowanie sieci lokalnych Technologie istotne z punktu widzenia konfiguracji i testowania poprawnego działania sieci lokalnej: Protokół ICMP i narzędzia go wykorzystujące
Bardziej szczegółowoMASKI SIECIOWE W IPv4
MASKI SIECIOWE W IPv4 Maska podsieci wykorzystuje ten sam format i sposób reprezentacji jak adresy IP. Różnica polega na tym, że maska podsieci posiada bity ustawione na 1 dla części określającej adres
Bardziej szczegółowoTCP/IP. Warstwa łącza danych. mgr inż. Krzysztof Szałajko
TCP/IP Warstwa łącza danych mgr inż. Krzysztof Szałajko Modele odniesienia 7 Aplikacji 6 Prezentacji 5 Sesji 4 Transportowa 3 Sieciowa 2 Łącza danych 1 Fizyczna Aplikacji Transportowa Internetowa Dostępu
Bardziej szczegółowoSSL (Secure Socket Layer)
SSL --- Secure Socket Layer --- protokół bezpiecznej komunikacji między klientem a serwerem, stworzony przez Netscape. SSL w założeniu jest podkładką pod istniejące protokoły, takie jak HTTP, FTP, SMTP,
Bardziej szczegółowoArchitektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła
Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła Wydział Inżynierii Mechanicznej i Informatyki Instytut Informatyki Teoretycznej i Stosowanej
Bardziej szczegółowoPOŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP
POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP Sterowniki Astraada One wymieniają między sobą dane po UDP Wstęp Celem informatora jest konfiguracja i przygotowanie sterowników
Bardziej szczegółowoUnicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców
METODY WYMIANY INFORMACJI W SIECIACH PAKIETOWYCH Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców TRANSMISJA
Bardziej szczegółowoSieci komputerowe. Zadania warstwy łącza danych. Ramka Ethernet. Adresacja Ethernet
Sieci komputerowe Zadania warstwy łącza danych Wykład 3 Warstwa łącza, osprzęt i topologie sieci Ethernet Organizacja bitów danych w tzw. ramki Adresacja fizyczna urządzeń Wykrywanie błędów Multipleksacja
Bardziej szczegółowoPodstawy sieci komputerowych
mariusz@math.uwb.edu.pl http://math.uwb.edu.pl/~mariusz Uniwersytet w Białymstoku 2018/2019 Skąd się wziął Internet? Komutacja pakietów (packet switching) Transmisja danych za pomocą zaadresowanych pakietów,
Bardziej szczegółowoDr Michał Tanaś(http://www.amu.edu.pl/~mtanas)
Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Jest to zbiór komputerów połączonych między sobą łączami telekomunikacyjnymi, w taki sposób że Możliwa jest wymiana informacji (danych) pomiędzy komputerami
Bardziej szczegółowoZarządzanie infrastrukturą sieciową Modele funkcjonowania sieci
W miarę rozwoju sieci komputerowych pojawiały się różne rozwiązania organizujące elementy w sieć komputerową. W celu zapewnienia kompatybilności rozwiązań różnych producentów oraz opartych na różnych platformach
Bardziej szczegółowoAkademickie Centrum Informatyki PS. Wydział Informatyki PS
Akademickie Centrum Informatyki PS Wydział Informatyki PS Akademickie Centrum Informatyki Instytut Informatyki P.S. Topologie sieciowe: Sieci pierścieniowe Sieci o topologii szyny Krzysztof Bogusławski
Bardziej szczegółowoAdresacja IP w sieciach komputerowych. Adresacja IP w sieciach komputerowych
Adresacja IP w sieciach komputerowych 1. Model odniesienia OSI. Przyczyny powstania: - Gwałtowny rozwój i sieci komputerowych na początku lat 70. XX wieku, - Powstanie wielu niekompatybilnych ze sobą protokołów
Bardziej szczegółowoSieci komputerowe - Wstęp do intersieci, protokół IPv4
Piotr Kowalski KAiTI Internet a internet - Wstęp do intersieci, protokół IPv Plan wykładu Informacje ogólne 1. Ogólne informacje na temat sieci Internet i protokołu IP (ang. Internet Protocol) w wersji.
Bardziej szczegółowoSieć komputerowa Adresy sprzętowe Adresy logiczne System adresacji IP (wersja IPv4)
Sieć komputerowa Siecią komputerową nazywamy system (tele)informatyczny łączący dwa lub więcej komputerów w celu wymiany danych między nimi. Sieć może być zbudowana z wykorzystaniem urządzeń takich jak
Bardziej szczegółowoModel warstwowy Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa Warstwa aplikacj. Protokoły sieciowe
Elektroniczne Przetwarzanie Informacji Konsultacje: czw. 14.00-15.30, pokój 3.211 Plan prezentacji Warstwowy model komunikacji sieciowej Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa
Bardziej szczegółowoEnkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T
Skąd dostać adres? Metody uzyskiwania adresów IP Część sieciowa Jeśli nie jesteśmy dołączeni do Internetu wyssany z palca. W przeciwnym przypadku numer sieci dostajemy od NIC organizacji międzynarodowej
Bardziej szczegółowoProgramowanie sieciowe
Programowanie sieciowe dr Tomasz Tyrakowski Dyż ury: wtorki 12:00 13:00 czwartki 14:00 15:00 pokój B4-5 e-mail: ttomek@amu.edu.pl materiały: http://www.amu.edu.pl/~ttomek 1 Wymagania podstawowa znajomość
Bardziej szczegółowoSieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski
Sieci komputerowe Wykład 7: Transport: protokół TCP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 7 1 / 23 W poprzednim odcinku Niezawodny transport Algorytmy
Bardziej szczegółowoCo w sieci piszczy? Programowanie aplikacji sieciowych w C#
Co w sieci piszczy? Programowanie aplikacji sieciowych w C# Prelegenci: Michał Cywiński i Kamil Frankowicz kamil@vgeek.pl @fumfel www.vgeek.pl mcywinski@hotmail.com @mcywinskipl www.michal-cywinski.pl
Bardziej szczegółowoPytanie 1 Z jakich protokołów korzysta usługa WWW? (Wybierz prawidłowe odpowiedzi)
Pytanie 1 Z jakich protokołów korzysta usługa WWW? (Wybierz prawidłowe odpowiedzi) Pytanie 2 a) HTTPs, b) HTTP, c) POP3, d) SMTP. Co oznacza skrót WWW? a) Wielka Wyszukiwarka Wiadomości, b) WAN Word Works,
Bardziej szczegółowoWarstwa łącza danych. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa. Sieciowa.
Warstwa łącza danych Model OSI Model TCP/IP Aplikacji Prezentacji Aplikacji Sesji - nadzór nad jakością i niezawodnością fizycznego przesyłania informacji; - podział danych na ramki Transportowa Sieciowa
Bardziej szczegółowoSystemy operacyjne i sieci komputerowe Szymon Wilk Adresowanie w sieciach Klasy adresów IP a) klasa A
i sieci komputerowe Szymon Wilk Adresowanie w sieciach 1 1. Klasy adresów IP a) klasa A sieć host 0 mało sieci (1 oktet), dużo hostów (3 oktety) pierwszy bit równy 0 zakres adresów dla komputerów 1.0.0.0-127.255.255.255
Bardziej szczegółowoARP Address Resolution Protocol (RFC 826)
1 ARP Address Resolution Protocol (RFC 826) aby wysyłać dane tak po sieci lokalnej, jak i pomiędzy różnymi sieciami lokalnymi konieczny jest komplet czterech adresów: adres IP nadawcy i odbiorcy oraz adres
Bardziej szczegółowoSkąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta
Sieci komputerowe 1 Sieci komputerowe 2 Skąd dostać adres? Metody uzyskiwania adresów IP Część sieciowa Jeśli nie jesteśmy dołączeni do Internetu wyssany z palca. W przeciwnym przypadku numer sieci dostajemy
Bardziej szczegółowoSieci komputerowe - Protokoły warstwy transportowej
Piotr Kowalski KAiTI - Protokoły warstwy transportowej Plan i problematyka wykładu 1. Funkcje warstwy transportowej i wspólne cechy typowych protokołów tej warstwy 2. Protokół UDP Ogólna charakterystyka,
Bardziej szczegółowoSieci komputerowe. Wstęp
Sieci komputerowe Wstęp Sieć komputerowa to grupa komputerów lub innych urządzeń połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: korzystania ze wspólnych urządzeń
Bardziej szczegółowoMODEL OSI A INTERNET
MODEL OSI A INTERNET W Internecie przyjęto bardziej uproszczony model sieci. W modelu tym nacisk kładzie się na warstwy sieciową i transportową. Pozostałe warstwy łączone są w dwie warstwy - warstwę dostępu
Bardziej szczegółowoProgramowanie Sieciowe 1
Programowanie Sieciowe 1 dr inż. Tomasz Jaworski tjaworski@iis.p.lodz.pl http://tjaworski.iis.p.lodz.pl/ Cel przedmiotu Zapoznanie z mechanizmem przesyłania danych przy pomocy sieci komputerowych nawiązywaniem
Bardziej szczegółowoPlan wykładu. Wyznaczanie tras. Podsieci liczba urządzeń w klasie C. Funkcje warstwy sieciowej
Wyznaczanie tras (routing) 1 Wyznaczanie tras (routing) 2 Wyznaczanie tras VLSM Algorytmy rutingu Tablica rutingu CIDR Ruting statyczny Plan wykładu Wyznaczanie tras (routing) 3 Funkcje warstwy sieciowej
Bardziej szczegółowoStruktura adresu IP v4
Adresacja IP v4 E13 Struktura adresu IP v4 Adres 32 bitowy Notacja dziesiętna - każdy bajt (oktet) z osobna zostaje przekształcony do postaci dziesiętnej, liczby dziesiętne oddzielone są kropką. Zakres
Bardziej szczegółowoSystem operacyjny UNIX Internet. mgr Michał Popławski, WFAiIS
System operacyjny UNIX Internet Protokół TCP/IP Został stworzony w latach 70-tych XX wieku w DARPA w celu bezpiecznego przesyłania danych. Podstawowym jego założeniem jest rozdzielenie komunikacji sieciowej
Bardziej szczegółowoZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013
ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013 Paweł Kowalik Zespół Szkół im. ks. S. Staszica w Tarnobrzegu KOMUNIKACJA SIECIOWA MIĘDZY URZĄDZENIAMI Z WYKORZYSTANIEM PROTKOŁU
Bardziej szczegółowoProgramowanie sieciowe
Programowanie sieciowe Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2014/2015 Michał Cieśla pok. D-2-47, email: michal.ciesla@uj.edu.pl konsultacje: środy 10-12 http://users.uj.edu.pl/~ciesla/
Bardziej szczegółowoProblemy z bezpieczeństwem w sieci lokalnej
Problemy z bezpieczeństwem w sieci lokalnej możliwości podsłuchiwania/przechwytywania ruchu sieciowego pakiet dsniff demonstracja kilku narzędzi z pakietu dsniff metody przeciwdziałania Podsłuchiwanie
Bardziej szczegółowoWYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU BIAŁYSTOK, ul. Ciepła 40 filia w EŁKU, ul. Grunwaldzka
14 Protokół IP WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU BIAŁYSTOK, ul. Ciepła 40 Podstawowy, otwarty protokół w LAN / WAN (i w internecie) Lata 70 XX w. DARPA Defence Advanced Research Project Agency 1971
Bardziej szczegółowoWinsock. Sieci Komputerowe II Wyk ład 3
Winsock Sieci Komputerowe II Wyk ład 3 Plan Przygotowanie środowiska Inicjacja Winsock Aplikacja klienta: tworzenie socketu łączenie z socketem serwera wysyłanie i odbieranie danych rozłączanie klienta
Bardziej szczegółowoAkademickie Centrum Informatyki PS. Wydział Informatyki PS
Akademickie Centrum Informatyki PS Wydział Informatyki PS Akademickie Centrum Informatyki Wydział Informatyki P.S. Warstwy transmisyjne Protokoły sieciowe Krzysztof Bogusławski tel. 449 41 82 kbogu@man.szczecin.pl
Bardziej szczegółowoWykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe
N, Wykład 4: Protokoły TCP/UDP i usługi sieciowe 1 Adres aplikacji: numer portu Protokoły w. łącza danych (np. Ethernet) oraz w. sieciowej (IP) pozwalają tylko na zaadresowanie komputera (interfejsu sieciowego),
Bardziej szczegółowoKomunikacja w sieciach komputerowych
Komunikacja w sieciach komputerowych Dariusz CHAŁADYNIAK 2 Plan prezentacji Wstęp do adresowania IP Adresowanie klasowe Adresowanie bezklasowe - maski podsieci Podział na podsieci Translacja NAT i PAT
Bardziej szczegółowoDlaczego? Mało adresów IPv4. Wprowadzenie ulepszeń względem IPv4 NAT CIDR
IPv6 Dlaczego? Mało adresów IPv4 NAT CIDR Wprowadzenie ulepszeń względem IPv4 Większa pula adresów Lepszy routing Autokonfiguracja Bezpieczeństwo Lepsza organizacja nagłówków Przywrócenie end-to-end connectivity
Bardziej szczegółowoProtokoły zdalnego logowania Telnet i SSH
Protokoły zdalnego logowania Telnet i SSH Krzysztof Maćkowiak Wprowadzenie Wykorzystując Internet mamy możliwość uzyskania dostępu do komputera w odległej sieci z wykorzystaniem swojego komputera, który
Bardziej szczegółowoSieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i sieciowej
ieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i sieciowej 1969 ARPANET sieć eksperymentalna oparta na wymianie pakietów danych: - stabilna, - niezawodna,
Bardziej szczegółowoSieci komputerowe - administracja
Sieci komputerowe - administracja warstwa sieciowa Andrzej Stroiński andrzej.stroinski@cs.put.edu.pl http://www.cs.put.poznan.pl/astroinski/ warstwa sieciowa 2 zapewnia adresowanie w sieci ustala trasę
Bardziej szczegółowoWykład Nr 4. 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia
Sieci komputerowe Wykład Nr 4 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia Sieci bezprzewodowe Sieci z bezprzewodowymi punktami dostępu bazują na falach radiowych. Punkt dostępu musi mieć
Bardziej szczegółowoPlan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci
Sieci komputerowe 1 Sieci komputerowe 2 Plan wykładu Warstwa sieci Miejsce w modelu OSI/ISO unkcje warstwy sieciowej Adresacja w warstwie sieciowej Protokół IP Protokół ARP Protokoły RARP, BOOTP, DHCP
Bardziej szczegółowoProgramy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.
Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Schemat Internetu R R R R R R R 2 Model Internetu 3 Protokoły komunikacyjne stosowane w sieci Internet Protokoły warstwy
Bardziej szczegółowoZadania z sieci Rozwiązanie
Zadania z sieci Rozwiązanie Zadanie 1. Komputery połączone są w sieci, z wykorzystaniem routera zgodnie ze schematem przedstawionym poniżej a) Jak się nazywa ten typ połączenia komputerów? (topologia sieciowa)
Bardziej szczegółowoGniazda surowe. Bartłomiej Świercz. Łódź,9maja2006. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda surowe
Gniazda surowe Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź,9maja2006 Wstęp Gniazda surowe posiadają pewne właściwości, których brakuje gniazdom TCP i UDP: Gniazda surowe
Bardziej szczegółowoDR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ
DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ PROTOKOŁY TCP I UDP WSTĘP DO SIECI INTERNET Kraków, dn. 12 grudnia 2016 r. PLAN TCP: cechy protokołu schemat nagłówka znane numery portów UDP: cechy protokołu
Bardziej szczegółowoKtórą normę stosuje się dla okablowania strukturalnego w sieciach komputerowych?
Zadanie 1. Rysunek przedstawia topologię A. magistrali. B. pierścienia. C. pełnej siatki. D. rozszerzonej gwiazdy. Zadanie 2. W architekturze sieci lokalnych typu klient serwer A. żaden z komputerów nie
Bardziej szczegółowoPlan i problematyka wykładu. Sieci komputerowe IPv6. Rozwój sieci Internet. Dlaczego IPv6? Przykład zatykania dziur w funkcjonalności IPv4 - NAT
IPv6 dr inż. Piotr Kowalski Katedra Automatyki i Technik Informacyjnych Plan i problematyka wykładu 1. Uzasadnienie dla rozwoju protokołu IPv6 i próby ratowania idei IPv6 2. Główne aspekty funkcjonowania
Bardziej szczegółowoArchitektura typu klient serwer: uproszczony klient POP3
Architektura typu klient serwer: uproszczony klient POP3 Wydział Inżynierii Mechanicznej i Informatyki Instytut Informatyki Teoretycznej i Stosowanej dr inż. Łukasz Szustak Składniki systemu poczty e-mail
Bardziej szczegółowoStatystyka protokołów i połączeń sieciowych.
Statystyka protokołów i połączeń sieciowych. Aplikacja netstat. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Statystyka połączeń sieciowych.
Bardziej szczegółowoNa podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP
FILTROWANIE IP mechanizm decydujący, które typy datagramów IP mają być odebrane, które odrzucone. Odrzucenie oznacza usunięcie, zignorowanie datagramów, tak jakby nie zostały w ogóle odebrane. funkcja
Bardziej szczegółowoSieci komputerowe. Dr inż. Dariusz Skibicki
Sieci komputerowe V Dr inż. Dariusz Skibicki 1. Co to jest sieć komputerowa Sieć komputerowa (angielskie computer network), układ komputerów i urządzeń końcowych (np. drukarka) połączonych między sobą
Bardziej szczegółowoSieci komputerowe. Wykład 2: Sieci LAN w technologii Ethernet. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski
Sieci komputerowe Wykład 2: Sieci LAN w technologii Ethernet Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 2 1 / 21 Sieci LAN LAN: Local Area Network sieć
Bardziej szczegółowoZadanie 2: transakcyjny protokół SKJ (2015)
Zadanie 2: transakcyjny protokół SKJ (2015) 1 Wstęp Zadanie polega na zaprojektowaniu niezawodnego protokołu transakcyjnego bazującego na protokole UDP. Protokół ten ma być realizowany przez klasy implementujące
Bardziej szczegółowoOprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6
Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6 Celem ćwiczenia jest zdobycie umiejętności programowania komunikacji unicastowej za pomocą protokołu IPv6
Bardziej szczegółowoSieci komputerowe. Informatyka Poziom rozszerzony
Sieci komputerowe Informatyka Poziom rozszerzony Sieć komputerowa zbiór komputerów i innych urządzeo połączonych ze sobą medium transmisyjnym (kabel (skrętka, kabel koncentryczny, światłowód), fale radiowe
Bardziej szczegółowoKurs Ethernet przemysłowy konfiguracja i diagnostyka. Spis treści. Dzień 1
I Wprowadzenie (wersja 1307) Kurs Ethernet przemysłowy konfiguracja i diagnostyka Spis treści Dzień 1 I-3 Dlaczego Ethernet w systemach sterowania? I-4 Wymagania I-5 Standardy komunikacyjne I-6 Nowe zadania
Bardziej szczegółowoSieci komputerowe - warstwa fizyczna
Sieci komputerowe - warstwa fizyczna mgr inż. Rafał Watza Katedra Telekomunikacji AGH Al. Mickiewicza 30, 30-059 Kraków, Polska tel. +48 12 6174034, fax +48 12 6342372 e-mail: watza@kt.agh.edu.pl Wprowadzenie
Bardziej szczegółowo