EEC-484/584 Computer Networks Lecture 7 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Advertisements

Transportation Layer (2). TCP full duplex data: – bi-directional data flow in same connection – MSS: maximum segment size connection-oriented: – handshaking.
Transport Layer3-1 TCP. Transport Layer3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection.
EEC-484/584 Computer Networks Lecture 8 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
1 Transport Layer Lecture 9 Imran Ahmed University of Management & Technology.
CS 471/571 Transport Layer 5 Slides from Kurose and Ross.
CSE551: Computer Network Review r Network Layers r TCP/UDP r IP.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
Transport Layer3-1 Summary of Reliable Data Transfer Checksums help us detect errors ACKs and NAKs help us deal with errors If ACK/NAK has errors sender.
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
Week 9 TCP9-1 Week 9 TCP 3 outline r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management.
CSci4211: Transport Layer:Part I1 Transport Layer: Part I  Transport Layer Services  connection-oriented vs. connectionless  multiplexing and demultplexing.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A.
Computer Networks 2 Lecture 2 TCP – I - Transport Protocols: TCP Segments, Flow control and Connection Setup.
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Chapter 3: Transport Layer
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Transport Layer3-1 Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer.
EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 15 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
1 Announcement r Project 2 out m Much harder than project 1, start early! r Homework 2 due next Tuesday.
Lecture 8 Chapter 3 Transport Layer
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Announcement Project 2 out –Much harder than project 1, start early! Homework 2 due next Tu.
Chapter 3 Transport Layer
EEC-484/584 Computer Networks Lecture 7 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 8 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Transport Layer3-1 Data Communication and Networks Lecture 7 Transport Protocols: TCP October 21, 2004.
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
1 Ch. 7 : Internet Transport Protocols. Transport Layer Our goals: r understand principles behind transport layer services: m Multiplexing / demultiplexing.
8-1 Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer m flow.
EEC-484/584 Computer Networks Lecture 13 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
EEC-484/584 Computer Networks Lecture 7 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Review: –What is AS? –What is the routing algorithm in BGP? –How does it work? –Where is “policy” reflected in BGP (policy based routing)? –Give examples.
CECS 474 Computer Network Interoperability Notes for Douglas E. Comer, Computer Networks and Internets (5 th Edition) Tracy Bradley Maples, Ph.D. Computer.
EEC-484/584 Computer Networks Lecture 7 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
CS 1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Jack Lange.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 All.
3: Transport Layer3b-1 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection m MSS: maximum.
2: Transport Layer 21 Transport Layer 2. 2: Transport Layer 22 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 04_b Transport Protocols - TCP Instructor: Dr. Li-Chuan Chen Date: 09/22/2003 Based in part upon slides.
Chapter 3 Transport Layer
Fall 2005 By: H. Veisi Computer networks course Olum-fonoon Babol Chapter 6 The Transport Layer.
Transport Layer3-1 Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable.
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
1 End-to-End Protocols (UDP, TCP, Connection Management)
Chapter 3: Transport Layer Our goals: r understand principles behind transport layer services: m multiplexing/demultipl exing m reliable data transfer.
EEC-484/584 Computer Networks Lecture 8 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
MULTIPLEXING/DEMULTIPLEXING, CONNECTIONLESS TRANSPORT.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
EEC-484/584 Computer Networks Lecture 8 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Transport Layer3-1 Transport Layer If you are going through Hell Keep going.
Transport Layer1 Goals: r understand principles behind transport layer services and protocols: m UDP m TCP Overview: r transport layer services r multiplexing/demultiplexing.
CSEN 404 Transport Layer II Amr El Mougy Lamia AlBadrawy.
2: Transport Layer 11 Transport Layer 1. 2: Transport Layer 12 Part 2: Transport Layer Chapter goals: r understand principles behind transport layer services:
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
09-Transport Layer: TCP Transport Layer.
DMET 602: Networks and Media Lab
Introduction to Networks
EEC-484/584 Computer Networks
Transport Protocols: TCP Segments, Flow control and Connection Setup
Transport Protocols: TCP Segments, Flow control and Connection Setup
Presentation transcript:

EEC-484/584 Computer Networks Lecture 7 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer Networking book)

2 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Outline Sliding window protocols UDP TCP –Segment header structure –Connection management

3 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Sliding Window Protocols Full-duplex: Use same connection for data in both directions (A  B and B  A) Interleave data and ack packets –B piggybacks its ack for A ’ s packet onto B ’ s next packet –Savings of header in separate ack packet If B sends data infrequently, use timeout to determine when B should send ack in separate ack packet Each packet contains sequence number in ranges 0..2 n -1 (for n-bit sequence numbers)

