28
Programowanie Sieciowe Programowanie Sieciowe mgr in˙ z. Robert Nowotniak Katedra Informatyki Stosowanej Wydzial Elektrotechniki, Elektroniki, Informatyki i Automatyki Politechnika Lódzka 2011 Robert Nowotniak 2011

Programowanie Sieciowe - Wyklad 1

  • Upload
    robert

  • View
    5.570

  • Download
    5

Embed Size (px)

Citation preview

Programowanie Sieciowe

Programowanie Sieciowe

mgr inz. Robert Nowotniak

Katedra Informatyki StosowanejWydział Elektrotechniki, Elektroniki, Informatyki i Automatyki

Politechnika Łódzka

2011

Robert Nowotniak 2011

Programowanie Sieciowe

Kontakt

Strona przedmiotu: http://rnowotniak.kis.p.lodz.pl/ps/E-mail: [email protected]: 323 (prosze o umawianie sie droga mailowa!)Karta przedmiotu na ECTS label:http://ectslabel.p.lodz.pl/?l=pl&s=programSiatka&w=WEE&p=2874&sp=2#

Robert Nowotniak 2011

Programowanie Sieciowe

Plan Wykładu 1

Informacje ogólne i organizacyjne1 Wymagania wstepne2 Harmonogram semestru, terminy3 Zasady, warunki zaliczenia4 Zakres materiału

Srodowisko Visual Studio 2010, podstawy C#1 Srodowisko Visual Studio 20102 Aplikacje w srodowisku tekstowym i graficznym3 Instrukcje sterujace, typy danych, operacje na łancuchach

tekstowych4 Aplikacje konsolowe5 Aplikacje w srodowisku graficznym6 Kontrolki, obiekty, własnosci, zdarzenia

Robert Nowotniak 2011

Programowanie Sieciowe

Plan Wykładu 1

Informacje ogólne i organizacyjne1 Wymagania wstepne2 Harmonogram semestru, terminy3 Zasady, warunki zaliczenia4 Zakres materiału

Srodowisko Visual Studio 2010, podstawy C#1 Srodowisko Visual Studio 20102 Aplikacje w srodowisku tekstowym i graficznym3 Instrukcje sterujace, typy danych, operacje na łancuchach

tekstowych4 Aplikacje konsolowe5 Aplikacje w srodowisku graficznym6 Kontrolki, obiekty, własnosci, zdarzenia

Robert Nowotniak 2011

Programowanie Sieciowe

Czego dotyczy przedmiot?

1 Komunikacja w sieciach komputerowychz poziomu jezyków programowania

2 Ustanawianie i obsługa połaczen miedzy hostami w sieci(klient TCP/UDP etc.)

3 Udostepnianie usług w sieci (pisanie serwerów TCP/UDP)

Robert Nowotniak 2011

Programowanie Sieciowe

Wymagania wstepne do przedmiotu

Zgodnie z karta przedmiotu:1 Podstawy Programowania2 Programowanie Obiektowe3 Sieci Komputerowe

Robert Nowotniak 2011

Programowanie Sieciowe

Podstawa zaliczenia przedmiotu

1 Czesc teoretyczna (Wykład) (25% oceny koncowej)krótki sprawdzian pisemny na ostatnich zajeciach (27.XI)

2 Laboratorium (75% oceny koncowej)wykonanie cwiczen wstepnych (25% oceny z laboratorium)PROJEKT (75% oceny z laboratorium)

Robert Nowotniak 2011

Programowanie Sieciowe

Harmonogram semestru

1 Zajecia 1 – zajecia wprowadzajace, wymagania,harmonogram, zakres materiału, warunki zaliczenia

2 Zajecia 2 – programowanie klientów usług, połaczeniaTCP/IP, nawiazywanie połaczen

3 Zajecia 3 – serwery usług (TCP, UDP), nasłuchiwanie naportach, tekstowe i binarne protokoły komunikacji

4 Zajecia 4 – połaczenia szyfrowane (SSL), mechanizmyzwielokrotniania wejscia/wyjscia, serwery wielowatkowe

