CS 145A Reliable Communication Netlab.caltech.edu/course.

Slides:



Advertisements
Similar presentations
Primitives for Achieving Reliability 3035/GZ01 Networked Systems Kyle Jamieson Department of Computer Science University College London.
Advertisements

CS 145A Case Study: Simplified BGP Finite State Machine Netlab.caltech.edu/course.
CIS 725 Data Link Layer. Physical Layer Figure 3-1 B. Forouzan, TCP/IP Protocol Suite.
TFTP (Trivial File Transfer Protocol)
Prentice HallHigh Performance TCP/IP Networking, Hassan-Jain Chapter 2 TCP/IP Fundamentals.
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
1 TCP - Part I Relates to Lab 5. First module on TCP which covers packet format, data transfer, and connection management.
10. UDP/TCP WWW page: Text book: Mastering Networks (Chapter 10) Network IP protocol is routes the data.
BZUPAGES.COM 1 User Datagram Protocol - UDP RFC 768, Protocol 17 Provides unreliable, connectionless on top of IP Minimal overhead, high performance –No.
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
UNIT 07 Process – to – Process Delivery: UDP,TCP and SCTP
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.
EEC-484/584 Computer Networks Lecture 12 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Department of Electronic Engineering City University of Hong Kong EE3900 Computer Networks Transport Protocols Slide 1 Transport Protocols.
2: Application Layer 1 1DT066 Distributed Information System Chapter 3 Transport Layer.
3-1 Transport services and protocols r provide logical communication between app processes running on different hosts r transport protocols run in end.
Networking. Protocol Stack Generally speaking, sending an message is equivalent to copying a file from sender to receiver.
Process-to-Process Delivery:
Gursharan Singh Tatla Transport Layer 16-May
What Can IP Do? Deliver datagrams to hosts – The IP address in a datagram header identify a host IP treats a computer as an endpoint of communication Best.
Process-to-Process Delivery:
TRANSPORT LAYER T.Najah Al-Subaie Kingdom of Saudi Arabia Prince Norah bint Abdul Rahman University College of Computer Since and Information System NET331.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Chapter 11 Data Link Control Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction.
CS/EE 145A Reliable Transmission over Unreliable Channel Netlab.caltech.edu/course.
CS/EE 145A Congestion Control Netlab.caltech.edu/course.
CS332, Ch. 26: TCP Victor Norman Calvin College 1.
3: Transport Layer 3a-1 8: Principles of Reliable Data Transfer Last Modified: 10/15/2015 7:04:07 PM Slides adapted from: J.F Kurose and K.W. Ross,
SMUCSE 4344 transport layer. SMUCSE 4344 transport layer end-to-end protocols –transport code runs only on endpoint hosts encapsulates network communications.
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Networked & Distributed Systems TCP/IP Transport Layer Protocols UDP and TCP University of Glamorgan.
The Transmission Control Protocol (TCP) Application Services (Telnet, FTP, , WWW) Reliable Stream Transport (TCP) Connectionless Packet Delivery.
Chi-Cheng Lin, Winona State University CS 313 Introduction to Computer Networking & Telecommunication Data Link Layer Part I – Designing Issues and Elementary.
23.1 Chapter 23 Process-to-Process Delivery: UDP, TCP, and SCTP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Review:. Chapter 3: The Data Link Layer –achieve reliable, efficient communication between two physically connected machines. –Example problems to be.
1 Transport Layer Lecture 10 Imran Ahmed University of Management & Technology.
TCP/IP Honolulu Community College Cisco Academy Training Center Semester 2 Version 2.1.
Advanced UNIX programming Fall 2002, lecture 16 Instructor: Ashok Srinivasan Acknowledgements: The syllabus and power point presentations are modified.
Today’s topic: UDP Reliable communication over UDP.
TCP OVER ADHOC NETWORK. TCP Basics TCP (Transmission Control Protocol) was designed to provide reliable end-to-end delivery of data over unreliable networks.
Transport Protocols.
Transport Layer: Sliding Window Reliability
TCP Transmission Control Protocol Part 2 CH 23 Aseel Alturki.
CS/EE 145A Reliable Transmission over Unreliable Channel II Netlab.caltech.edu/course.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Principles of reliable data transfer 0.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
1 Computer Communication & Networks Lecture 23 & 24 Transport Layer: UDP and TCP Waleed Ejaz
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
Transmission Control Protocol (TCP) TCP Flow Control and Congestion Control CS 60008: Internet Architecture and Protocols Department of CSE, IIT Kharagpur.
11 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
Computer Networking Lecture 16 – Reliable Transport.
Ch 3. Transport Layer Myungchul Kim
Process-to-Process Delivery:
Ch 3. Transport Layer Myungchul Kim
3. END-TO-END PROTOCOLS (PART 1) Rocky K. C. Chang Department of Computing The Hong Kong Polytechnic University 22 March
The Transport Layer Implementation Services Functions Protocols
CMPT 371 Data Communications and Networking
Reliable Transport CS 3700 Project 3.
Introduction of Transport Protocols
Transport Layer Unit 5.
Reliable Transport CS 3700 Project 3.
46 to 1500 bytes TYPE CODE CHECKSUM IDENTIFIER SEQUENCE NUMBER OPTIONAL DATA ICMP Echo message.
Introduction to Computer Networks
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Computer network HW2 -Retransmission + Congest control
Transport Layer 9/22/2019.
Presentation transcript:

