Programowanie TCP/IP

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie TCP/IP"

Transkrypt

1 Podstawy komputerowych systemów sterowania Programowanie TCP/IP dr inż. Krzysztof Kołek Materiały wyłącznie dla potrzeb wykładu Podstawy komputerowych systemów sterowania IV rok RA wydział EAIiEB AGH. Inne wykorzystanie bez zgody autora zabronione.

2 Plan Koncepcja gniazd (socket) Model OSI IP, TCP i UDP Funkcje wywoływane dla klienta i serwera Przykładowy klient i serwer Biblioteka Winsock 2

3 Berkeley sockets (BSD sockets): Biblioteka API do komunikacji sieciowej Zgodna z POSIX (Portable Operating System Interface specyfikuje API w celu zapewnienia zgodności między OS). Otwarty standard Pierwotnie dostępna dla UNIX, aktualnie dla wielu OS Wersja dla MS Windows Winsock (Winsock nie był rozwijany w firmie Microsoft!!!) BSD sockets zapewnia standard binarny, ale również kompatybilność na poziomie kodu źródłowego (!!!???) Rodzaj wtyczki do sieci komputerowej, analogicznie do wtyczki od sieci elektrycznej Podstawowo dostępny jako biblioteka w języku C 3

4 Berkeley sockets (BSD sockets): Standaryzuje komunikację (standardy ważniejsze od technologii, bo dopiero one czynią technologię dostępną) Możliwość mieszania i łączenia komponentów od różnych dostawców 4

5 Model OSI (Open System Interconnect): Ogólne spojrzenie na systemy sieciowe Redukcja złożonego problemu transmisji sieciowej do komponentów, określając ich współpracę Powstał 1977 Dane przepływają w dół ; warstwy wymagają od niższych warstw wykonania zadań Niższe warstwy są przezroczyste dla wyższych (z wyjątkiem błędów, które propagują w górę ) 5

6 Warstwa aplikacji: Aplikacje komunikują się za pomocą protokołu. Protokół zbiór zasad zarządzający komunikacją. Protokoły definiowane samodzielnie lub standardy Warstwa aplikacji wykonuje interakcję z użytkownikiem Wywołuje usługi warstwy prezentacji, lub omija warstwę prezentacji i wywołuje usługi warstwy sesji Przykładem program SCADA prezentujący dane ze zdalnych źródeł 6

7 Warstwa prezentacji: Formatuje informacje uzyskane z warstwy aplikacji To np. kodowanie, dekodowanie, kompresja, konwersja ASCII/binary Wywołuje usługi warstwy sesji w celu wysłania/odbioru danych Warstwa nie jest obowiązkowa Nie ma standardowego interfejsu z udostępnionymi usługami SCADA np. szyfrowanie/rozkodowanie danych w celu zapewnienia poufności 7

8 Warstwa sesji: Tworzy, zarządza oraz zamyka połączenie wysokiego poziomu (połączenia niskiego poziomu występują w warstwie transportowej) Rodzaj wirtualnego połączenia, występującego np. również przy braku łączności sieciowej. Np. transfer dużych plików w warunkach zaniku łączności Warstwa nie jest obowiązkowa aplikacja może nie wymagać takich usług SCADA nawiązanie połączenia, cykliczna wymiana danych ze stałym okresem oraz zakończenie połączenia ze zdalnym serwerem 8

9 Warstwa transportowa: Zawiera usługi sieciowe związane z transferem punkt-punkt Rodzaj wirtualnego połączenia, występującego np. również przy braku łączności sieciowej. Np. transfer dużych plików w warunkach zaniku łączności Wywołuje funkcje związane z odbiorem/transferem oraz adresowaniem ramek danych Odpowiada za integralność danych; może potwierdzić otrzymanie danych lub zażądać retransmisji brakującego pakietu SCADA jednorazowy cykl wymiany danych, powtarzający się cyklicznie ze znanym okresem 9

10 Warstwa sieciowa: Adresuje pakiety umożliwiając ich transfer przez routery i bridges Dla danych przekraczających rozmiar pakietu dzieli ramki na pakiety, scala pakiety; nadaje numery fragmentom Dodaje do pakietów sumy kontrolne SCADA ta warstwa przezroczysta dla pakietów SCADA 10

11 Warstwa łącza danych: Zwana warstwą sterowników sieciowych Zarządza sprzętem, umożliwiając jego współdzielenie jeżeli kilka warstw sieciowych pracuje jednocześnie Realizuje dokładanie/usuwanie adresów MAC z pakietów danych SCADA ta warstwa przezroczysta dla pakietów SCADA 11

12 Warstwa fizyczna: Określa parametry techniczne związane z przesyłaniem danych przez medium (przewód, światłowód, radio) Wysyła/odbiera dane bit po bicie SCADA ta warstwa przezroczysta dla pakietów SCADA 12

13 Warstwy transportowa, sieciowa i łącza danych dokładają kolejne nagłówki do danych otrzymanych z wyższych warstw Wireshark 13

14 14

15 15

16 TCP/IP (Transmissin Control Protocol / Internet Protocol) Zapewnia łączność sieciową między dowolnymi systemami komputerowymi, poprzez różnorodne media sieciowe TCP/IP podstawowe protokoły Internetu Zapewnia łączność dla różnych charakterystyk sieci: różnego pasma, opóźnień, utraty pakietów, zmiany kolejności pakietów, zmiennego rozmiaru pakietów, uszkodzeń fragmentów sieci Biblioteka BSD Sockets ukrywa szczegóły implementacyjne TCP, UDP i IP 16

17 UDP (User Datagram Protocol) Usługa bezpołączeniowa wysyła datagramy (datagram jednostka transmitowanych danych) Nie jest usługą niezawodną nie ma gwarancji dostarczenia pakietu oraz gwarancji zachowania kolejności transmitowanych pakietów Otrzymanie datagramu nie powoduje wysłania potwierdzenia odbioru Usługa prosta, a dzięki temu efektywna Aplikacja może w oparciu o datagramy wprowadzić usługi gwarantujące niezawodność Preferowane zastosowania: podczas przesyłania krótkich danych, gdy koszty tworzenia i zamykania kanału są większe od kosztów transmisji; Np. w systemach SCADA: pytamy o daną czasu rzeczywistego; jak przyjdzie to OK, jak się nie pojawi ponawiamy pytanie; jeżeli przyjdą zduplikowane dane to można je odfiltrować 17

18 UDP Niektóre usługi wymagają zawodnej transmisji np. ping jeżeli nastąpi automatyczna retransmisja pakietów nie da się robić statystyk lub strumieniowa transmisja audio lepiej odtworzyć posiadane dane niż długo czekać na retransmisję pakietu Bezpołączeniowa możliwy multicasting i broadcasting Multicasting - jeden pakiet wysłany do wielu odbiorców, zakres adresów do przypisany jest do multicastu Broadcasting - tryb rozgłoszeniowy - jeden pakiet do wszystkich w danej sieci; adres wyznaczany na podstawie maski sieci (zera w masce sieci zamieniane na jedynki oraz suma logiczna z adresem podsieci) 18

