Gniazda UDP. Bartłomiej Świercz. Łódź, 3 kwietnia Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda UDP

Podobne dokumenty
Gniazda surowe. Bartłomiej Świercz. Łódź,9maja2006. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda surowe

Iteracyjny serwer TCP i aplikacja UDP

Gniazda BSD. komunikacja bezpołączeniowa

Programowanie Sieciowe 1

Podstawowe typy serwerów

Literatura uzupełniająca: W. Richard Stevens, Programowanie zastosowań sieciowych w systemie Unix WNT 1998

Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła

Gniazda BSD implementacja w C#

Komunikacja sieciowa - interfejs gniazd

Klient-Serwer Komunikacja przy pomocy gniazd

Gniazda BSD. Procesy w środowisku sieciowym. Gniazda podstawowe funkcje dla serwera. Gniazda podstawowe funkcje dla klienta

Adresowanie grupowe. Bartłomiej Świercz. Katedra Mikroelektroniki i Technik Informatycznych. Łódź, 25 kwietnia 2006

Programowanie przy użyciu gniazdek

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1

Programowanie sieciowe

Zwielokrotnianie wejścia wyjścia

Przesyłania danych przez protokół TCP/IP

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Tryb bezpołączeniowy (datagramowy)

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Programowanie aplikacji równoległych i rozproszonych. Wykład 4

Systemy rozproszone. Krzysztof Banaś Obliczenia równoległe 1

Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6

2. Interfejs gniazd Gniazdo

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1

PROTOKOŁY WARSTWY TRANSPORTOWEJ

Gniazda - Wstęp. Oprogramowanie systemów równoległych i rozproszonych. Sposób komunikacji. Domena adresowa. olas@icis.pcz.pl

Instytut Teleinformatyki

Standardy programowania protokołów komunikacyjnych Laboratorium nr 5 komunikacja multicastowa IPv6

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 1 Seria: Teleinformatyka 2013

3. Identyfikacja. SKŁADNIA #include <sys/socket.h> int getpeername(int socket, struct sockaddr *addr, int *addrlen);

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Warstwa transportowa. Warstwa transportowa. Enkapsulacja. Zapewnienie niezawodnego przesyłania danych /wg ISO/ Transmisja bezpołączeniowa

Instytut Teleinformatyki

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Katedra Inżynierii Komputerowej Politechnika Częstochowska. Zastosowania protokołu ICMP Laboratorium podstaw sieci komputerowych

TCP/IP formaty ramek, datagramów, pakietów...

Zadanie 2: transakcyjny protokół SKJ (2015)

Architektura typu klient serwer: uproszczony klient POP3

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

ARP Address Resolution Protocol (RFC 826)

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Sieci komputerowe 1 DSRG

Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Router programowy z firewallem oparty o iptables

1 Moduł Diagnostyki Sieci

5. Model komunikujących się procesów, komunikaty

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Programowanie współbieżne i rozproszone

Wybrane działy Informatyki Stosowanej

Gniazda. S. Samolej: Gniazda 1

socket(int domain, int type, int protocol)

Sieci komputerowe Warstwa transportowa

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Tworzenie aplikacji rozproszonej w Sun RPC

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

1. Model klient-serwer

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Routing. część 3: wewnątrz routera. Sieci komputerowe. Wykład 4. Marcin Bieńkowski

Podstawowe typy serwerów

Internet Control Message Protocol (ICMP) Łukasz Trzciałkowski

Aplikacja Sieciowa wątki po stronie klienta

Remote Quotation Protocol - opis

TCP - receive buffer (queue), send buffer (queue)

Instrukcja 5 - Zastosowania protokołu ICMP

Model OSI/ISO. Komputer B. Warstwy w modelu OSI aplikacji. aplikacji. prezentacji Komputer A. prezentacji. sesji. sesji. komunikacja wirtualna

