Part I: Introduction - Smith College

Part I: Introduction - Smith College

Transport Layer Goals: Overview: understand principles transport layer services multiplexing/demultiplexing behind transport layer services: multiplexing/ demultiplexing reliable data transfer flow control congestion control instantiation and implementation in the Internet

connectionless transport: UDP principles of reliable data transfer connection-oriented transport: TCP reliable transfer flow control connection management principles of congestion control TCP congestion control 3: Transport Layer 3a-1 Transport services and protocols provide logical network data link physical

tr network data link physical t or sp an network data link physical network data link physical d en den transport vs network layer services:

network layer: data transfer between end systems transport layer: data transfer between processes l ca gi lo communication between app processes running on different hosts transport protocols run in end systems (primarily) applicatio n transport network data link physical network data link physical applicatio

n transport network data link physical relies on, enhances, network layer services 3: Transport Layer 3a-2 Transport-layer protocols real-time bandwidth guarantees reliable multicast network data link

physical t or sp an unordered unicast or multicast delivery: UDP services not available: network data link physical tr unreliable (best-effort), network data link physical network data link physical d

en den congestion flow control connection setup applicatio n transport network data link physical l ca gi lo Internet transport services: reliable, in-order unicast delivery (TCP) network data link physical

applicatio n transport network data link physical 3: Transport Layer 3a-3 Multiplexing/demultiplexing Recall: segment - unit of data exchanged between transport layer entities aka TPDU: transport protocol data unit application-layer data segment header P1 M application segment Ht M transport

Hn segment network P3 Demultiplexing: delivering received segments (TPDUs)to correct app layer processes receiver M M application transport network P4 M P2 application transport network 3: Transport Layer

3a-4 Multiplexing/demultiplexing Multiplexing: gathering data from multiple app processes, enveloping data with header (later used for demultiplexing) multiplexing/demultiplexing: based on sender, receiver port numbers, IP addresses source, dest port #s in each segment recall: well-known port numbers for specific applications 32 bits source port # dest port # other header fields application data (message)

TCP/UDP segment format 3: Transport Layer 3a-5 Multiplexing/demultiplexing: examples host A source port: x dest. port: 23 server B source port:23 dest. port: x port use: simple telnet app WWW client host A Source IP: A Dest IP: B source port: x dest. port: 80

WWW client host C Source IP: C Dest IP: B source port: y dest. port: 80 Source IP: C Dest IP: B source port: x dest. port: 80 WWW server B port use: WWW server 3: Transport Layer 3a-6 UDP: User Datagram Protocol [RFC

768] no frills, bare bones Internet transport protocol best effort service, UDP segments may be: lost delivered out of order to app connectionless: no handshaking between UDP sender, receiver each UDP segment handled independently of others Why is there a UDP? no connection establishment (which can add delay) simple: no connection state at sender, receiver small segment header no congestion control: UDP can blast away as

fast as desired 3: Transport Layer 3a-7 UDP: more often used for streaming multimedia apps loss tolerant rate sensitive Length, in bytes of UDP segment, (why?): including header other UDP uses DNS SNMP RIP reliable transfer over UDP: add reliability at application layer application-specific error

recovery! 32 bits source port # dest port # length checksum Application data (message) UDP segment format 3: Transport Layer 3a-8 UDP checksum Goal: detect errors (e.g., flipped bits) in transmitted segment Sender: treat segment contents as sequence of 16-bit integers

checksum: addition (1s complement sum) of segment contents sender puts checksum value into UDP checksum field Receiver: compute checksum of received segment check if computed checksum equals checksum field value: NO - error detected YES - no error detected. But maybe errors nonethless? More later . 3: Transport Layer 3a-9 Principles of Reliable data transfer important in app., transport, link layers top-10 list of important networking topics! characteristics of unreliable channel underneath it will determine complexity of reliable data

transfer protocol (rdt) 3: Transport Layer 3a-10 Reliable data transfer: getting started rdt_send(): called from above, (e.g., by app.). Passed data to deliver to receiver upper layer send side udt_send(): called by rdt, to transfer packet over unreliable channel to receiver deliver_data(): called by rdt to deliver data to upper receive side rdt_rcv(): called when packet arrives on rcv-side of channel

3: Transport Layer 3a-11 Reliable data transfer: getting started Well: incrementally develop sender, receiver sides of reliable data transfer protocol (rdt) consider only unidirectional data transfer but control info will flow on both directions! use finite state machines (FSM) to specify sender, receiver state: when in this state next state uniquely determined by next event state 1 event causing state transition actions taken on state transition event actions

state 2 3: Transport Layer 3a-12 Rdt1.0: reliable transfer over a reliable channel underlying channel perfectly reliable no bit errors no loss of packets separate FSMs for sender, receiver: sender sends data into underlying channel receiver reads data from underlying channel 3: Transport Layer 3a-13 Rdt2.0: channel with bit errors underlying channel may flip bits in packet recall: UDP checksum to detect bit errors the question: how to recover from errors:

acknowledgements (ACKs): receiver explicitly tells sender that pkt received OK negative acknowledgements (NAKs): receiver explicitly tells sender that pkt had errors sender retransmits pkt on receipt of NAK human scenarios using ACKs, NAKs? new mechanisms in rdt2.0 (beyond rdt1.0): error detection receiver feedback: control msgs (ACK,NAK) rcvr->sender 3: Transport Layer 3a-14 rdt2.0: FSM specification sender FSM receiver FSM 3: Transport Layer 3a-15 rdt2.0: in action (no errors) sender FSM