19 TCP Tworzy połączenie; połączenie jest wirtualne wydaje się iż są połączone fizycznie Analogia z rozmową telefoniczną Niezawodna transmisja: automatyczne potwierdzanie otrzymanych danych, retransmisja danych utraconych, zachowanie kolejności danych, unikanie duplikacji danych Powyższe usługi mają swój narzut na ruch sieciowy TCP NIE GWARANTUJE granic pakietów. Wysyła taką ilość danych jaką potrzebuje. Nadawca może wysłać dane jedną operacją, a odbiorca będzie potrzebował kilku operacji odczytu w celu skompletowania danych 19

20 !!! Używaj TCP, chyba że istnieje powód aby tego nie robić!!! Zwykle koszt dodatkowych usług TCP jest pomijalny, a programy wykorzystujące TCP są prostsze Powody zastosowania UDP: Użycie multicast lub broadcast Przesyłanie danych czasu rzeczywistego wrażliwych na opóźnienia (strumienie audio i video) Krótkie transmisje z wbudowanym domyślnie potwierdzeniem np. zapytanie do bazy danych 20

21 IP Realizuje adresowanie pakietów, routowanie, fragmentację i defragmentację Szczegóły ukryte przed użytkownikiem UDP oraz TCP 21

22 Klient/serwer Kanał komunikacyjny ma dwa końce: klient i serwer Serwer rozpoczyna oczekiwanie na komunikację, a klient wysyła pierwszy pakiet Klient i serwer posiadają własne gniazda (sockets), oba tego samego typu UDP lub TCP Gniazdo definiuje: Protokół Adres IP Numer portu - liczba 16 bitowa umożliwiający jego identyfikację Kanał zdefiniowany przez: Protokół Adres IP klienta i adres IP serwera Numer portów: klienta i serwera Kanał powstaje po stowarzyszeniu gniazd klienta i serwera 22

23 Klient/serwer Serwer Klient Protokół komunikacyjny TCP lub UDP Serwer poznaje adres komputera klienta w momencie nawiązywania połączenia Klient musi znać adres komputera serwera Serwer oczekuje na połączenia z klientem na określonym porcie Klient nawiązuje połączenie z serwerem na porcie używanym przez serwer do nasłuchiwania 23

24 Klient/serwer Zarówno klient jak i serwer w trakcie komunikacji wykonują pięć kroków: Otwarcie gniazda Określenie parametrów gniazda Stowarzyszenie z innym gniazdem Transmisja danych między gniazdami Zamknięcie gniazda Występuje pewna analogia do operacji na plikach, np. w obu przypadkach otwarcie zwraca uchwyt (handle) 24

25 Otwarcie gniazda #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); Zwraca (-1) gdy błąd, a w przeciwnym przypadku deskryptor gniazda domain domena komunikacji; kilka wartości, między innymi PF_INET dla IPv4 i PF_INET6 dla IPv6 type - kilka wartości, między innymi SOCK_DGRAM dla komunikacji datagramowej i SOCK_STREAM dla komunikacji z kanałem komunikacyjnym; wartość SOCK_RAW dla protokołów innych niż TCP i UDP protocol protokół, kilka wartości; między innymi IPPROTO_TCP oraz IPPROTO_UDP 25

26 Określenie parametrów gniazda (Name the Socket) Określa dla gniazda adres, port i protokół Operacja musi być zrealizowana dla serwera, a dla klienta może być wykonana (choć jest to niewskazane) Dwie struktury: struct sockaddr { } sa_family_t sa_family; char sa_data[14]; To ogólna forma struktury danych określających parametry gniazda. Praktycznie niewykorzystywana (używana tylko do rzutowania adresu w funkcji bind()). Praktycznie używana struktura sockaddr_in. Formalnie sockaddr oraz sockaddr_in nie są zadeklarowane jako union ale tak są wykorzystywane 26

27 Określenie parametrów gniazda struct sockaddr_in { }; sa_family_t sin_family; /* address family: PF_INET */ in_port_t sin_port; /* port in network byte order */ struct in_addr sin_addr; /* internet address */ char sin_zero[8]; /* unused */ sin_family dla TCP/IP PF_INET (dla IPv6 PF_INET6, ale wówczas struktura sockaddr_in6) sin_port 16-bitowy numer portu. Każdy serwis ma swój numer (np. 80 dla http). Numery są zarezerwowane. Do własnego użytku numery powyżej 1024, choć do ok używane przez wiele popularnych serwisów sin_addr dla funkcji bind() zawsze lokalny adres IP; wygodnie zastosować INADDR_ANY, co spowoduje automatyczne nadanie adresu sin_zero dla wyrównania długości struktury do długości sockaddr 27

28 Określenie parametrów gniazda #include <sys/types.h> #include <sys/socket.h> int bind(int s, const struct sockaddr *addr, socklen_t addrlen); Zwraca 0 w przypadku sukcesu lub SOCKET_ERROR (-1) w przypadku błędu s uchwyt do gniazda addr wskaźnik na strukturę z parametrami addrlen rozmiar struktury, sizeoff( sockarrd_in ) Nie zaleca się wykonywania bind() dla gniazda klienta. Stos TCP/IP określi parametry (szczególnie unikalny numer portu) podczas, dla TCP wykonywania funkcji connect() lub,dla UDP, wykonanie connect() lub sendto() 28

29 Stowarzyszenie z innym gniazdem Dwa stowarzyszone gniazda tworzą unikalne połączenie Wykonywane inaczej dla UDP i TCP oraz inaczej dla klienta i serwera UDP Dla serwera UDP: nie ma potrzeby asocjacji stowarzyszenie wykonywane podczas odczytu danych, po wykonaniu funkcji recv(), recvfrom() lub select() Dla klienta dwie metody: Wywołanie sendto(). Funkcja jako parametr pobiera strukturę sockaddr, można więc za każdym razem zmienić adres odbiorcy. Metoda rekomendowana Wywołując connect(), a następnie send(). Po uprzednim rozłączeniu (wykonując połączenie z adresem INADDR_ANY) powtórne wykonanie connect() zmieni adres odbiorcy 29

30 Stowarzyszenie z innym gniazdem TCP: Serwer wykonuje dwie funkcje #include <sys/types.h> #include <sys/socket.h> int listen(int sockfd, int backlog); Funkcja przygotowuje do akceptacji połączenia. Zwraca 0 gdy sukces lub SOCKET_ERROR (-1) gdy porażka sockfd uchwyt do gniazda; po wykonaniu bind() ale przez stowarzyszeniem backlog liczba przychodzących żądań połączenia, czekających w kolejce, podczas przetwarzania połączeń już zaakceptowanych. To maksymalny rozmiar kolejki oczekujących połączeń 30

31 Stowarzyszenie z innym gniazdem TCP: #include <sys/types.h> #include <sys/socket.h> int accept(int s, struct sockaddr *addr, socklen_t *addrlen); Funkcja akceptuje połączenie. Zwraca uchwyt do gniazda nowo utworzonego połączenia gdy sukces lub SOCKET_ERROR (-1) gdy porażka. Funkcja tworzy nowe gniazdo niezbędne zamknięcie więcej niż jednego gniazda. s uchwyt do gniazda; po wykonaniu listen(). Po wykonaniu funkcji gniazdo s ciągle może nasłuchiwać nadchodzących połączeń sockaddr adres struktury, do której będą wpisane parametry tworzonego gniazda. Jeżeli parametr jest równy NULL żadna struktura nie jest wypełniana parametrami addrlen wskaźnik na uzupełniany przez funkcję rozmiar wypełnionej struktury 31