4 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Sending Window Start from empty and grow to a maximum size Within sending window, packets sent but not acked –Sender must keep those packets for possible retransmission –If max window size = w, need w buffers st outstanding packet Last packet sent A new packet sent (if send window allows) Sent window enlarges when more packet is sent When new packet arrives from application layer, it is given next highest sequence number, and upper edge of window is incremented

5 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Sending Window ack Sent window shrinks when the ack corresponding to the 1 st outstanding packet Is received When ack arrives from receiver, lower edge of window is incremented In general, ack is cumulative

6 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Receiving Window List of consecutive sequence numbers of packets that receiver is permitted to accept When packet with (seq num = lower edge of window) arrives –Packet is passed to higher layer –Ack is generated –Window slid down by 1 (remains same size as was initially)

7 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Reliable Data Transfer: Sliding Window Protocols A One-Bit Sliding Window Protocol A Protocol Using Go Back n A Protocol Using Selective Repeat

8 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao One-Bit Sliding Window Protocol A sliding window of size 1, with a 3-bit sequence number Initially After first packet sent After first packet received After first ack received

9 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Sliding Window Protocols: Pipelining Problem of one-bit sliding window protocol: –Sender blocks till receives acks Solution: pipelining –Allow sender to send up to w packets before blocking With pipelining, if packet in middle is lost or damaged, what to do with the packets following it ? Solution: two strategies –Go Back n - all the packets following it are discarded –Selective repeat – nack the lost/damaged packet and retransmit that packet

10 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Pipelining and Error Recovery Go back n: Effective receiver window size is 1 Packets discarded

11 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Pipelining and Error Recovery Selective repeat Can you think of an alternative to go-back-n and selective-repeat? Packets buffered

12 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Go Back n Sender –Stores all packets in output buffer –Must get acks in order in which packets are sent Receiver –Discards all packets following lost or damaged one Works well –If transmission errors rare and few retransmissions –If lot of traffic in both directions

13 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Selective Repeat Receiver accepts and buffers packets following lost or damaged packets Both sender and receiver maintain windows –Sender ’ s window starts at 0, grows to MAX SEQ –Receiver ’ s window fixed at MAX SEQ Receiver has buffer reserved for each seq num in its window

14 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Selective Repeat When packet arrives, receiver checks if seq num in window If so and if not already received, this packet is accepted and stored If all lower numbered packets delivered, this packet is delivered as well

15 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Selective Repeat If no reverse traffic before timer goes off, separate ack is sent When receiver suspects error, sends NAK back to sender (request for retransmission) Two circumstances that trigger NAK –Damaged packet arrives –Packet other than expected one arrives, suspect expected one is lost Receiver sends only one NAK for packet expected

16 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao UDP: User Datagram Protocol “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

17 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Why is There a UDP? No connection establishment (which can add delay) Simple: no connection state at sender and receiver Small segment header No congestion control: UDP can blast away as fast as desired

18 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao UDP Often used for streaming multimedia apps –Loss tolerant –Rate sensitive Other UDP uses –DNS –SNMP Reliable transfer over UDP: add reliability at application layer source port # dest port # 32 bits Application data (message) UDP segment format length checksum Length, in bytes of UDP segment, including header

