SIDE (IRT 3930) Loeng 9/2012 Infotransport Teema - sõnumid Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst. avots@lr.ttu.ee Sõnumid 321
Infoülekanne Rakendus (teenus) Transporditeenus Seoseta (Connectionless) paketi kohaletoimetamine Sõnumid 322
Bitivood ajas Constant Bit Rate (CBR) audio t Variable Bit rate (VBR) video, data t Sõnumid 323
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 324
Teenuse (lingi) demultipleks Application Application Application Application Application Transport TCP UDP ICMP IGMP Network IP ARP RARP Link Ethernet Driver incoming frame Sõnumid 325
1024-5000 User process User process User process User process UDP 17 ICMP IGMP ARP Others Novell dest addr 1 2 AppleTalk Demultiplexing Details x0806 source RARP TCP src port TCP protocol type IP header FTP server 6 x8035 IP x0800 21 23 TCP dest port telnet server hdr cksum IP header addr Ethernet frame type data CRC (Ethernet frame types in hex, others in decimal) dest addr source addr echo server discard server data data Sõnumid 326 7 9 TCP
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 327
Infotransport 4 TCP RFC 793, UDP RFC 768 - Transmission Control Protocol - User Datagram Protocol HTTP - Hypertext Transfer Protocol Sõnumid 328
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 329
Erinevad vaated Sõnumid 330
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 331
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 332
Kient-server mudel Päring saadetakse teadaolevasse porti klient server Vastus saadetakse kliendi porti klient server Sõnumid 333
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 334
Ü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 335
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 336
TCP Handshaking Reliable data transfer Flow Control Congestion Control Connection-oriented Sõnumid 337
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 338
Ü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 339
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 340 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 341
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 342
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 343
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 344
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 345
T imeout T imeout T imeout T imeout T imeout T ime T imeout T imeout Kinnitused ja timeout Saatja Vastuvõtja Saatja Vastuvõtja (a) (c) Saatja Vastuvõtja Saatja Vastuvõtja Sõnumid (b) (d) 346
UDP No Handshaking! No Reliable data transfer No Flow Control No Congestion Control Connectionless Sõnumid 347
UDP (User Datagramm protocol) SP Len. Data Data DP CRC Sõnumid 348
Internet Multimedia Protocols APPLICATION KERNEL SIP RTSP RSVP RTCP TCP DCCP UDP IP Version 4, IP Version 6 (H.264, MPEG-4) RTP Layer 5 (Session) Layer 4 (Transport) Layer 3 (Network) AAL... MPLS Layer 2 (Link/MAC) Fiber Optics Ethernet/WiFi >> 3G/4G DCCP Datagram Congestion Control Protocol 349
Real-Time Streaming Protocol (RTSP) Audio Video Decoder RTSP Session Control RTSP Audio video Coder RTP RTP CLIENT SERVER 350
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 351
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 352
Delay (sec) Throughput (bps) Congestion Behavior R R Arrival Rate 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 drops Sõnumid 353
Leaky Bucket Sõnumid 354
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 355
Tagasivaade infotranspordi... loole... Ressursi jagamine 1974: cycles, storage, bandwidth expensive, people cheap 2012: resources cheap, people expensive 1974: Share computer resources 2012: 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 356
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 357
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 358
Videovoog ja jaotamine Media Server IP encapsulation DVB, DAB Mobile Encoders IP (DSL) IP-based Streaming Sõnumid 359
Lõpulingid (9) http://en.wikipedia.org/wiki/d/a_converter http://www.ietf.org/rfc/rfc0793.txt?number=793 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 360