32 Stowarzyszenie z innym gniazdem TCP: Klient wykonuje funkcje #include <sys/types.h> #include <sys/socket.h> int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); Funkcja inicjalizuje połączenie. Zwraca 0 gdy sukces lub SOCKET_ERROR (-1) gdy porażka sockfd uchwyt do lokalnego gniazda addr wskaźnik na strukturę z parametrami; tutaj sin_port i sin_addr określają zdalne gniazdo addrlen rozmiar struktury, sizeoff( sockarrd_in ) Funkcja connect() określa automatycznie parametry gniazda sockfd, nie trzeba więc dla niego wykonywać bind() (określa port i adres) 32

33 Transmisja #include <sys/types.h> #include <sys/socket.h> int send(int sockfd, const void *buf, int len, int flags); Zwraca -1 w przypadku błędu lub liczbę wysłanych bajtów sockfd uchwyt do stowarzyszonego gniazda *buf wskaźnik do bufora z danymi len liczba danych do wysłania; dla UDP nie może przekroczyć maksymalnej długości datagramu; dla TCP nie ma gwarancji wysłania wszystkich danych w pojedynczym pakiecie aplikacja musi śledzić czy nie trzeba ponownie wywołać funkcję w celu wysłania pozostałych danych flags dodatkowe flagi (np. wysłanie danych priorytetowych); zwykle wartość zero Dla UDP send() można wywołać tylko po uprzednim stowarzyszeniu gniazda funkcją connect() 33

34 Transmisja #include <sys/types.h> #include <sys/socket.h> int sendto(int sockfd, const void *buf, int len, int flags, const struct sockaddr *dest_addr, int addrlen); Zwraca -1 w przypadku błędu lub liczbę wysłanych bajtów sockfd, buf, len i flags identycznie jak dla send() dest_addr wskaźnik do uchwytu gniazda zawierającego numer portu i IP komputera przeznaczenia addrlen długość struktury wskazywanej przez dest_addr Stosowana zwykle dla UDP; w przypadku TCP send() i sendto() działają identycznie 34

35 Transmisja #include <sys/types.h> #include <sys/socket.h> int recv(int sockfd, void *buf, size_t len, int flags); int recvfrom(int sockfd, void *buf, int len, int flags, struct sockaddr *src_addr, int addrlen); Zwraca -1 w przypadku błędu lub liczbę odebranych bajtów Podobne znaczenie parametrów jak dla funkcji wysyłających len maksymalna liczba odczytanych danych. Funkcja kończy działanie gdy system sieciowy zwróci jakąkolwiek liczbę danych Flaga MSG_OOB umożliwia w pierwszej kolejności odczyt danych o podwyższonym priorytecie Flaga MSG_PEEK umożliwia sprawdzenie ile danych jest w buforze odbiornika, a nawet wgląd w te dane bez usuwania ich z bufora 35

36 Zamknięcie gniazda int close(int sockfd); Zamyka gniazdo; zwraca zero w przypadku sukcesu 36

37 TCP 37

38 UDP 38

39 Tryby pracy Blocking: funkcja kończy działanie po zakończeniu operacji, z błędem lub nie. To tryb domyślny Nonblocking funkcja kończy działanie natychmiast, czasami z błędem, a czasami nie. Ale błąd nie musi oznaczać niepowodzenia może oznaczać, iż operacja nie zdążyła się zakończyć. Niezbędne przepytywanie (pooling) w celu określenia zakończenia operacji. Przejście do trybu nonblocking wymaga wywołania funkcji ioctlsocket() z parametrem FIONBIO Asynchronous funkcja kończy działanie natychmiast, ale dodatkowo wysyłany jest sygnał gdy operacja się zakończy Najprostszy tryb do pisania programów to blocking, szczególnie w środowisku wielozadaniowym. Zalecane wykonanie procedur timeout Zalecana obsługa wielowątkowa możliwa obsługa wielu gniazd jednocześnie 39

40 Przykład serwera TCP #include <fcntl.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char* argv[]) { int sockfd, sockfd2; int addrlen; struct sockaddr_in svr_name, cli_name; int status; char inbuf[4096]; /* Create the socket */ sockfd = socket(pf_inet, SOCK_STREAM, IPPROTO_TCP ); if (sockfd == (-1) ) { printf("socket() error\n"); exit(1); } if (argc < 2) { printf( "Usage: %s port_no\n", argv[0]); exit(2); } /* Server parameters */ svr_name.sin_family = PF_INET; svr_name.sin_addr.s_addr = INADDR_ANY; svr_name.sin_port = htons(atoi(argv[1])); status = bind(sockfd, (struct sockaddr*)&svr_name, sizeof(svr_name)); if (status == -1) { printf("bind() error\n"); exit(3); } status = listen(sockfd, 5); if (status == -1) { printf("listen() error\n"); exit(4); } for(;;) { printf("wait for a connection...\n" ); addrlen = sizeof(cli_name); sockfd2 = accept(sockfd, (struct sockaddr*)&cli_name, &addrlen); if (sockfd2 == -1) { printf("accept() error\n"); exit(1); } status = recv(sockfd2, inbuf, sizeof(inbuf), 0); if (status == -1) { printf("recv() error\n"); exit(5); } printf( "Received: %s\n", inbuf ); status = send(sockfd2, "Received!\n", sizeof("received!\n"), 0); if (status == -1) { printf("send() error\n"); exit(5); } close(sockfd2); if( strcmp( inbuf, "!shutdown" ) == 0 ) break; } close(sockfd); return 0; } 40

41 Przykład klienta TCP #include <fcntl.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char* argv[]) { int sockfd; int count; struct sockaddr_in serv_socket; char inbuf[256]; int status; if (argc < 4) { printf("usage: %s IP port_no message\n", argv[0]); exit(1); } sockfd = socket(pf_inet, SOCK_STREAM, IPPROTO_TCP ); if (sockfd == -1) { printf("socket() error\n"); exit(2); } serv_socket.sin_family = PF_INET; inet_aton(argv[1], &serv_socket.sin_addr); serv_socket.sin_port = htons(atoi(argv[2])); status = connect(sockfd, (struct sockaddr*)&serv_socket, sizeof(serv_socket)); if (status == -1) { printf("connect() error\n"); exit(3); } status = send(sockfd, argv[3], sizeof("received!\n"), 0); if (status == -1) { printf("send() error\n"); exit(4); } status = recv(sockfd, inbuf, sizeof(inbuf), 0); if (status == -1) { printf("recv() error\n"); exit(5); } printf( "Received: %s\n", inbuf ); close(sockfd); return 0; } 41

42 Winsock Odpowiednik BSD Sockets dla systemów MS-Windows Zaimplementowana jako biblioteka DLL Wprowadzono nowe funkcje Linkowanie z biblioteką Ws2_32.lib 42