Schemat dla UDP. = możliwe zablokowanie aplikacji KLIENT SERWER. s=socket(...) bind(s,...) recvfrom(s,...) sendto(s,...) recvfrom(s,...

Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

Routing. część 3: wewnątrz routera. Sieci komputerowe. Wykład 4. Marcin Bieńkowski

Projektowanie oprogramowania systemów KOMUNIKACJA SIECIOWA I SYSTEMY RPC

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1

Routing. część 3: wewnątrz routera. Sieci komputerowe. Wykład 4. Marcin Bieńkowski

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Zadanie programistyczne nr 2 z Sieci komputerowych

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

1.1 Przykład znajdowanie liczb pierwszych leżących w zadanym zakresie, tryb bezpołączeniowy

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Networking. Zaawansowane technologie Javy 2019

Enkapsulacja 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

iseries Programowanie z użyciem gniazd

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Marta Rybczyńska Nowy atak na systemy anonimowości

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

Mechanizmy pracy równoległej. Jarosław Kuchta

Przykłady interfejsu TCP i UDP w Javie

Transkrypt:

Gniazda UDP Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 3 kwietnia 2006

Wstęp ZewzględunaróżnicewprotokołachTCPiUDPsposób korzystania z gniazd UDP różni sie znacznie od sposobu korzystania z gniazd dla protokołu TCP. Większość różnić wynika z podstawowych cech protokołu UDP, czyli braku niezawodności i bezpołączeniowości.

Typowe wywołanie funkcji dla gniazd UDP Server UDP Klient UDP socket() socket() bind() sendto() recvfrom() recvfrom() sendto() close()

Funkcja socket Funkcja socket() służy do utworzenia deskryptora(nowego socketu). Funkcja ta zadeklarowana jest następująco: #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); Dla socketu typu UDP funkcja socket() przyjmuje postać: int sock = socket (PFINET, SOCKDGRAM, 0);

Funkcja recvfrom Deklaracja funkcji recvfrom(): #include <sys/types.h> #include <sys/socket.h> ssize t recvfrom(int s, void buf, size t len, int flags, struct sockaddr from, socklen t fromlen); Uwaga: Z każdym socketem UDP związany jest niejawny bufor odbiorczy zrealizowany w postaci kolejki FIFO.

Funkcja sendto Deklaracja funkcji sendto(): #include <sys/types.h> #include <sys/socket.h> ssize t sendto(int s, const void buf, size t len, int flags, const struct sockaddr to, socklen t tolen); Uwaga: Możliwe jest wysłanie datagramu o długości równej zero.

Serwer iteracyjny Funkcje sendto() i recvfrom() w naturalny sposób tworzą wielodostępowy serwer iteracyjny: klient serwer klient UDP UDP UDP datagram datagram

Tracenie datagramów Korzystając z protokołu UDP należy zawsze mieć świadomość, że datagram może zostać bezpowrotnie stracony. Co więcej utrata datagramu jest kłopotliwa ponieważ należy ustalić czy utracony został datagram wysłany, czy może utracony został datagram zawierający odpowiedź. Utrata datagramu może nastąpić na skutek: przepełnienia bufora(np. komputer nadający jest znacznie szybszy od komputera odbierającego), odrzucenia pakietu przez jeden z routerów pośredniczących w ruchu sieciowym.

Błąd asynchroniczny Błąd asynchroniczny występuje, gdy klient próbuje połączyć się z serwerem, który nie został uruchomiony(port docelowy jest zamknięty). Klient wysyła datagram lecz system odpowiada mu komunikatem ICMP port unreachable. Błąd asynchroniczny spowoduje funkcja sendto() ponieważ po wysłaniu datagramu zakończy ona swoje działanie w sposób normalny. Ponieważ błąd ICMP przekazany jest dopiero po pewnym czasie to klient nie ma możliwości dowiedzenia się o tym. Podstawowa zasada mówi, że błędów asynchronicznych nie przekazuje się dla gniazd UDP(odstępstwem od tej zasady są gniazda UDP połączone).

Gniazda UDP połączone Specyfikacja gniazd(socketów) rozróżnia dwa rodzaje gniazd UDP: Gniazda UDP niepołączone są to gniazda tworzone domyślnie na których nie wywołano funkcji connect(). GniazdaUDPpołączone sątogniazdaudpnarzecz których wywołano funkcję connect().

Porównanie gniazd UDP połączonych i niepołączonych 1 Po połączeniu gniazda UDP(wywołaniu funkcji connect()) niemożnajużokreślićadresuipaninumeruportudla operacji wyjścia. Oznacza to, że zamiast funkcji sendto() używa się funkcji send() lub write(). 2 Jądro przekazuje dla socketu jedynie te datagramy, których adres źródłowy odpowiada adresowi podanemu funkcji connect(). Oznacza to, że nie stosuje się funkcji recvfrom(),afunkcjeread()lubrecv(). 3 Błędy asynchroniczne są przekazywane do procesu dla gniazd połączonych.

Wielokrotne wywołanie funkcji connect Proces może wywołać wielokrotnie funkcję connect() na rzecz gniazda UDP w celu: określenia nowego docelowego adresu IP i portu, rozłączenia gniazda. Uwaga: Aby rozłączyć gniazdo należy ustawić pole sin_family struktury adresowej na wartość AF_UNSPEC.

Kiedy używać protokołu UDP Aby odpowiedzieć na to pytanie należy być świadomym jakie są zalety protokołu UDP w stosunku do protokołu TCP: Protokół UDP udostępnia rozgłaszanie i rozsyłanie grupowe. Ta sama komunikacja daje się zrealizować za pomocą mniejszej liczby pakietów UDP niż TCP. Implementacja programowa protokołu UDP jest dużo bardziej prosta i zwięzła niż protokołu TCP.

Ćwiczenia Błąd asynchroniczny. Serwer iteracyjny. Serwer wielobieżny.