CS 145A Reliable Communication Netlab.caltech.edu/course

Today Reliable Communication Reliable Communication TCP Flow Control TCP Flow Control Lab 4 Lab 4

Transmit a file We want the file to be transmitted without any error. We want the file to be transmitted without any error. We only have a un-reliable channel. (The packet may be dropped, re-ordered, duplicated … in the middle). We only have a un-reliable channel. (The packet may be dropped, re-ordered, duplicated … in the middle). We don’t want to waste time. We don’t want to waste time. We don’t want to waste bandwidth. We don’t want to waste bandwidth.

Make sure everything is correct Packet: Checksum Checksum “ Length ” in the packet “ Length ” in the packet … Upper Layer: Acknowledge (ACK) Acknowledge (ACK) Negative Acknowledge (NACK) Negative Acknowledge (NACK) Coding Coding …

ACK RTT time Source Destination 12W 1 12W data ACKs 12 12W

ACK (Loss Detection) Time Out! RTT time Source Destination 12W 12W data ACKs 1 12W

ACK (False Loss) Time Out! RTT time Source Destination 12W 1 12W data ACKs 1 12W

NACK (Loss Detection) time Source Destination 12W data NACK:

NACK (NACK Loss) time Source Destination 12 data NACK: W

TCP Flow Control ACK + Window Sequence Number Sequence Number Aggregative ACK Aggregative ACK Self-clocking Self-clocking Receiver Feedback Receiver Feedback Flow control by window Flow control by window …

TCP Flow Control ~ W packets per RTT ~ W packets per RTT Lost packet detected by missing/duplicate ACK Lost packet detected by missing/duplicate ACK RTT time Source Destination 12W12W12W data ACKs 12W

Lab 4

Lab 4 - Task Implement a reliable communication protocol over UDP: Implement a reliable communication protocol over UDP: Define your packet format Define your packet format Implement packet retransmission Implement packet retransmission Improve efficiency Improve efficiency

Lab 4 - Requirements  The implementation is based on UDP.  The implementation is able to send a file from one machine to the other.  The network in the middle is not reliable: The network may drop or duplicated some packet in the middle  Assumption: A single packet will not be contaminated. (Don ’ t worry about the error inside one packet)

Lab 4 - Details Two programs: “ sender ” and “ receiver ” Two programs: “ sender ” and “ receiver ” Sender should be able to read a file from the local disk, cut it into packets, and send it to the receiver. Sender should be able to read a file from the local disk, cut it into packets, and send it to the receiver. Sender can use a port to listen to the feedback from the receiver. Sender can use a port to listen to the feedback from the receiver. Receiver should be able to listen to a port, get the packets from the sender, and send feedback to the receiver, if necessary. Receiver should be able to listen to a port, get the packets from the sender, and send feedback to the receiver, if necessary. Assumption: Assumption: There is only one sender and one receiver. (All the packets to the sender is from the receiver, and vice versa.) There is only one sender and one receiver. (All the packets to the sender is from the receiver, and vice versa.) is a text file in the local disk is a text file in the local disk

Lab 4 – Details: Sender Format: “ sender ” Format: “ sender ” Port1: the port you are listening to the receiver ’ s feedback Port1: the port you are listening to the receiver ’ s feedback IP: the receiver ’ s IP IP: the receiver ’ s IP Port2: the receiver ’ s port Port2: the receiver ’ s port Filename: The file to be sent Filename: The file to be sent The sender should read from, send the content of the file to, and listen to port1 for feedback from the receiver. The sender should read from, send the content of the file to, and listen to port1 for feedback from the receiver.

Lab 4 – Details: Receiver Format: “ receiver ” Format: “ receiver ” Port1: the port you are listening to the sender ’ s data Port1: the port you are listening to the sender ’ s data IP: the sender ’ s IP IP: the sender ’ s IP Port2: the sender ’ s listening port Port2: the sender ’ s listening port Filename: The file to be saved Filename: The file to be saved The receiver should listen to for data, write the data to and send feedback to (sender) if necessary. The receiver should listen to for data, write the data to and send feedback to (sender) if necessary.

Lab 4 - Possible Problems How to design the packet format? How to design the packet format? What kind of feedback? (ACK/NACK?) What kind of feedback? (ACK/NACK?) How to detect loss? (Timeout? Duplicate ACK … ) How to detect loss? (Timeout? Duplicate ACK … ) How to maintain the window (If you use window scheme)? How to maintain the window (If you use window scheme)?

Lab 4 - Tips Re-Use the codes in Lab 1 Re-Use the codes in Lab 1 Packet format? Packet format? Packet type? (initial packet, ack packet, terminating packet … ) Packet type? (initial packet, ack packet, terminating packet … ) Packet length? Packet length? Packet sequence number? Packet sequence number? Data area … Data area … Window maintenance Window maintenance How to Test? How to Test?

Lab 4 Due: Dec 6 st (Friday) 23:59:59 Due: Dec 6 st (Friday) 23:59: Grading Grading TA hours: TA hours: Tue / Thu (20:00 – 22:00) JRG 170 Except: Nov.19 / Nov.21