19 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao UDP Checksum Sender: treat segment contents as sequence of 16-bit integers checksum: addition (1’s 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 nonetheless? Goal: detect “errors” (e.g., flipped bits) in transmitted segment

20 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Internet Checksum Example When adding numbers, a carryout from the most significant bit needs to be added to the result Example: add two 16-bit integers wraparound sum checksum To know more:

21 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao TCP: Overview Full duplex data: –Bi-directional data flow in same connection –MSS: maximum segment size Connection-oriented: –Handshaking (exchange of control msgs) init’s sender, receiver state before data exchange Flow controlled: –Sender will not overwhelm receiver Point-to-point: –One sender, one receiver Reliable, in-order byte steam: –No “message boundaries” Pipelined: –TCP congestion and flow control set window size Send & receive buffers

22 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao TCP: Overview TCP connection is byte stream, not message stream, no message boundaries TCP may send immediately or buffer before sending Receiver stores the received bytes in a buffer

23 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao TCP Segment Structure source port # dest port # 32 bits application data (variable length) sequence number acknowledgement number Receive window Urg data pnter checksum F SR PAU head len not used Options (variable length) URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: connection estab (setup, teardown commands) # bytes rcvr willing to accept counting by bytes of data (not segments!) Internet checksum (as in UDP) A TCP segment must fit into an IP datagram!

24 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao The TCP Segment Header Source port and destination port: identify local end points of the connection –Source and destination end points together identify the connection Sequence number: identify the byte in the stream of data that the first byte of data in this segment represents Acknowledgement number: the next sequence number that the sender of the ack expects to receive –Ack # = Last received seq num + 1 –Ack is cumulative: an ack of 5 means 0-4 bytes have been received TCP header length – number of 32-bit words in header

25 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao The TCP Segment Header URG – indicates urgent pointer field is set Urgent pointer – points to the seq num of the last byte in a sequence of urgent data ACK – acknowledgement number is valid SYN – used to establish a connection –Connection request: ACK = 0, SYN = 1 –Connection confirm: ACK=1, SYN = 1 FIN – release a connection, sender has no more data RST – reset a connection that is confused PSH – sender asked to send data immediately

26 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao The TCP Segment Header Receiver window size – number of bytes that may be sent beyond the byte acked Checksum – add the header, the data, and the conceptual pseudoheader as 16-bit words, take 1 ’ s complement of sum –For more info: Options – provides a way to add extra facilities not covered by the regular header –E.g., communicate buffer sizes during set up

27 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao TCP Sequence Numbers and ACKs Sequence numbers: –byte stream “number” of first byte in segment’s data ACKs: –seq # of next byte expected from other side –cumulative ACK Host A Host B Seq=42, ACK=79, data = ‘C’ Seq=79, ACK=43, data = ‘C’ Seq=43, ACK=80 User types ‘C’ host ACKs receipt of echoed ‘C’ host ACKs receipt of ‘C’, echoes back ‘C’ time simple telnet/ssh scenario

28 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao TCP Connection Management TCP sender, receiver establish “connection” before exchanging data segments Initialize TCP variables: –Sequence numbers –Buffers, flow control info (e.g. RcvWindow ) Client: connection initiator Socket clientSocket = new Socket("hostname","port number"); Server: contacted by client Socket connectionSocket = welcomeSocket.accept();

29 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao TCP Connection Management Three way handshake: Step 1: client host sends TCP SYN segment to server –specifies initial sequence number –no data Step 2: server host receives SYN, replies with SYN/ACK segment –server allocates buffers –specifies server initial sequence number Step 3: client receives SYN/ACK, replies with ACK segment, which may contain data

30 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao TCP Connection Management Three way handshake: SYN segment is considered as 1 byte SYN/ACK segment is also considered as 1 byte client SYN (seq=x) server SYN/ACK (seq=y, ACK=x+1) ACK (seq=x+1, ACK=y+1) connect accept

31 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao TCP Connection Management Closing a connection: client closes socket: clientSocket.close(); Step 1: client end system sends TCP FIN control segment to server Step 2: server receives FIN, replies with ACK. Closes connection, sends FIN. client FIN server ACK FIN close closed timed wait

32 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao TCP Connection Management Step 3: client receives FIN, replies with ACK. –Enters “timed wait” - will respond with ACK to received FINs Step 4: server, receives ACK. Connection closed. Note: with small modification, can handle simultaneous FINs client FIN server ACK FIN closing closed timed wait closed

33Exercise A process at host A wants to establish a TCP connection with another process at host B. Assuming that host A chooses to use 1628 as the initial sequence number, and host B chooses to use 3217 as the initial sequence number for this connection, show the segments involved with the connection establishment process. You must include the following information for each such segment: (1) sequence number, (2) acknowledgement number (if applicable), (3) the SYN flag bit status, and (4) the ACK flag bit status. Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao

34 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Non-Sequential Receive Problem New range of valid sequence numbers for receiver can overlap old range Overlap can contain duplicates Example: n = 3-bit seq num (8 possible numbers, 0 through 7, back to 0)

35 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Non-Sequential Receive Problem Sender sends 0,1,2,3,4,5,6 Receiver –Receives 0,1,2,3,4,5,6 –Sends ack but ack gets lost –Expects to receive 7,0,1,2,3,4,

36 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Non-Sequential Receive Problem Sender times out, retransmits 0,1,2,3,4,5,6 Receiver checks 0 is in new window, thinks new 0 because has sent ack for old 6, waits for

37 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Non-Sequential Receive Problem Sender receives ack for 0-6, sends 7 Receiver receives 7, delivers 7 and old 0 (as new 0 !)

38 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Non-Sequential Receive Problem The problem is caused by the overlap of sequence number between the new receiving window and the old receiving window Overlap

39 Spring Semester 2009EEC-484/584: Computer NetworksWenbing Zhao Non-Sequential Receive Problem Solution: –make sure no overlap when receiver advances its window –Make window size w =1/2 range of seq numbers No Overlap