43 Winsock serwer: // WIN32_LEAN_AND_MEAN macro prevents the Winsock.h // from being included by the Windows.h header #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winsock2.h> #include <ws2tcpip.h> #include <stdlib.h> #include <stdio.h> // Need to link with Ws2_32.lib #pragma comment (lib, "Ws2_32.lib") #define DEFAULT_BUFLEN (512) 43

44 int main(int argc, char* argv[]) { WSADATA wsadata; int iresult; SOCKET ListenSocket = INVALID_SOCKET; SOCKET ClientSocket = INVALID_SOCKET; struct addrinfo *result = NULL; struct addrinfo hints; int isendresult; char recvbuf[default_buflen]; int recvbuflen = DEFAULT_BUFLEN; // Validate the parameters if (argc < 2) { printf("usage: %s port_no\n", argv[0]); return 1; } 44

45 // Initialize Winsock iresult = WSAStartup(MAKEWORD(2,2), &wsadata); if (iresult!= 0) { printf("wsastartup failed with error: %d\n", iresult); return 1; } ZeroMemory(&hints, sizeof(hints)); hints.ai_family = PF_INET; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; hints.ai_flags = AI_PASSIVE; // Resolve the server address and port iresult = getaddrinfo(null, argv[1], &hints, &result); if ( iresult!= 0 ) { printf("getaddrinfo failed with error: %d\n", iresult); WSACleanup(); return 1; } 45

46 // Create a SOCKET for connecting to server ListenSocket = socket(result->ai_family, result->ai_socktype, result->ai_protocol); if (ListenSocket == INVALID_SOCKET) { printf("socket failed with error: %ld\n", WSAGetLastError()); freeaddrinfo(result); WSACleanup(); return 1; } // Setup the TCP listening socket iresult = bind( ListenSocket, result->ai_addr, (int)result->ai_addrlen); if (iresult == SOCKET_ERROR) { printf("bind failed with error: %d\n", WSAGetLastError()); freeaddrinfo(result); closesocket(listensocket); WSACleanup(); return 1; } 46

47 freeaddrinfo(result); iresult = listen(listensocket, SOMAXCONN); if (iresult == SOCKET_ERROR) { printf("listen failed with error: %d\n", WSAGetLastError()); closesocket(listensocket); WSACleanup(); return 1; } // Accept a client socket do { ClientSocket = accept(listensocket, NULL, NULL); if (ClientSocket == INVALID_SOCKET) { printf("accept failed with error: %d\n", WSAGetLastError()); closesocket(listensocket); WSACleanup(); return 1; } 47

48 iresult = recv(clientsocket, recvbuf, recvbuflen, 0); if (iresult > 0) { printf("bytes received: %d >> %s\n", iresult, recvbuf); // Echo the buffer back to the sender isendresult = send( ClientSocket, recvbuf, iresult, 0 ); if (isendresult == SOCKET_ERROR) { printf("send failed with error: %d\n", WSAGetLastError()); closesocket(clientsocket); WSACleanup(); return 1; } printf("bytes sent: %d\n", isendresult); } else if (iresult == 0) printf("connection closing...\n"); else { printf("recv failed with error: %d\n", WSAGetLastError()); closesocket(clientsocket); WSACleanup(); return 1; } 48

49 closesocket(clientsocket); if( strcmp( recvbuf, "!shutdown" ) == 0 ) break; } while( 1 ); closesocket(listensocket); WSACleanup(); } return 0; 49

50 Winsock klient: #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <winsock2.h> #include <ws2tcpip.h> #include <stdlib.h> #include <stdio.h> // Need to link with Ws2_32.lib, Mswsock.lib, and Advapi32.lib #pragma comment (lib, "Ws2_32.lib") #pragma comment (lib, "Mswsock.lib") #pragma comment (lib, "AdvApi32.lib") #define DEFAULT_BUFLEN