5 Zajecia 5 – sprawdzian, prezentacje projektów6 29.I.2011 – ostatni dzien semestru: ostatni mozliwy termin

zaliczenia przedmiotu

Robert Nowotniak 2011

Programowanie Sieciowe

Harmonogram semestru

1 Zajecia 1 – zajecia wprowadzajace, wymagania,harmonogram, zakres materiału, warunki zaliczenia

2 Zajecia 2 – programowanie klientów usług, połaczeniaTCP/IP, nawiazywanie połaczen

3 Zajecia 3 – serwery usług (TCP, UDP), nasłuchiwanie naportach, tekstowe i binarne protokoły komunikacji

4 Zajecia 4 – połaczenia szyfrowane (SSL), mechanizmyzwielokrotniania wejscia/wyjscia, serwery wielowatkowe

5 Zajecia 5 – sprawdzian, prezentacje projektów6 29.I.2011 – ostatni dzien semestru: ostatni mozliwy termin

zaliczenia przedmiotu

Robert Nowotniak 2011

Programowanie Sieciowe

Harmonogram semestru

1 Zajecia 1 – zajecia wprowadzajace, wymagania,harmonogram, zakres materiału, warunki zaliczenia

2 Zajecia 2 – programowanie klientów usług, połaczeniaTCP/IP, nawiazywanie połaczen

3 Zajecia 3 – serwery usług (TCP, UDP), nasłuchiwanie naportach, tekstowe i binarne protokoły komunikacji

4 Zajecia 4 – połaczenia szyfrowane (SSL), mechanizmyzwielokrotniania wejscia/wyjscia, serwery wielowatkowe

5 Zajecia 5 – sprawdzian, prezentacje projektów6 29.I.2011 – ostatni dzien semestru: ostatni mozliwy termin

zaliczenia przedmiotu

Robert Nowotniak 2011

Programowanie Sieciowe

Harmonogram semestru

1 Zajecia 1 – zajecia wprowadzajace, wymagania,harmonogram, zakres materiału, warunki zaliczenia

2 Zajecia 2 – programowanie klientów usług, połaczeniaTCP/IP, nawiazywanie połaczen

3 Zajecia 3 – serwery usług (TCP, UDP), nasłuchiwanie naportach, tekstowe i binarne protokoły komunikacji

4 Zajecia 4 – połaczenia szyfrowane (SSL), mechanizmyzwielokrotniania wejscia/wyjscia, serwery wielowatkowe

5 Zajecia 5 – sprawdzian, prezentacje projektów6 29.I.2011 – ostatni dzien semestru: ostatni mozliwy termin

zaliczenia przedmiotu

Robert Nowotniak 2011

Programowanie Sieciowe

Harmonogram semestru

1 Zajecia 1 – zajecia wprowadzajace, wymagania,harmonogram, zakres materiału, warunki zaliczenia

2 Zajecia 2 – programowanie klientów usług, połaczeniaTCP/IP, nawiazywanie połaczen

3 Zajecia 3 – serwery usług (TCP, UDP), nasłuchiwanie naportach, tekstowe i binarne protokoły komunikacji

4 Zajecia 4 – połaczenia szyfrowane (SSL), mechanizmyzwielokrotniania wejscia/wyjscia, serwery wielowatkowe

5 Zajecia 5 – sprawdzian, prezentacje projektów6 29.I.2011 – ostatni dzien semestru: ostatni mozliwy termin

zaliczenia przedmiotu

Robert Nowotniak 2011

Programowanie Sieciowe

Harmonogram semestru

1 Zajecia 1 – zajecia wprowadzajace, wymagania,harmonogram, zakres materiału, warunki zaliczenia

2 Zajecia 2 – programowanie klientów usług, połaczeniaTCP/IP, nawiazywanie połaczen

3 Zajecia 3 – serwery usług (TCP, UDP), nasłuchiwanie naportach, tekstowe i binarne protokoły komunikacji

4 Zajecia 4 – połaczenia szyfrowane (SSL), mechanizmyzwielokrotniania wejscia/wyjscia, serwery wielowatkowe