receiver FSM 3: Transport Layer 3a-16 rdt2.0: in action (error scenario) sender FSM receiver FSM 3: Transport Layer 3a-17 rdt2.0 has a fatal flaw! What happens if ACK/NAK corrupted? Handling duplicates: sender doesnt know what number to each pkt sender retransmits current pkt if ACK/NAK garbled receiver discards (doesnt deliver up) duplicate pkt happened at receiver! cant just retransmit: possible duplicate

What to do? sender adds sequence sender ACKs/NAKs receivers ACK/NAK? What if sender ACK/NAK lost? retransmit, but this might cause retransmission of correctly received pkt! stop and wait Sender sends one packet, then waits for receiver response 3: Transport Layer 3a-18 rdt2.1: sender, handles garbled ACK/NAKs 3: Transport Layer 3a-19 rdt2.1: receiver, handles garbled ACK/NAKs 3: Transport Layer 3a-20

rdt2.1: discussion Sender: seq # added to pkt two seq. #s (0,1) will suffice. Why? must check if received ACK/NAK corrupted twice as many states state must remember whether current pkt has 0 or 1 seq. # Receiver: must check if received packet is duplicate state indicates whether 0 or 1 is expected pkt seq # note: receiver can

not know if its last ACK/NAK received OK at sender 3: Transport Layer 3a-21 rdt2.2: a NAK-free protocol sender FSM same functionality as rdt2.1, using ACKs only instead of NAK, receiver sends ACK for last pkt received OK receiver must explicitly include seq # of pkt being ACKed ! duplicate ACK at sender results in same

action as NAK: retransmit current pkt 3: Transport Layer 3a-22 rdt3.0: channels with errors and loss New assumption: underlying channel can also lose packets (data or ACKs) Approach: sender waits reasonable amount of time for ACK checksum, seq. #, ACKs, retransmissions will be of help, but not enough received in this time if pkt (or ACK) just delayed (not lost): retransmission will be duplicate, but use of seq. #s already handles this receiver must specify seq # of pkt being ACKed requires countdown timer

Q: how to deal with loss? sender waits until certain data or ACK lost, then retransmits yuck: drawbacks? retransmits if no ACK 3: Transport Layer 3a-23 rdt3.0 sender 3: Transport Layer 3a-24 rdt3.0 in action 3: Transport Layer 3a-25 rdt3.0 in action 3: Transport Layer 3a-26

Performance of rdt3.0 rdt3.0 works, but performance stinks example: 1 Gbps link, 15 ms e-e prop. delay, 1KB packet: Ttransmit= 8kb/pkt =8 microsec/pkt 10**9 b/sec 8 microsec fraction of time = = 0.00015 Utilization = U = sender busy sending 30.016 msec 1KB pkt every 30 msec -> 33kB/sec thruput over 1 Gbps link network protocol limits use of physical resources! 3: Transport Layer 3a-27 Pipelined protocols Pipelining: sender allows multiple, in-flight, yet-to-be-acknowledged pkts

range of sequence numbers must be increased buffering at sender and/or receiver Two generic forms of pipelined protocols: go- Back-N, selective repeat 3: Transport Layer 3a-28

Recently Viewed Presentations

  • Social Studies Connecting Themes - thomas.k12.ga.us

    Social Studies Connecting Themes - thomas.k12.ga.us

    Social Studies Connecting Themes Enduring Understandings Conflict and Change When conflict arises between or within societies, change is the result Distribution of Power Distribution of power in government is a product of existing documents and laws combined with a contemporary...
  • Demeter and Dionysus

    Demeter and Dionysus

    Demeter disguised herself as an old woman while she searched the world for Persephone. One day, in the town called Eleusis, she sat down by a well. Four young sisters came up to her to see if she needed any...
  • University of Ni Faculty of Mechanical Engineering SEMIGROUPS

    University of Ni Faculty of Mechanical Engineering SEMIGROUPS

    Bishop: Every theorem of classical . mathematics presents a . challenge: find a . constructive version with . a constructive proof. This constructive version can be obtained by. strengthening the conditions or weakening the. conclusion of the theorem. BISH -...
  • Patient Search New and existing patients Patient Search

    Patient Search New and existing patients Patient Search

    mm/dd/yyyy. Advanced Search. Registered By. First: When unique attributes are entered, the rest of the fields will be cleared and disabled. Order will be preserved from top to bottom. Patient name search can be on its own. Date of birth...
  • Women's Roles - Oak Park Independent

    Women's Roles - Oak Park Independent

    Women's Roles Amanda Zhao 1-10-13 Period 5
  • Highlights of the AUA - Brazil Basic Sciences

    Highlights of the AUA - Brazil Basic Sciences

    Highlights of the AUA - Brazil Basic Sciences Jennifer Bishop, Ph.D. Bladder Cancer Peter Black, MD, FACS, FRCSC Umberto Capitanio, MD Timothy Chang, MD Siamak Daneshmand, MD Colin Dinney, MD Jason Efstathiou, MD, DPhil Igor Frank, MD Kris Gaston, MD...
  • A Leadership-Based Approach to an Inclusive Campus Combating

    A Leadership-Based Approach to an Inclusive Campus Combating

    Context 25,000 undergraduate and 2000 graduate students 770 FT faculty Urban downtown Toronto campus (Gerrard to Dundas/Bay to Jarvis) Majority of students from the GTA—only 850 in residence Students represented by independent student unions (Ryerson Student Union, Continuing Education Students...
  •    MATLAB  MATLAB 5.3.lnk 2  1 2  2 2

    MATLAB MATLAB 5.3.lnk 2 1 2 2 2

    第二讲 matlab的 程序设计 2.1 脚本文件和函数文件 2.2 函数调用和参数传递 2.3 matlab的程序结构和控制流 2.4 m文件的调试