51 Winsock klient: int main(int argc, char* argv[]) { WSADATA wsadata; SOCKET ConnectSocket = INVALID_SOCKET; struct addrinfo *result = NULL, *ptr = NULL, hints; char sendbuf[default_buflen]; char recvbuf[default_buflen]; int iresult; int recvbuflen = DEFAULT_BUFLEN; // Validate the parameters if (argc < 4) { printf("usage: %s IP port_no message\n", argv[0]); return 1; } strcpy_s( sendbuf, strlen(argv[3])+1, argv[3] ); 51

52 Winsock klient: // Initialize Winsock iresult = WSAStartup(MAKEWORD(2,2), &wsadata); if (iresult!= 0) { printf("wsastartup failed with error: %d\n", iresult); return 1; } ZeroMemory( &hints, sizeof(hints) ); hints.ai_family = PF_INET; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = IPPROTO_TCP; // Resolve the server address and port iresult = getaddrinfo(argv[1], argv[2], &hints, &result); if ( iresult!= 0 ) { printf("getaddrinfo failed with error: %d\n", iresult); WSACleanup(); return 1; } 52

53 Winsock klient: // Attempt to connect to an address for(ptr=result; ptr!= NULL ;ptr=ptr->ai_next) { // Create a SOCKET for connecting to server ConnectSocket = socket(ptr->ai_family, ptr->ai_socktype, ptr->ai_protocol); if (ConnectSocket == INVALID_SOCKET) { printf("socket failed with error: %ld\n", WSAGetLastError()); WSACleanup(); return 1; } // Connect to server. iresult = connect( ConnectSocket, ptr->ai_addr, (int)ptr->ai_addrlen); if (iresult == SOCKET_ERROR) { closesocket(connectsocket); ConnectSocket = INVALID_SOCKET; continue; } break; } 53

54 Winsock klient: freeaddrinfo(result); if (ConnectSocket == INVALID_SOCKET) { printf("unable to connect to server!\n"); WSACleanup(); return 1; } // Send an initial buffer iresult = send( ConnectSocket, sendbuf, (int)strlen(sendbuf)+1, 0 ); if (iresult == SOCKET_ERROR) { printf("send failed with error: %d\n", WSAGetLastError()); closesocket(connectsocket); WSACleanup(); return 1; } printf("bytes Sent: %ld\n", iresult); 54

55 Winsock klient: iresult = recv(connectsocket, recvbuf, recvbuflen, 0); if ( iresult > 0 ) printf("bytes received: %d >> %s\n", iresult, recvbuf); else if ( iresult == 0 ) printf("connection closed\n"); else printf("recv failed with error: %d\n", WSAGetLastError()); // cleanup iresult = shutdown(connectsocket, SD_BOTH ); if (iresult == SOCKET_ERROR) { printf("shutdown failed with error: %d\n", WSAGetLastError()); closesocket(connectsocket); WSACleanup(); return 1; } closesocket(connectsocket); WSACleanup(); return 0; } 55

56 MATLAB Obiekt tcpip: obj = tcpip('rhost') obj = tcpip('rhost',rport) obj = tcpip(...,'propertyname',propertyvalue,...) obj = tcpip('localhost', 30000, 'NetworkRole', 'client') NetworkRole : wartości client lub server Przykład: echotcpip('on',4012) t = tcpip('localhost',4012); % get(t) zwraca właściwości fopen(t) fwrite(t,65:74) A = fread(t, 10); fclose(t) echotcpip('off') Uwaga na format ramek. Np. łańcuchy znakowe niezgodne z językiem C 56

57 MATLAB Serwer: t=tcpip(' ', 30000, 'NetworkRole', 'server'); % akceptuje połączenia z dowolnego klienta % Podanie IP limituje akceptację połączenia fopen(t); data=fread(t, t.bytesavailable, 'double'); fclose(t) Klient: data=sin(0:0.01:2*pi); t=tcpip('localhost', 30000, 'NetworkRole', 'client'); fopen(t) fwrite(t, data, 'double') fclose(t) 57

58 MATLAB przybornik TCP/UDP/IP Toolbox sockcon=pnet('tcpsocket',port) Tworzy gniazdo socket pracujące na porcie port. W przypadku błędu zwraca 1, w innych przypadkach zwraca identyfikator gniazda. Odpowiada funkcjom socket() oraz bind(). con=pnet('tcpconnect','hostname',port) Tworzy połączenie z serwerem hostname na porcie port. W przypadku błędu zwraca 1, w innych przypadkach zwraca identyfikator gniazda. Funkcja pracuje w trybie non-blocking, powinna być uruchamiana po uruchomieniu serwera. Odpowiada funkcji connect(). con=pnet(sockcon,'tcplisten', ['noblock'] ) W przypadku gdy zdalny komputer żąda połączenia z serwerem funkcja zwraca uchwyt con do tego połączenia. W przypadku błędu zwraca 1, w innych przypadkach zwraca identyfikator gniazda. Funkcja pracuje w trybie non-blocking, powinna być uruchamiana po uruchomieniu serwera. W przypadku braku parametru noblock funkcja blokuje się do czasu uzyskania połączenia lub na okres określony przez funkcję setreadtimeout. Odpowiada funkcji listen(). 58

59 MATLAB przybornik TCP/UDP/IP Toolbox str=pnet(con,'readline' [,limitsize] [,'view'] [,'noblock']) Funkcja odczytuje i zwraca jako str łańcuch znakowy do napotkania w strumieniu wejściowym znaku końca linii (newline - \n). Znak końca linii nie jest dodawany do zwracanego łańcucha. Jeżeli łańcuch jest dłuższy od limitsize to jest skracany to zadanej długości (domyślna wartość tego parametru to 65536). Opcja view odczytuje znaki z bufora ale ich nie usuwa z bufora odczytu. W przypadku braku parametru noblock funkcja blokuje się do czasu odczytu znaku końca linii lub na okres określony przez funkcję setreadtimeout. Odpowiada funkcji recv() ale dotyczy wyłącznie odczytu łańcuchów znakowych. pnet(con,'printf', 'format',...) Wysyła sformatowany łańcuch po łączu określonym gniazdem con. Funkcja blokuje się do czasu wysłania łańcucha lub na okres określony przez funkcję setwritetimeout. Odpowiada funkcji send() ale dotyczy wyłącznie wysyłania łańcuchów znakowych. [ip,port]=pnet(con,'gethost') Funkcja zwraca adres IP (w postaci czteroelementowej tablicy) oraz port związany z gniazdem con. 59

60 MATLAB przybornik TCP/UDP/IP Toolbox stat=pnet(con,'setreadtimeout',sec) Funkcja ustawia dla gniazda con maksymalny czas oczekiwania dla funkcji read oraz listen. Czas oczekiwania podawany jest jako liczba zmiennopozycyjna w sekundach. Podanie czasu równego 0 oznacza wykonywanie funkcji w trybie non-blocking. stat=pnet(con,'setwritetimeout',sec) Funkcja ustawia dla gniazda con maksymalny czas oczekiwania dla funkcji printf oraz write. Czas oczekiwania podawany jest jako liczba zmiennopozycyjna w sekundach. Podanie czasu równego 0 oznacza wykonywanie funkcji w trybie non-blocking. pnet(con,'close') Zamyka łączność w kanale określonym przez gniazdo con. Powinna być wykonana po zakończeniu transmisji nawet gdy wcześniej transmisję zakończył zdalny komputer. Odpowiada funkcji close(). pnet('closeall') Zamyka wszystkie gniazda w aktualnej sesji MATLAB-a. Jest to bezpieczny sposób zakończenia pracy. 60

61 MATLAB przybornik TCP/UDP/IP Toolbox elements=pnet(con,'write', data [,swapping]) data=pnet(con,'read' [,size] [,datatype] [,swapping] [,'view'] [,'noblock']) ret=pnet(con,'readtofile','filename'[,bytes][,'view'][,'noblock'][,'append']) ret=pnet(con,'writefromfile','filename'[[,start],len]) stat=pnet(con,'status') Opis dostępny jest po wykonaniu komendy help pnet w MATLAB Command Window 61

62 MATLAB przybornik TCP/UDP/IP Toolbox Odczyt strony HTTP function ret = getwebpage( host, page, port ) con=pnet('tcpconnect',host,port); if con==-1, error( sprintf('brak łączności z %s', host ) ); end pnet(con,'setwritetimeout',1); pnet(con,'setreadtimeout',3); % Rządanie odczytu strony - polecenie GET protokołu HTTP pnet(con,'printf','get %s HTTP/1.0\n', page); pnet(con,'printf','host: %s\n', host); pnet(con,'printf','\n'); ret = pnet(con,'read',1000*1000); % Read data pnet(con,'close'); Przykładowe wywołanie to: ret = getwebpage( ' '/', 80 ) 62

63 Kontrolka MSWINSCK.OCX Instalacja: 1. Załaduj MSWINSCK.OCX 2. Skopiuj do C:\Windows\System32 (32-bity) lub C:\Windows\SysWOW64 (64 bity) 3. Zarejestruj komendą a uprawnieniami administratora: regsvr32 c:\windows\syswow64\mswinsck.ocx (istotne podanie pełnej ścieżki) 63

64 Kontrolka MSWINSCK.OCX - VBA VBA (Alt+F11) Tools/References/Browse pokazać na mswinsck.ocx Private mywinsock As Object Sub Test() Set mywinsock = New MSWinsockLib.Winsock MsgBox mywinsock.localip End Sub 64

65 Kontrolka SocketWrench 8.0 Rejestracja jak poprzednio Bogaty zestaw właściwości, metod i zdarzeń (patrz dokumentacja >200str). function server_tcpip( port ) hfig = figure('visible','off'); % Stworzyć obiekt figure aby umieścić na nim kontrolkę % Utworzenie kontrolki oraz przypisanie funkcji obsługi zdarzeń hax=actxcontrol('sockettools.socketwrench.6', [ ], hfig,... {'OnAccept' 'OnAcceptCallback';... 'OnDisconnect' 'OnDisconnectCallback'} ); % Ustawienie kluczowych właściwości hax.blocking = 0; %!!!! BRAK BLOKARY WYWOŁANIA METODY Listen hax.protocol = 6; % swprotocoltcp hax.localport = port; % Aktywacja nasłuchiwania nadchodzących połączeń na zadanym porcie Err = hax.listen; if Err ~= 0, disp( [ 'Unable to listen for connection: ' num2str(err) ] ); end return 65

66 Kontrolka SocketWrench 8.0 function OnAcceptCallback(varargin) % Utworzyć nowe gniazdo hax=actxcontrol('sockettools.socketwrench.6',[ ], gcf,... {'OnRead' 'OnReadCallback';... 'OnDisconnect' 'OnDisconnectCallback'} ); hax.blocking = 0; hax.protocol = 6; % swprotocoltcp Err = hax.accept( varargin{1}.handle ); % Akceptuj połączenie if Err ~= 0, MsgBox( [ 'Unable to accept for connection: ' num2str(err) ] ) end 66

67 Kontrolka SocketWrench 8.0 function OnDisconnectCallback( varargin ) varargin{1}.disconnect; delete(varargin{1}) function OnReadCallback( varargin ) strbuff = char('x'*ones(1,1024)); [Len, strbuff, host, port ] = varargin{1}.read(strbuff, length(strbuff )); if Len > 0 disp( [ 'Read: ' strbuff ] ) end 67

68 Kontrolka SocketWrench 8.0 function send_tcpip( host, port, text ) hfig = figure('visible','off'); hax=actxcontrol('sockettools.socketwrench.6'); hax.blocking = 1; % tu lepszy blokking hax.protocol = 6; % swprotocoltcp Err = hax.connect( host, port ); if Err ~= 0, MsgBox 'Unable to connect to remote host'; end Err = hax.write(text, length(text)); if Err == -1, MsgBox 'Unable to send data to server' ; end hax.disconnect; delete( hax ); delete( hfig ); 68

69 Kontrolka SocketWrench 8.0 VBA Private mywinsock As SocketWrenchCtl.SocketWrench Sub Test() Set mywinsock = New SocketWrenchCtl.SocketWrench MsgBox mywinsock.version End Sub 69

70 Wnioski: Biblioteki TCP/IP dostępne dla większości systemów operacyjnych Znaczna część ruchu w Internecie bazuje na TCP/IP Komunikacja sieciowa często wykorzystywana w systemach sterowania Oprogramowanie komunikacji TCP/IP jest proste 70

71 Literatura Douglas E. Comer: Sieci komputerowe TCP/IP, WNT, Andrew S. Tanenbaum: Sieci komputerowe, Helion. BSD Sockets Interface Programmer s Guide, dokument dostępny w Internecie strona na temat WinSock Quinn Bob, Shute Dave: Windows Sockets Network Programming. Stevens, Fenner, Rudoff: Unix Network Programming volume 1: The Sockets Networking API, 3rd Edition, Addison-Wesley, Norman Matloff: Overview of Computer Networks, INTERNET!!! 71

Winsock. Sieci Komputerowe II Wyk ład 3

Winsock. 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ółowo

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

Literatura uzupełniająca: W. Richard Stevens, Programowanie zastosowań sieciowych w systemie Unix WNT 1998 Gniazda BSD Literatura uzupełniająca: W. Richard Stevens, Programowanie zastosowań sieciowych w systemie Unix WNT 1998 socket() Użycie gniazd w transmisji połączeniowej bind() listen() socket() accept()

Bardziej szczegółowo

Gniazda BSD. komunikacja bezpołączeniowa

Gniazda BSD. komunikacja bezpołączeniowa Gniazda BSD komunikacja bezpołączeniowa Użycie gniazd w transmisji bezpołączeniowej socket() socket() bind() bind() STOP! recv() żądanie send() send() odpowiedź recv() STOP! recvfrom() #include

Bardziej szczegółowo

Programowanie Sieciowe 1

Programowanie 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ółowo

Iteracyjny serwer TCP i aplikacja UDP

Iteracyjny serwer TCP i aplikacja UDP Iteracyjny serwer TCP i aplikacja UDP Iteracyjny serwer TCP Funkcje wywoływane przez serwer TCP socket() - bind() - listen() - accept() - read() / write() - close() socket() Creates an endpoint for communication

Bardziej szczegółowo

Aplikacja Sieciowa. Najpierw tworzymy nowy projekt, tym razem pracować będziemy w konsoli, a zatem: File->New- >Project

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ółowo

Programowanie sieciowe

Programowanie 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ółowo

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

Gniazda UDP. Bartłomiej Świercz. Łódź, 3 kwietnia Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda UDP 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

Bardziej szczegółowo

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

3. Identyfikacja. SKŁADNIA #include <sys/socket.h> int getpeername(int socket, struct sockaddr *addr, int *addrlen); 3.1. Określanie adresu połączonego hosta 3. #include int getpeername(int socket, struct sockaddr *addr, int *addrlen); Funkcja getpeername dostarcza adresu drugiej strony połączenia. Parametry:

Bardziej szczegółowo

Programowanie przy użyciu gniazdek

Programowanie przy użyciu gniazdek Programowanie przy użyciu gniazdek Gniazdo (ang. socket) pojęcie abstrakcyjne reprezentujące dwukierunkowy punkt końcowy połączenia. Dwukierunkowość oznacza możliwość wysyłania i przyjmowania danych. Wykorzystywane

Bardziej szczegółowo

Gniazda BSD implementacja w C#

Gniazda BSD implementacja w C# BSD implementacja w C# Implementacja w C#: Przestrzeń nazw: System.Net.Sockets Klasa: public class Socket : IDisposable Implementacja w C#: Konstruktor: public Socket( AddressFamily addressfamily, SocketType

Bardziej szczegółowo

Klient-Serwer Komunikacja przy pomocy gniazd

Klient-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ółowo

Komunikacja sieciowa - interfejs gniazd

Komunikacja sieciowa - interfejs gniazd SOE Systemy Operacyjne Wykład 14 Komunikacja sieciowa - interfejs gniazd dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Model komunikacji sieciowej Model OSI (ang. Open System

Bardziej szczegółowo

Architektura 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 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ółowo

Protokoły sieciowe - TCP/IP

Protokoł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ółowo

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1 Komunikacja międzyprocesowa Krzysztof Banaś Systemy rozproszone 1 Komunikacja międzyprocesowa Dla funkcjonowania systemów rozproszonych konieczna jest sprawna komunikacja pomiędzy odległymi procesami Podstawowym

Bardziej szczegółowo

Sieci 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 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ółowo

Podstawowe typy serwerów

Podstawowe typy serwerów Podstawowe typy serwerów 1. Algorytm serwera. 2. Cztery podstawowe typy serwerów. iteracyjne, współbieżne, połączeniowe, bezpołączeniowe. 3. Problem zakleszczenia serwera. 1 Algorytm serwera 1. Utworzenie

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie 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ółowo

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

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski Transport część 2: protokół TCP Sieci komputerowe Wykład 6 Marcin Bieńkowski Protokoły w Internecie warstwa aplikacji HTTP SMTP DNS NTP warstwa transportowa TCP UDP warstwa sieciowa IP warstwa łącza danych

Bardziej szczegółowo

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

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski Transport część 2: protokół TCP Sieci komputerowe Wykład 6 Marcin Bieńkowski Protokoły w Internecie warstwa aplikacji HTTP warstwa transportowa SMTP TCP warstwa sieciowa warstwa łącza danych warstwa fizyczna

Bardziej szczegółowo

Oprogramowanie komunikacyjne dla Internetu rzeczy Laboratorium nr 4 komunikacja unicastowa IPv6

Oprogramowanie 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ółowo

2. Interfejs gniazd. 2.1. Gniazdo

2. Interfejs gniazd. 2.1. Gniazdo 2. 2.1. Gniazdo Gniazdo (ang. socket): pewna abstrakcja wykorzystywana do wysyłania lub otrzymywania danych z innych procesów. Pełni rolę punktu końcowego w linii komunikacyjnej. to interfejs między programem

Bardziej szczegółowo

MODEL WARSTWOWY PROTOKOŁY TCP/IP

MODEL 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ółowo

Sieci 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 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ółowo

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

Gniazda 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ółowo

Aplikacja Sieciowa wątki po stronie klienta

Aplikacja 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ółowo

Programowanie Sieciowe 1

Programowanie 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ółowo

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

ZESZYTY 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ółowo

Tryb bezpołączeniowy (datagramowy)

Tryb bezpołączeniowy (datagramowy) Tutaj trochę szerzej opisałam mechanizm gniazdek. 3 tematy wymienione poniŝej przeplatają się ze sobą więc wrzuciłam je do jednego worka i przedstawiłam w takim porządku, który wydawał mi się najbardziej

Bardziej szczegółowo

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

Gniazda BSD. Procesy w środowisku sieciowym. Gniazda podstawowe funkcje dla serwera. Gniazda podstawowe funkcje dla klienta Procesy w środowisku sieciowym! Obsługa! Protokół! Numery portów i ogólnie znane adresy! Połączenie (asocjacja) i gniazdo (półasocjacja)! Model klient-serwer " Serwer - bierne otwarcie kanału " Klient

Bardziej szczegółowo

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

Programowanie aplikacji równoległych i rozproszonych. Wykład 4 Wykład 4 p. 1/44 Programowanie aplikacji równoległych i rozproszonych Wykład 4 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Gniazda - Wstęp

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Inżynierii Elektrycznej i Komputerowej Politechnika Krakowska programowanie usług sieciowych Dziedzina Unix laboratorium: 06 Kraków, 2014 06. Programowanie Usług Sieciowych

Bardziej szczegółowo

Projektowanie oprogramowania systemów KOMUNIKACJA SIECIOWA I SYSTEMY RPC

Projektowanie oprogramowania systemów KOMUNIKACJA SIECIOWA I SYSTEMY RPC Projektowanie oprogramowania systemów KOMUNIKACJA SIECIOWA I SYSTEMY RPC plan programowanie sieciowe BSD/POSIX Socket API systemy RPC interfejsy obiektowe CORBA DCOM RMI WebServices WSDL/SOAP XML-RPC REST

Bardziej szczegółowo

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

Politechnika Łó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ółowo

TRX API opis funkcji interfejsu

TRX API opis funkcji interfejsu TRX Krzysztof Kryński Cyfrowe rejestratory rozmów seria KSRC TRX API opis funkcji interfejsu Kwiecień 2013 Copyright TRX TRX ul. Garibaldiego 4 04-078 Warszawa Tel. 22 871 33 33 Fax 22 871 57 30 www.trx.com.pl

Bardziej szczegółowo

PROTOKOŁY WARSTWY TRANSPORTOWEJ

PROTOKOŁY WARSTWY TRANSPORTOWEJ PROTOKOŁY WARSTWY TRANSPORTOWEJ Na bazie protokołu internetowego (IP) zbudowane są dwa protokoły warstwy transportowej: UDP (User Datagram Protocol) - protokół bezpołączeniowy, zawodny; TCP (Transmission

Bardziej szczegółowo

Sieci komputerowe Warstwa transportowa

Sieci 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ółowo

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

Gniazda - Wstęp. Oprogramowanie systemów równoległych i rozproszonych. Sposób komunikacji. Domena adresowa. olas@icis.pcz.pl Gniazda - Wstęp Oprogramowanie systemów równoległych i rozproszonych Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Domena adresowa 1/??

Bardziej szczegółowo

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

Plan 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ółowo

Sieci Komputerowe Modele warstwowe sieci

Sieci 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ółowo

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

Warstwa transportowa. Warstwa transportowa. Enkapsulacja. Zapewnienie niezawodnego przesyłania danych /wg ISO/ Transmisja bezpołączeniowa Warstwa transportowa Warstwa 4 modelu OSI Warstwa 3 modelu TCP/IP warstwa aplikacji warstwa prezentacji warstwa sesji warstwa transportowa warstwa sieci warstwa łącza danych warstwa fizyczna warstwa aplikacji

Bardziej szczegółowo

Krótkie wprowadzenie do korzystania z OpenSSL

Krótkie wprowadzenie do korzystania z OpenSSL Krótkie wprowadzenie do korzystania z OpenSSL Literatura: http://www.openssl.org E. Rescola, "An introduction to OpenSSL Programming (PartI)" (http://www.linuxjournal.com/article/4822) "An introduction

Bardziej szczegółowo

Podstawy 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 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ółowo

Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i sieciowej

Sieci 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ółowo

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq) Program my_ping: wysłanie komunikatu ICMP z żądaniem echa Struktura icmp (plik netinet/ip_icmp.h) 0 7 8 15 16 31 TYP (icmp_type) KOD (icmp_code) IDENTYFIKATOR (icmp_id) SUMA KONTROLNA (icmp_cksum) NUMER

Bardziej szczegółowo

Model sieci OSI, protokoły sieciowe, adresy IP

Model 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ółowo

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

Stos 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ółowo

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

DR 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ółowo

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

Laboratorium - 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ółowo

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

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ INTERNET PROTOCOL (IP) INTERNET CONTROL MESSAGE PROTOCOL (ICMP) WSTĘP DO SIECI INTERNET Kraków, dn. 7 listopada 2016 r. PLAN IPv4: schemat nagłówka ICMP: informacje

Bardziej szczegółowo

Model OSI. mgr inż. Krzysztof Szałajko

Model 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ółowo

Gniazda. S. Samolej: Gniazda 1

Gniazda. S. Samolej: Gniazda 1 Gniazda dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych na: http://wazniak.mimuw.edu.pl/ oraz na materiałach

Bardziej szczegółowo

Sieci 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 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ółowo

Programowanie sieciowe

Programowanie 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ółowo

Adresy w sieciach komputerowych

Adresy 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ółowo

Przesyłania danych przez protokół TCP/IP

Przesył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ółowo

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

Warstwa 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ółowo

1. Model klient-serwer

1. Model klient-serwer 1. 1.1. Model komunikacji w sieci łącze komunikacyjne klient serwer Tradycyjny podziała zadań: Klient strona żądająca dostępu do danej usługi lub zasobu Serwer strona, która świadczy usługę lub udostępnia

Bardziej szczegółowo

Architektura typu klient serwer: uproszczony klient POP3

Architektura 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ółowo

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

TCP - receive buffer (queue), send buffer (queue) BSD sockets c.d. TCP - receive buffer (queue), send buffer (queue) Z każdym gniazdem sieciowym są skojarzone: Bufor do odbierania danych (ang. receive buffer) Przychodzące dane są umieszczane w buforze

Bardziej szczegółowo

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Sieci 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ółowo

Sieci komputerowe 1 DSRG

Sieci komputerowe 1 DSRG Sieci komputerowe 1 Sieci komputerowe 2 Warstwa transportowa Warstwa 4 modelu OSI Warstwa 3 modelu TCP/IP warstwa aplikacji warstwa prezentacji warstwa aplikacji warstwa sesji warstwa transportowa warstwa

Bardziej szczegółowo

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

Zarzą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ółowo

1. Model klient-serwer

1. Model klient-serwer 1. Model klient-serwer 1.1. Model komunikacji w sieci łącze komunikacyjne klient serwer Tradycyjny podział zadań: Klient strona żądająca dostępu do danej usługi lub zasobu Serwer strona, która świadczy

Bardziej szczegółowo

Sieci komputerowe - Protokoły warstwy transportowej

Sieci 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ółowo

Zadanie 2: transakcyjny protokół SKJ (2015)

Zadanie 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ółowo

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas)

Dr 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ółowo

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.

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. 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ółowo

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Opis protokołu RPC. Grzegorz Maj nr indeksu: Opis protokołu RPC Grzegorz Maj nr indeksu: 236095 1 Streszczenie Niniejszy dokument opisuje specyfikację protokołu RQP (Remote Queues Protocol). W jego skład wchodzą: opis celów protokołu; opis założeń

Bardziej szczegółowo

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

Wykł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ółowo

MODEL OSI A INTERNET

MODEL 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ółowo

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

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej SEGMENT TCP CZ. I Numer portu źródłowego (ang. Source port), przeznaczenia (ang. Destination port) identyfikują aplikacje wysyłającą odbierającą dane, te dwie wielkości wraz adresami IP źródła i przeznaczenia

Bardziej szczegółowo

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

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi) Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie dziesiąte Temat: Gniazda BSD protokoły internetowe Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Usługi sieciowe w

Bardziej szczegółowo

Tworzenie aplikacji rozproszonej w Sun RPC

Tworzenie aplikacji rozproszonej w Sun RPC Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki

Bardziej szczegółowo

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ] JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA Marcin Lewandowski [ mlew@ippt.gov.pl ] PROGRAMOWANIE SIECIOWE 2 TCP/IP = UDP + TCP TCP/IP składa się z dwóch podstawowych protokołów: TCP i UDP. TCP jest