5 Zajecia 5 – sprawdzian, prezentacje projektów6 29.I.2011 – ostatni dzien semestru: ostatni mozliwy termin

zaliczenia przedmiotu

Robert Nowotniak 2011

Programowanie Sieciowe

Laboratorium

1 proste zadania czastkowe, cwiczebne (25%)obsługa gniazd sieciowych (odczyt, zapis)klienty usług sieciowychserwery usług, nasłuchiwanie na portach

2 PROJEKT (75%)

Oddawanie zadania z opóznieniem (w stosunku doharmonogramu) wyklucza mozliwosc uzyskania maksymalnejoceny za to zadanie. Kazdy kolejny termin (zjazd) oddaniazadania obniza maksymalna ocene o 0.5.

Przedmiot musi byc zaliczony w trakcie semestru.

Robert Nowotniak 2011

Programowanie Sieciowe

Laboratorium

1 proste zadania czastkowe, cwiczebne (25%)obsługa gniazd sieciowych (odczyt, zapis)klienty usług sieciowychserwery usług, nasłuchiwanie na portach

2 PROJEKT (75%)

Oddawanie zadania z opóznieniem (w stosunku doharmonogramu) wyklucza mozliwosc uzyskania maksymalnejoceny za to zadanie. Kazdy kolejny termin (zjazd) oddaniazadania obniza maksymalna ocene o 0.5.

Przedmiot musi byc zaliczony w trakcie semestru.

Robert Nowotniak 2011

Programowanie Sieciowe

Laboratorium

1 proste zadania czastkowe, cwiczebne (25%)obsługa gniazd sieciowych (odczyt, zapis)klienty usług sieciowychserwery usług, nasłuchiwanie na portach

2 PROJEKT (75%)

Oddawanie zadania z opóznieniem (w stosunku doharmonogramu) wyklucza mozliwosc uzyskania maksymalnejoceny za to zadanie. Kazdy kolejny termin (zjazd) oddaniazadania obniza maksymalna ocene o 0.5.

Przedmiot musi byc zaliczony w trakcie semestru.

Robert Nowotniak 2011

Programowanie Sieciowe

Opis wykładu

1 Programowanie aplikacji klient-serwer w sieciach TCP/IP2 Programowy dostep do warstwy transportowej, warstwy

sieci, warstwy łacza danych3 Programowanie aplikacji klient-serwer z uzyciem

protokołów TCP/IP, UDP/IP oraz systemu gniazd Berkeley4 Architektury aplikacji serwerowych

jednowatkowe/wielowatkowe5 Przykłady obsługi gniazd w wybranych jezykach

programowania6 Techniki bezpiecznego przesyłu danych w sieciach IP,

tunelowanie i szyfrowanie ruchu

Robert Nowotniak 2011

Programowanie Sieciowe

Laboratorium – Przykładowe tematy projektów

1 Prosta gra logiczna: kółko i krzyzyk, statki, poker, warcaby,szachy etc., oferujaca rozgrywke przez siec

2 Serwer i/lub klient prostej usługi sieciowej: np. prosty klientIRC lub prosty serwer WWW

3 Program umozliwiajacy przesyłanie danych przez siec(w rodzaju FTP)

4 Klient+serwer umozliwiajace zdalne zarzadzaniekomputerem (zarzadzanie plikami, wyłaczenie komputeraetc.)

5 Klient+serwer umozliwiajace rozmowy Internetowe dlawielu uzytkowników

6 Sieciowa gra zrecznosciowa w rodzaju pong lub asteroids7 Serwer udostepniajacy muzyke8 Własna propozycja tematu

Robert Nowotniak 2011

Programowanie Sieciowe

Przykładowe projekty

Robert Nowotniak 2011

Programowanie Sieciowe

Przykładowe projekty

Robert Nowotniak 2011

Programowanie Sieciowe

Przykładowe projekty

Robert Nowotniak 2011

Programowanie Sieciowe

Docelowy wymagany zakres wiedzy

