1. Ćwiczenia Linux/Knoppix

2. Skaner sieci - Ethereal

3. Automaty skończone

4. SMTP, POP3, HTTP kontynuacja

5. Warstwa tranportowa

7. Protokoły rutingu

8. Warstwa sieci

9. Powtórzenie materiału

Wyjście

Ćwiczenia - warstwa transportowa

Zadanie 1

Serwer www (np. apache) odbiera segment TCP w postaci:

IP
Źródło: 80.55.40.30Cel: 148.81.141.19
Inne pola IP
TCP
Źródło: 2034Cel: 80
Flaga: SYN


Inne pola TCP
Dane

Uzupełnij poniższą tabelkę, która będzie odpowiedzią serwera. Napisz, co według Ciebie jest w polu danych w pierwszym i drugim segmencie.

Źródło: 148.81.141.19 Cel: 80.55.40.30

Inne pola IP

Źródło: 80 Cel: 2034
Flaga: SYN, ACK  

Inne pola TCP

Dane

Zadanie 2

Wypisz co najmniej 4 protokoły warstwy aplikacji, które korzystają z UDP i 4 które korzystają z TCP.

UDP

TCP

DNS, NFS HTTP
RTP FTP, telnet
RIP SMTP, POP3
Real Audio IMAP

Czy wszystkie wypisane protokoły korzystające z UDP, zawsze z niego korzystają, czy zdarzają się sytuacje, kiedy UDP jest zastępowane prze TCP, jeśli tak, to w jakich sytuacjach?

Zadanie 3

Uzupełnij tabelę:

FlagaOpis

URG

Ta flaga wskazuje, że dane są ważne.
ACK

Potwierdzenie.

PSH

Natychmiastowe dostarczenie do wyższej warstwy.

RST

Zerowanie. Resetuje połączenie, gdy wystąpi niemożliwy do naprawy błąd.

ACK, SYN

Ta flaga wskazuje chęć nawiązania połączenia i ustawienia numeru sekwencyjnego.

FIN

Ta flaga wskazuje chęć zakończenia połączenia.

Zadanie 4

Załóżmy, że host A wysyła do serwera „echo” 10.2.2.6 port 7 (7/TCP) literę Q, w odpowiedzi dostaje tą samą literę. Następnie host A kończy połączenie. Przedstaw wszystkie segmenty, które zostaną wysłane i odebrane przez hosta A, zakładając, że:

Port źródłowy = 1030

Startowy numer sekwencyjny dla hosta A to: 44

Startowy numer sekwencyjny dla serwera „echo” to: 77

Zakładamy że żaden segment nie zginie, ani nie zostanie uszkodzony.

Jako pomoc możesz wykorzystać ethereala.

Edytuj plik /etc/xined.d/echo i zamień linie disable = yes na disable = no i zrestaruj usługę xinetd poleceniem:

/etc/init.d/xinetd restart

Następnie odpal ethereala i połącz się telnetem na port 7 do komputera obok. Wyślij jeden znak i zakończ połączenie naciskając kombinację klawiszy Ctrl-] i wpisz quit. Zatrzymaj ethereala i przefiltruj dane po tcp.

Kierunek

Port źródłowy

Port docelowy

Seq

ACK

Flagi

Dane

Do serwera

1030

7

44

0

syn

 

Do hosta A

7

1030

77

45

syn, ack

 

Do serwera

1030

7

45

78

ack

 

Do serwera

1030

7

45

78

psh,ack

Q

Do hosta A

7

1030

78

46

ack

 

Do hosta A

7

1030

78

46

psh,ack

Q

Do serwera

1030

7

46

79

ack

 

Do serwera

1030

7

46

79

fin,ack

 

Do hosta A

7

1030

79

47

fin,ack

 

Do serwera

1030

7

47

80

ack

 

Zadanie 5

Klient próbuje połączyć się na serwer na port 80 przez protokół TCP, jaką dostanie odpowiedź, jeśli tam nie działa żaden serwer który nasłuchuje na porcie 80?          RST, ACK

Klient wysyła segment UDP na port 53, ale nie ma tam żadnej usługi działającej na tym porcie, jaką odpowiedź dostaje?

Jeśli nie znasz odpowiedzi, możesz użyć ethereala. Pomocne aplikacje: telnet (TCP), dig (udp)        ICMP Port unavailable

Zadanie 6

Uzupełnij diagram stanów, dla klienta i dla serwera:

klient

serwer

Zadanie 7

Przedstaw transmisje TCP w której okno zwiększa się do 3 segmentów. Załóżmy, że okno na początku jest wielkości jednego segmentu, następnym razem, dwóch, potem trzech, a po nich zakończenie transmisji.