Bardziej szczegółowo

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Moduł Ethernetowy. instrukcja obsługi. Spis treści Moduł Ethernetowy instrukcja obsługi Spis treści 1. Podstawowe informacje...2 2. Konfiguracja modułu...4 3. Podłączenie do sieci RS-485 i LAN/WAN...9 4. Przywracanie ustawień fabrycznych...11 www.el-piast.com

Bardziej szczegółowo

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011

Obsługa plików. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 25 września 2011 Obsługa plików Systemy Operacyjne 2 laboratorium Mateusz Hołenko 25 września 2011 Plan zajęć 1 Pliki w systemie Linux i-węzły deskryptory plików 2 Operacje na plikach otwieranie i zamykanie zapis i odczyt

Bardziej szczegółowo

Sieci komputerowe - Wstęp do intersieci, protokół IPv4

Sieci 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ółowo

Monitorowanie Sieci nonblocking content packet filtering

Monitorowanie Sieci nonblocking content packet filtering Monitorowanie Sieci nonblocking content packet filtering praca inŝynierska prowadzący: prof. dr hab. inŝ. Zbigniew Kotulski Michał Zarychta 1 Plan prezentacji ZałoŜenia projektu Sniffer Technologie WinPcap

Bardziej szczegółowo

Model warstwowy Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa Warstwa aplikacj. Protokoły sieciowe

