SIDE (IRT 3930) Loeng 9/2010 Infotransport Teema - sõnumid Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst. avots@lr.ttu.ee Sõnumid 289
Infoülekanne Rakendus (teenus) Transporditeenus Seoseta (Connectionless) paketi kohaletoimetamine Sõnumid 290
Infotransport kliendilt serverini Client Application level TCP/UDP Router Router Router IP IP IP IP Hardware Hardware Hardware Hardware Server Application level Router Router TCP/UDP IP IP IP Hardware Hardware Hardware Sõnumid 291
Teenuse (lingi) demultipleks Application Application Application Application Application Transport TCP UDP ICMP IGMP Network IP ARP RARP Link Ethernet Driver incoming frame Sõnumid 292
1024-5000 dest addr Demultiplexing Details FTP User process User process server User process User process TCP src port UDP17 ICMP 1 IGMP ARP Others Novell 2 AppleTalk x0806 source RARP TCP 6 IP header x8035 IP x0800 21 23 TCP dest port protocol type telnet server hdr cksum IP addr Ethernet frame type data CRC header (Ethernet frame types in hex, others in decimal) Sõnumid 293 dest addr 7 source addr echo server discard server 9 data TCP data
Rakendusteenuste tarve Edastusohje protokoll Rakendusteenused Application Services (e-mail, WWW, Telnet, FTP,...) Reliable Stream Transport (TCP) Kasutajadatagrammi protokoll Unreliable Transport Service (UDP) Ühenduseta paketi edastuse teenus (interneti protokoll) Connectionless Packet Delivery Service (IP) Sõnumid 294
Infotransport 4 TCP RFC 793, UDP RFC 768 - Transmission Control Protocol - User Datagram Protocol HTTP - Hypertext Transfer Protocol Sõnumid 295
Pordid IP aadress identifitseerib hosti Hostiga on seotud mitmeid rakendusi Port (16-bitiline identifikaator) määratleb rakenduse Application WWW E-mail Telnet Port 80 25 23 192.18.22.13 Sõnumid 296
Erinevad vaated Sõnumid 297
Baidi transport TCP/IP vahendusel TCP/IP tagab baidivoo ülekande Rakendus Rakendus byte stream TCP/IP Mõningad baidid edastamiseks, mis nende sisu ei tea... byte stream TCP/IP Kohaletoimetatud rakenduse tarbeks Rakendusprotokollid määratlevad voo sisu Sõnumid 298
Transpordiprotokollid Parim võimalik (Best-effort) sama tüüpi teenus, mida kasutab IP User Datagram Protocol (UDP) Kontrollsumma Best-effort Transmission Control Protocol (TCP) Kontrollsumma Töökindel baidivoo kohaletoimetamine Voo ja ummistuste haldus Sõnumid 299
Kient-server mudel Päring saadetakse teadaolevasse porti klient server Vastus saadetakse kliendi porti klient server Sõnumid 300
Protokollid Kasutaja A Kommunikatsioonikeskkond Kasutaja B e-mail klient TCP/UDP server IP server Ethernet driver/kaart SMTP TCP/UDP IP IEEE 802.3 standard e-mail server TCP/UDP server IP server Ethernet driver/kaart (elektrilised) signaalid Sõnumid 301
Ühendus App. Port 1 Port 2 Port 1 Port 2 Transport TCP UDP Network IP Eristus pordi numbri järgi Eristus protokolli järgi Ühenduse ID: Source: (address, port) ja Destination: (address, port) Active open: application requests OS to connect to an (host, port) Passive open: application contacts OS & indicates will accept incoming connection, OS assigns port and listens Sõnumid 302
Sokkel (socket) Määratletakse protokolli, aadresside ja pordi järgi Rakendus võib olla seotud mitme sokliga Sokli kaudu võib pääseda mitme rakenduseni Rakendused Rakendused Viited TCP soklid Soklid UDP soklid seotuna TCP pordid 1 2... 65535 portidega 1 2... 65535 UDP pordid TCP UDP IP Sõnumid 303
TCP Handshaking Reliable data transfer Flow Control Congestion Control Connection-oriented Sõnumid 304
Transpordiprotokoll TCP IP Datagram TCP Encapsulation TCP Segment IP Päis TCP Päis Data 20 Bytes 20 Bytes Ühendusorienteeritud Baidivoog Veakindel, kordusteta infoülekanne Sõnumid 305
Ühenduse loomine (TCP) Client SYN: SeqC ACK: SeqC+1 SYN: SeqS Server ACK: SeqS+1 Three-Way Handshake Each side notifies other of starting sequence number it will use for sending Each side acknowledges other s sequence number SYN-ACK: Acknowledge sequence number + 1 Can combine second SYN with first ACK Sõnumid 306
Tearing Down Connection Either Side Can Initiate Tear Down Send FIN signal I m not going to send any more data Other Side Can Continue Sending Data Half open connection Must continue to acknowledge Acknowledging FIN Acknowledge last sequence number + 1 Sõnumid 307 A FIN, SeqA ACK, SeqA+1 ACK Data FIN, SeqB ACK, SeqB+1 B
TCP päis (RFC 793) 8 8 8 8 SP DP Järjenumber (Seq No) Kinnitus (Ack. No). CRC Data Data Window Urgent... Sõnumid 308
TCP infovahetuse kulg Connection Request Request ACK ACK and Payload Data ACK A N D M E Ü L E K A N N E Termination Request Request ACK Termination Request Connection Terminated IP + TCP header IP + TCP header IP + TCP header + Payload IP + TCP header IP + TCP header IP + TCP header IP + TCP header IP + TCP header TCP ühenduse loomine Andmeülekanne TCP ühenduse katkestamine Sõnumid 309
Järjenumber Baidivoos on igal baidil järjenumber (Sequence Number) 32-bitine loendur Alustatakse uuesti (Wraps around) Algväärtus valitakse alustamisel TCP jagab baidivoo pakettideks ehk segmentideks Paketi pikkus on piiratud MTU Maximum Segment Size Välditakse edasist paketi fragmenteerimist Igal segmandil on järjenumber. Järjenumber näitab segmendi asukohta baidivoos 13450 14950 16050 17550 segment 8 segment 9 segment 10 Sõnumid 310
Aeg Stop&Wait Saatja Vastuvõtja Saatja ei saada järgmist paketti, kui ta pole kindel, et vastuvõtja sai kätte eelmise paketi. Paketi ja kättesaamise kinnituse (ACK) järgnevus võimaldab töökindluse Järjenumbrid võimaldavad vältida topelt pakettide saamise Probleem on edastuse pidev kestmine (keeping the pipe full) Näide: 2 Mbps kanal * 45 ms RTT = 90 kb (11 kb) 1 kb kasutab kanalist 1/11 osa (~10%) Sõnumid 311
Aeg Libisev aken (Sliding Window) Saatja Vastuvõtja Saadetakse mitu paketti enne, kui oodatakse kättesaamise kinnitust (ACK) Kinnituseta saadetavate pakettide maksimaalne arv aken - window Sõnumid 312
Kinnitused ja timeout Saatja Vastuvõtja Saatja Vastuvõtja Time Timeout Timeout Timeout Timeout Timeout Timeout Timeout (a) (c) Saatja Vastuvõtja Saatja Vastuvõtja Sõnumid (b) (d) 313
UDP No Handshaking! No Reliable data transfer No Flow Control No Congestion Control Connectionless Sõnumid 314
UDP (User Datagramm protocol) SP Len. Data Data DP CRC Sõnumid 315
Ressursi jagamine Tagasivaade 1974: cycles, storage, bandwidth expensive, people cheap 2002: resources cheap, people expensive 1974: Share computer resources 2002: Communicate with people, access documents, buy, sell 1974 - no separation between transport (TCP) and network (IP) layers (TCP/IP) 2004 - separate transport (TCP, UDP) and network (IP) layer Sõnumid 316
Kokkuhoidlik lähenemine Rumal võrk IP provide minimal functionalities to support connectivity addressing, forwarding, routing Tark lõpp-punkt transport layer or app does more sophisticated functionalities flow control, error control, congestion control Eelised accommodate heterogeneous technologies support diverse applications (telnet, ftp, Web, X windows) decentralized network administration Puudused poor realtime performance poor accountability Sõnumid 317
Mbps Mbps Ressursijaotus Dedicated Bandwidth Circuits Shared Bandwidth Circuits Dedicated Transport & Transfer Rate In Network Actual Data Rate Usage vs. Time Sum of Aggregate Bandwidth Much Less Wasted Bandwidth Time Time Multiple Data Customers in Wasted Bandwidth Shared Trunk Bandwidth Sõnumid 318
TCP Congestion Control Advertised window size is used to ensure that receiver s buffer will not overflow Router Packet flows from many sources R bps Congestion occurs when total arrival rate from all packet flows exceeds R over a sustained period of time Sõnumid 319
Delay (sec) Throughput (bps) Congestion Behavior R Arrival Rate 1. Light traffic Arrival Rate << R Low delay Can accommodate more 2. Knee (congestion onset) Arrival rate approaches R Delay increases rapidly Throughput begins to saturate 3. Congestion collapse Arrival rate > R Large delays, packet loss Useful application throughput Arrival drops R Rate Sõnumid 320
Retransmission Timeout (RTO) Initial Send Initial Send RTO Retry RTO Ack Retry Ack Detect dropped packet RTO too short Time between sending & resending segment Challenge Too long: Add latency to communication when packets dropped Too short: Send too many duplicate packets General principle: Must be > 1 Round Trip Time (RTT) Sõnumid 321
Telefoni vs datagrammi teenus Ainult üks teenus: kõne Host on telefon Palju teenuseid Host tekitab mitu voogu Application Layer telnet, ftp, email Application Layer Telephone Network (Data) Link Layer Telephone Telephone numbering, signaling, routing TDMA Transport Layer Network Layer (Data) Link Layer TCP, UDP IP 802.3, 802.11 Sõnumid 322
Videovoog ja jaotamine Media Server IP encapsulation DVB, DAB Mobile Encoders IP (DSL) IP-based Streaming Sõnumid 323
Lõpulingid (7) http://en.wikipedia.org/wiki/d/a_converter http://www.ietf.org/rfc/rfc0793.txt?number=793 http://www.cisco.com/warp/public/535/4.html http://www.cheswick.com/ches/talks/uomm.pdf http://www.williamstallings.com http://vig.prenhall.com/catalog/academic/product/0,11 44,0132433109,00.html http://www.iana.org/assignments/port-numbers Sõnumid 324