Transportní vrstva - akela.mendelu.czlidak/site/slidy2008/prednaska14.pdf · Počítačové sítě Transportní vrstva • Transportní vrstva poskytuje službu aplikační vrstvě

Embed Size (px)

Citation preview

  • Potaov stTransportn vrstva

    ICMP IGMP OSPF

    TCPUDP Transportn vrstva

    Rozhran protokol

    Rozhran slueb

    1

    6

    Ethernetdriver

    ARP RARP

    IP

    Vrstva sovho rozhran

    Sov vrstva

    17protokol

    SAP

    890201

    Rozhran pstupu k I/O

  • Systm AUivatel transportn sluby

    Systm BUivatel transportn sluby

    Transportn Transportn

    Aplikan vrstva

    Sluby poskytovan uivateli transportu dat

    DATADATA

    2

    DATA

    Transportn entita

    Transportn entita

    Sov vrstva

    Transportn vrstva

    transport dat

    Sluby poadovan od sov vrstvy

    DATA

  • Potaov stTransportn vrstva

    Transportn vrstva poskytuje slubu aplikan vrstv

    Je nejni vrstvou, na kterou se odvolvaj sov aplikace (uivatelsk a systmov)

    Transportn sluba sekvenn penos dat mezi komunikujcmi procesy

    3

    komunikujcmi procesy

    Vytv souasn vce paralelnch transportnch spojen

    Transportn vrstva zahrnuje 2 transportn protokoly

    UDP (User Datagram Protocol)

    TCP (Transmission Control Protocol)

    Transportn protokoly jsou prostedkem, kterm se zajist pro uivatelskou aplikaci spojen dvou pota v IP sti

  • Potaov stTransportn vrstva

    Pstup k transportn vrstv z vrstvy aplikan rozhran slueb

    Multiplexing transportnch slueb a IP slubyAplikan protokol 2

    Aplikan protokol 4

    Aplikan protokol 6

    4IP

    UDP TCP

    Aplikan protokol 3

    Aplikan protokol 1

    Aplikan protokol 5

    Aplikan protokol 7

    porty

  • Potaov stTransportn vrstva

    Rozhran SAP mezi aplikan a transportn vrstvou rozhran slueb identifikace aplikanho protokolu, kter bude transportn slubu pouvat

    slo portu 16 bitov promnn

    Port SAP transportn vrstvy vstup do user-end systmu

    5

    systmu

    Ze strany user-end systmu je port schrnka na obsah transportnho PDU slo portu uruje proces, kter generuje data (smr out) nebo je spotebitelem dat (smr in)

    Soket (socket) IP adresa user-end systmu + slo portu jednoznan identifiktor poskytovatele/spotebitele transportovanch dat v internetu (tj. sovho procesu)

  • Potaov stTransportn vrstva

    Port slo portu dekadick vyjden 1 65535 Adresov prostor port spravuje IANA (Internet

    Assigned Numbers Authority) pevn dan hodnoty pro poskytovatele uritch sovch slueb (tj. procesy typu server)

    6

    procesy typu server) Oblast 1 1023 well-known porty pro znm

    sov sluby Oblast 1024 65635 mon registrace pro firemn

    vvoj, pouit apod., jinak k disposici operanm systmm (pidlovn procesm typu klient spotebitelm sovch slueb) porty alokovan

  • Potaov stTransportn vrstva

    Klient Server

    1025

    10251028

    23X

    Y

    A

    7

    1025

    1028

    23

    Servery pouvaj well-known porty, na kterch oekvaj (naslouchaj) inicializan zprvy klienta. Typicky procesy daemon v OS UNIX

    ZB

    Klienti pouvaj alokovan systmem doasn pidlen porty

  • Potaov stTransportn vrstva - protokoly

    Protokol UDP Sluba nespojovan (connection-less) nespolehliv,

    transport nelze dit

    Velmi efektivn rychl, mal provozn reie

    Pouv se

    8

    Pouv se

    pro aplikace s malm objemem penench dat (zprvy se stanovenou velikost apod.)

    pro aplikace vyadujcch broadcast nebo multicast

    pro aplikace, kter si sprvnost datovch penos samy zabezpe

  • Potaov stTransportn vrstva

    Typick spotebitel transportn sluby UDP -programy pro systmov sov sluby en smrovacch informac implementace protokolu

    RIP

    9

    en systmovch hodin implementace protokolu NTP

    peklady domnovch jmen implementace protokolu DNS

    sprva IP st implementace protokolu SNMP

    aj.

  • Potaov stTransportn vrstva - protokol UDP

    Formt PDU protokolu UDP UDP datagram (UDP paket)

    UDP zhlav UDP data

    Checksum kontroln souet UDP paketu + UDP pseudozhlav

    10

    Zdrojov port

    Dlka paketu Checksum

    Clov port0 15 16 31

    paketu + UDP pseudozhlav

    Zdrojov IP adresa

    Dlka paketu

    Clov IP adresa

    0 15 16 31

    Protokol0

  • Potaov stTransportn vrstva

    UDP paket v IP datagramu

    typicky je jeden UDP paket vysln v jednom IP

    IP zhlav UDP zhlav UDP data (PDU aplikanho protokolu)

    20B 8B

    11

    typicky je jeden UDP paket vysln v jednom IP datagramu

  • Potaov stTransportn vrstva

    Protokol TCP Sluba spojovan (connection- oriented), spolehliv Typ sluby - PAR (Positive Acknowledgement with

    Retransmission)

    Zajist doruen datovch segment ve stejnm poad, v jakm byly odeslny s vylouenm ztrty, bitov

    12

    v jakm byly odeslny s vylouenm ztrty, bitov nesprvnosti a duplicity

    Protokol TCP Vytvo mezi komunikujcmi procesy (jejich porty)

    virtuln osmibitov full-duplex komunikan kanl Pojem: TCP spojen dvojice komunikujcch soket

  • Potaov stTransportn vrstva

    Typicky pouvaj transportn slubu TCP uivatelsk sov aplikace (penos soubor mezi sovmi uzly FTP, relace pes sov terminl TELNET, pstup ke zdrojm systmu WWW HTTP, pedvn elektronickch potovnch zprv SMTP, atd.)

    Komunikace mezi procesy probh ve fzch

    13

    Komunikace mezi procesy probh ve fzch

    1. vytvoen spojen

    2. zen penos proudu dat (sekvence datovch segment) s eventulnm opakovanm odeslnm nekorektn pijatch segment

    3. ukonen spojen

  • Potaov stTransportn vrstva

    Pstup k transportn vrstv z vrstvy aplikan rozhran slueb

    Multiplexing transportnch slueb a IP sluby

    RIP DNSHTTP

    TELNET

    14IP

    UDP TCP

    RTPSNMP SMTP FTP

    porty

  • Potaov stTransportn vrstva

    Formt TCP zhlav

    Poadov slo Sequence Number

    Poadov slo potvrzen Acknowledgement Number

    Window Size

    Zdrojov port Clov port

    Offset dc bity---

    0 15 16 31

    15

    Checksum Urgent Pointer

    TCP volby (Options)

    Window Size Offset dc bity---

    TCP data

  • Potaov stTransportn vrstva

    Sequence Number (SN) je-li nastaven flag SYN, potom je SN poten slo sekvence

    (ISN Initial Sequence Number) nen-li nastaven flag SYN, potom je SN poadov slo prvnho

    datovho oktetu v segmentu (vzhledem k cel sekvenci penench dat v rmci tohoto TCP spojen)

    16

    Acknowledgement Number (ACKN) potvrzovac slo mus bt vyslno bhem celho TCP spojen pedstavuje SN nsledujcho segmentu (tj. kter je oekvn) (viz protokol Positive Acknowledgement with Retransmission)

    Data Offset = dlka zhlav = potek dat (udvno ve slovech - 4 oktety)

  • Potaov stTransportn vrstva

    dc bity Flags 10 15

    URG uruje platnost pole URGENT POINTER ACK - uruje platnost pole ACKN

    dc bity

    URG ACK PSH RST SYN FIN

    17

    ACK - uruje platnost pole ACKN PSH oznamuje, e segment obsahuje data, kter se maj

    bezprostedn pedat clovmu procesu RST vyvol reset TCP spojen SYN iniciuje TCP spojen, vyvol proces synchronizace, tj.

    vmnu SN obou stran FIN iniciuje ukonovac proces TCP spojen (zpravidla v

    ppad konce sekvence dat)

  • Potaov stTransportn vrstva

    Window Size uruje velikost sliding window max. 65535 (poet oktet, kter je mono penst bez ACK)

    Checksum kontroln souet (vetn TCP pseudozhlav viz. UDP pseudozhlav)

    Urgent Pointer specifikuje offset poslednho oktetu urgentnch dat (spolu s dcm bitem URG)

    TCP volby pole promnn dlky (dorovnv se na hranici 2

    18

    TCP volby pole promnn dlky (dorovnv se na hranici 2 oktet) Maximum segment size (2, 4) udv maximln monou

    velikost segmentu penenho v rmci TCP spojen (max. 65535 B)

    Window Scale Factor (3, 3) umon zvten velikosti plovoucho okna (65 535 x 214 )

    Timestamp (8, 10) nastaven asovch znmek na kad penen segment pro men RTT

    Typ Dlka Data

  • Potaov stTransportn vrstva

    TCP spojen: socket A socket B Pklad: 195.178.78.10.22 - 195.178.80.140.10500

    sluba SSH: server klient TCP spojen dynamick objekt v definovanm stavu Stav TCP spojen uruje jeho pedchoz stav a asov

    zvisl udlost

    19

    zvisl udlost pedn dc informace spojen (TCP protokol) pkaz aplikace (poadavek na sputn sluby, poadavek na

    penos dat aplikace, poadavek na ukonen penosu dat aplikace)

    V OS Unix TCP spojen obsluhuje jdro Parametr jdra maximln poet otevench TCP spojen Tabulky TCP spojen (datov struktury) utilita netstat

  • Aplikace TCP/UDP TCP/UDP aplikace

    server X

    klient Z

    server Yserver Z

    klient X

    TCP

    TCP

    20

    server K

    klient W

    klient Z

    klient J

    server J

    klient Y

    klient K

    P

    UDP

    UDP

    Porty

    Well-known

    alokovan

  • Potaov stTransportn vrstva

    Mechanismy zen TCP spojen

    Synchronizace komunikujcch stran ve fzi inicializace (otevrn) TCP spojen si strany vymn sv poten sekvenn sla (ISN Initial Sequence Number).

    Posloupnost pijmanch segment TCP PDU (segment) Posloupnost pijmanch segment TCP PDU (segment) PAR strana potvrzuje korektn pijet pedchozch segment poadovm slem segmentu nsledujcho, tzn. ackB = seqA + 1 a seqB = ackA 1

    zen toku zamezen zahlcen virtulnho kanlu metoda Sliding Window postupn zvyovn velikosti strana pijmac data aplikace uruje maximum pi velikosti okna = 0 spojen zstv oteven

    21

  • Potaov stTransportn vrstva

    Stavy TCP spojen pi normlnm prbhu otevrn

    Klient Server

    LISTEN (passive open)(active open)SYN_SENT

    SYN seq JSYN_RCVD

    22

    ESTABISHED

    SYN seq K, ack J+1

    ack K+1, seq J + 1

  • Potaov stTransportn vrstva

    Klient Server Klient ServerESTABISHED

    seq K+1 ack J+1

    seq J+1 ack K+2

    ESTABISHED

    seq 2 ack 1S A

    1 3S A

    23

    seq K+2 ack J+2

    seq J+1 ack K+2

    seq J+2 ack K+3

    Jednoduch potvrzovn zen Sliding Window (= 3)

    2 .

    3 .

    4 4

    5 5

    S A

    3 2

    4 3

    5 4

  • Potaov stTransportn vrstva

    Stavy TCP spojen pi normlnm prbhu uzavrn Klient Server

    (active close)FIN_WAIT_1

    FIN_WAIT_2

    CLOSE_WAIT (passive close)FIN seq M

    ack M+1

    24

    FIN_WAIT_2 ack M+1

    ack N+1

    FIN seq N

    TIME_WAIT

    LAST_ACK

    CLOSED

  • Potaov stTransportn vrstva

    Pechodov diagram stav TCP spojen

    25