Model 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ółowo

POŁĄ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 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ółowo

Biblioteka standardowa - operacje wejścia/wyjścia

Biblioteka standardowa - operacje wejścia/wyjścia Biblioteka standardowa - operacje wejścia/wyjścia Przemysław Gawroński D-10, p. 234 Wykład 6 15 stycznia 2019 (Wykład 6) Biblioteka standardowa - operacje wejścia/wyjścia 15 stycznia 2019 1 / 14 Outline

Bardziej szczegółowo

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

Model OSI/ISO. Komputer B. Warstwy w modelu OSI aplikacji. aplikacji. prezentacji Komputer A. prezentacji. sesji. sesji. komunikacja wirtualna 1 Plan wykładu 1. Model ISO/OSI warstwy modelu OSI transmisja w modelu OSI 2. Model TCP/IP protokół UDP protokół TCP 3. Połączenie i rozłączenie w TCP 4. Programowanie z wykorzystaniem gniazd. 2 Model

Bardziej szczegółowo

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Wykł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ółowo

Bazy Danych i Usługi Sieciowe

Bazy 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ółowo

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

TCP/IP formaty ramek, datagramów, pakietów... SIECI KOMPUTEROWE DATAGRAM IP Protokół IP jest przeznaczony do sieci z komutacją pakietów. Pakiet jest nazywany przez IP datagramem. Każdy datagram jest podstawową, samodzielną jednostką przesyłaną w sieci