1 Umiejetnosc ustanawiania i obsługi połaczen sieciowychz poziomu wybranego jezyka programowania

2 Umiejetnosc własciwego doboru protokołu warstwytransportowej oraz samodzielnego projektowania protokołuwarstwy aplikacji

3 Znajomosc podstawowych narzedzi monitorowaniapołaczen sieciowy, wgladu w zawartosc i w statystykipołaczen sieciowych

4 Ogólna znajomosc interfejsu gniazd Berkeley(socket, bind, listen, connect, ...)

Robert Nowotniak 2011

Programowanie Sieciowe

Docelowy wymagany zakres wiedzy

1 Umiejetnosc ustanawiania i obsługi połaczen sieciowychz poziomu wybranego jezyka programowania

2 Umiejetnosc własciwego doboru protokołu warstwytransportowej oraz samodzielnego projektowania protokołuwarstwy aplikacji

3 Znajomosc podstawowych narzedzi monitorowaniapołaczen sieciowy, wgladu w zawartosc i w statystykipołaczen sieciowych

4 Ogólna znajomosc interfejsu gniazd Berkeley(socket, bind, listen, connect, ...)

Robert Nowotniak 2011

Programowanie Sieciowe

System gniazd Berkeley

Interfejs Berkeley sockets API wywodzi sie z wczesnych wersjisystemu UNIX (4.2BSD1) i jest obecnie de facto standardemobsługi gniazd sieciowych w jezykach programowania.Obsługa komunikacji sieciowej w wiekszosc współczesnychjezyków bazuje na interfejsie Berkeley sockets.

Elementy interfejsu Berkeley socketsfunkcje: socket(), connect(), bind(), listen(), accept(), close(),select(), gethostbyname(), gethostbyaddr(), ...

1Berkeley Software Distribution – system operacyjny UNIX, rozwijany naUniwersytecie Kalifornijskim w Berkeley w latach 1977-1995

Robert Nowotniak 2011

Programowanie Sieciowe

System gniazd Berkeley

Interfejs Berkeley sockets API wywodzi sie z wczesnych wersjisystemu UNIX (4.2BSD1) i jest obecnie de facto standardemobsługi gniazd sieciowych w jezykach programowania.Obsługa komunikacji sieciowej w wiekszosc współczesnychjezyków bazuje na interfejsie Berkeley sockets.

Elementy interfejsu Berkeley socketsfunkcje: socket(), connect(), bind(), listen(), accept(), close(),select(), gethostbyname(), gethostbyaddr(), ...

1Berkeley Software Distribution – system operacyjny UNIX, rozwijany naUniwersytecie Kalifornijskim w Berkeley w latach 1977-1995

Robert Nowotniak 2011

Programowanie Sieciowe

Plan wykładu

Informacje ogólne1 Wymagania wstepne2 Harmonogram semestru, terminy3 Zasady, warunki zaliczenia4 Zakres materiału

Srodowisko Visual Studio 2010, podstawy C#1 Srodowisko Visual Studio 20102 Aplikacje w srodowisku tekstowym i graficznym3 Instrukcje sterujace, typy danych, operacje na łancuchach

tekstowych4 Aplikacje konsolowe5 Aplikacje w srodowisku graficznym6 Kontrolki, obiekty, własnosci, zdarzenia

Robert Nowotniak 2011

Programowanie Sieciowe

Plan wykładu

Informacje ogólne1 Wymagania wstepne2 Harmonogram semestru, terminy3 Zasady, warunki zaliczenia4 Zakres materiału

Srodowisko Visual Studio 2010, podstawy C#1 Srodowisko Visual Studio 20102 Aplikacje w srodowisku tekstowym i graficznym3 Instrukcje sterujace, typy danych, operacje na łancuchach

tekstowych4 Aplikacje konsolowe5 Aplikacje w srodowisku graficznym6 Kontrolki, obiekty, własnosci, zdarzenia

Robert Nowotniak 2011

Programowanie Sieciowe

( czesc cwiczeniowaVS10, C#, wprowadzenie

)

Robert Nowotniak 2011