Bardziej szczegółowo

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1

Architektury systemów rozproszonych LABORATORIUM. Ćwiczenie 1 Architektury systemów rozproszonych LABORATORIUM Ćwiczenie 1 Temat: Aplikacja klient-serwer - implementacja w środowisku QT Creator. Przykładowy projekt aplikacji typu klient - serwer został udostępniony

Bardziej szczegółowo

Adresowanie 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 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ółowo

Test sprawdzający wiadomości z przedmiotu Systemy operacyjne i sieci komputerowe.

Test sprawdzający wiadomości z przedmiotu Systemy operacyjne i sieci komputerowe. Literka.pl Test sprawdzający wiadomości z przedmiotu Systemy operacyjne i sieci komputerowe Data dodania: 2010-06-07 09:32:06 Autor: Marcin Kowalczyk Test sprawdzający wiadomości z przedmiotu Systemy operacyjne

Bardziej szczegółowo

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

Plan 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 Funkcje warstwy sieciowej Adresacja w warstwie sieciowej Protokół IP Protokół ARP Protokoły RARP, BOOTP, DHCP

Bardziej szczegółowo

Protokoły sieciowe model ISO-OSI Opracował: Andrzej Nowak

Protokoł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ółowo

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1 Komunikacja międzyprocesowa Krzysztof Banaś Systemy rozproszone 1 Komunikacja międzyprocesowa Dla funkcjonowania systemów rozproszonych i równoległych z pamięcią rozproszoną konieczna jest sprawna komunikacja

Bardziej szczegółowo

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko TCP/IP Warstwa aplikacji 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ółowo

iseries Programowanie z użyciem gniazd

iseries Programowanie z użyciem gniazd iseries Programowanie z użyciem gniazd iseries Programowanie z użyciem gniazd Copyright International Business Machines Corporation 2000, 2001. Wszelkie prawa zastrzeżone. Spis treści Część 1. Programowanie

Bardziej szczegółowo

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

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,

Bardziej szczegółowo

Protokoły internetowe

Protokoł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ółowo

Warstwy i funkcje modelu ISO/OSI

Warstwy 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ółowo

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Zestaw 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ółowo

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

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący Zarządzanie w sieci Protokół Internet Control Message Protocol Protokół sterujący informacje o błędach np. przeznaczenie nieosiągalne, informacje sterujące np. przekierunkowanie, informacje pomocnicze

Bardziej szczegółowo