NDNLP Implementation of Best-Effort Link-Layer Reliability

Slides:



Advertisements
Similar presentations
Flow control Connection management TCP, UDP
Advertisements

1 Transport Protocols & TCP CSE 3213 Fall April 2015.
Transmission Control Protocol (TCP)
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
1 CS 4396 Computer Networks Lab Transmission Control Protocol (TCP) Part I.
Improving TCP Performance over Mobile Ad Hoc Networks by Exploiting Cross- Layer Information Awareness Xin Yu Department Of Computer Science New York University,
Congestion Control Created by M Bateman, A Ruddle & C Allison As part of the TCP View project.
1 TCP - Part II. 2 What is Flow/Congestion/Error Control ? Flow Control: Algorithms to prevent that the sender overruns the receiver with information.
1 TCP CSE May TCP Services Flow control Connection establishment and termination Congestion control 2.
6/3/ Improving TCP Performance over Mobile Ad Hoc Networks by Exploiting Cross-Layer Information Awareness CS495 – Spring 2005 Northwestern University.
1 Internet Networking Spring 2003 Tutorial 11 Explicit Congestion Notification (RFC 3168) Limited Transmit (RFC 3042)
CSCE 515: Computer Network Programming Chin-Tser Huang University of South Carolina.
CSEE W4140 Networking Laboratory Lecture 6: TCP and UDP Jong Yul Kim
1 Internet Networking Spring 2003 Tutorial 11 Explicit Congestion Notification (RFC 3168)
© 2007 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets with Internet Applications, 4e By Douglas.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #8 Explicit Congestion Notification (RFC 3168) Limited Transmit.
1 CCNA 2 v3.1 Module Intermediate TCP/IP CCNA 2 Module 10.
WXES2106 Network Technology Semester /2005 Chapter 8 Intermediate TCP CCNA2: Module 10.
CMPT 471 Networking II Address Resolution IPv6 Neighbor Discovery 1© Janice Regan, 2012.
ICMP (Internet Control Message Protocol) Computer Networks By: Saeedeh Zahmatkesh spring.
SOAR: Simple Opportunistic Adaptive Routing Protocol for Wireless Mesh Networks Authors: Eric Rozner, Jayesh Seshadri, Yogita Ashok Mehta, Lili Qiu Published:
TCP Timers Chia-tai Tsai Introduction The 7 Timers for each Connection Connection-Establishment Timer Establish a new connection.
CS 4396 Computer Networks Lab
Computer & Information Sciences University of Delaware
TCP1 Transmission Control Protocol (TCP). TCP2 Outline Transmission Control Protocol.
Transmission Control Protocol
1 TCP III - Error Control TCP Error Control. 2 ARQ Error Control Two types of errors: –Lost packets –Damaged packets Most Error Control techniques are.
Copyright © Lopamudra Roychoudhuri
1 TCP - Part II Relates to Lab 5. This is an extended module that covers TCP data transport, and flow control, congestion control, and error control in.
TCP: Transmission Control Protocol Part II : Protocol Mechanisms Computer Network System Sirak Kaewjamnong Semester 1st, 2004.
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
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.
1 TCP - Part II. 2 What is Flow/Congestion/Error Control ? Flow Control: Algorithms to prevent that the sender overruns the receiver with information.
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP data transport, and flow control, congestion control, and error control in TCP.
TCP Timeout and Retransmission
Transport Layer: Sliding Window Reliability
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Principles of reliable data transfer 0.
2005/12/14 1 Improving TCP Performance over Mobile Ad Hoc Networks by Exploiting Cross-Layer Information Awareness Xin Yu Department of Computer Science.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
1 TCP ProtocolsLayer name DNSApplication TCP, UDPTransport IPInternet (Network ) WiFi, Ethernet Link (Physical)
Advanced Computer Networks
9. Principles of Reliable Data Transport – Part 1
TCP Selective Acknowledgement Options
Master’s Project Presentation
TCP - Part II.
March 21, 2001 Recall we have talked about the Sliding Window Protocol for Flow Control Review this protocol A window of size I can contain at most I.
David Wetherall Spring 2000
TCP - Part III TCP Timers Selective Acknowledgements.
Internet Networking recitation #9
TCP Wrap-up TCP Timers Selective Acknowledgements.
Data Communications and Networking Pipelined reliable data transfer
CMPT 371 Data Communications and Networking
Ad-hoc Transport Layer Protocol (ATCP)
Data Link Layer: Data Link Control
IP - The Internet Protocol
Dr. John P. Abraham Professor UTPA
CS4470 Computer Networking Protocols
Dr. John P. Abraham Professor UTRGV, EDINBURG, TX
CS4470 Computer Networking Protocols
Dr. John P. Abraham Professor UTPA
Internet Networking recitation #10
IP - The Internet Protocol
Getting Connected (Chapter 2 Part 3)
The Transport Layer Reliability
TCP III - Error Control TCP Error Control.
Chapter 5 Peer-to-Peer Protocols and Data Link Layer
Lecture 4 Peer-to-Peer Protocols and Data Link Layer
IP - The Internet Protocol
Transport Layer 9/22/2019.
Presentation transcript:

NDNLP Implementation of Best-Effort Link-Layer Reliability Eric Newberry The University of Arizona

Background Based upon “Hop-By-Hop Best Effort Link Layer Reliability in Named Data Networking” by S. Vusirikala, et al. Modifications in Redmine issue #3823 No packet number transmitted, only frame number (Sequence) RTO timeout uses traditional TCP RTO equation (SRTT + 4 * RTTVAR) After retx reached or packet ACK’d after losses, a notification will be sent to the strategy layer. The sender sends notifications to strategy layer based upon network- layer packets, not fragmented link-layer packets. Sequences are required for all packets when BELRP enabled.

Packet Format The following headers fields need to be added to NDNLP: Ack (64-bit non-negative integer), repeatable

Sender Subsystem Start RTO timer Reset ACK send timer Store Packet in TransmitCache + set retx[seq] to 0 Start RTO timer Search AckQueue for ACKs to piggyback Reset ACK send timer Send fragment to Transport For each fragment On Timeout On Timeout Create mapping of all fragments in NetPkt Increment retx[seq], set retransmit flag for NetPkt Send all pending ACKs in IDLE packets retx[seq] >= maxRetx Assign Sequences to fragments No Yes Remove Packet from TransmitCache Cancel all RTO timers for this NetPkt Delete all fragments of NetPkt from TransmitCache Send failure notification to strategy Fragment NetPkt

Send Process Insert this subsystem in GenericLinkService after Sequence number assignment. After fragmenting NetPkt, create a mapping of Sequences to the NetPkt. Also store the number of fragments in the packet, the number of sequences that have been ACK’d or timed out, and a flag indicating whether any fragments had to be retransmitted. TransmitCache stores all transmitted and to-be-transmitted fragments. Fragments are removed after they are ACK’d or the maximum number of retransmissions (maxRetx) is reached. After storing the packet in the TransmitCache, start the RTO timer (SRTT + 4 * RTTVAR -- the method calculating this is discussed later).

Send Process Search the AckQueue for any pending ACKs to piggyback. Piggyback as many as will fit on this packet. Reset the ACK send timer, which allows ACKs to be sent in their own packet if no packet they can piggyback on is transmitted within the timeout. The timeout is set to one quarter of the current RTO (0.25 * [SRTT + 4 * RTTVAR]) at the time the timer is started. Finally, the packet is handed to the Transport for transmission.

Send Process (Timeouts) On timeout of a fragment, increment retx[seq] and set the flag of the NetPkt indicating whether any fragments needed to be retransmitted to true. If retx[seq] is less than the maximum number of retransmissions, restart the RTO timeout for the fragment and continue the transmit process from that point. Otherwise, remove the fragment from the TransmitCache, cancel the RTO timeouts for all fragments of this NetPkt, delete all of NetPkt’s fragments from the TransmitCache, and send a failure notification for this NetPkt to the strategy layer (indicating that at least one fragment reached the maximum number retransmissions and was dropped).

Receiver Subsystem Enqueue ACK in AckQueue Receive packet Extract + Remove Piggybacked ACKs Enqueue ACK in AckQueue Receive packet from Transport Reassembly For each received ACK Cancel fragment’s RTO timeout timer Remove ACK’d fragments from TransmitCache Is retransmit flag set for NetPkt? Yes Send loss notification to strategy Yes Increment number of NetPkt fragments ACK’d/>=maxRtt? Are all fragments of NetPkt ACK’d/>=maxRtt?

Receive Process Insert this subsystem in GenericLinkService before fragment reassembly. If the LpPacket does not have any ACKs piggybacked, skip the next step. Extract and remove piggybacked ACKs from the LpPacket. For each ACK, do the following: Check that an RTO timeout is running for this Sequence. If not, ignore the ACK. Cancel the fragment’s RTO timeout and remove the fragment from the TransmitCache. Increment the number of fragments for this NetPkt that have been ACK’d or have reached the maximum number of retransmissons. If all fragments of the NetPkt have been ACK’d or have reached the maximum number of retransmissions, and the flag indicating whether any fragments for this packet needed to be transmitted is set to true, send a loss notification for this NetPkt to the strategy layer (indicating that all fragments were received, but some needed to be retransmitted). Create an ACK for this Sequence and enqueue it in the AckQueue

RTO Calculation RTO is calculated using the standard TCP RTO formula (SRTT + 4 * RTTVAR). RTT is measured as the difference between the time the fragment was transmitted and the time an ACK was received for it. Fragments with one or more retransmissions are not taken into account when calculating the RTO.

Negotiation and Initialization Upon initialization of a link, each host must detect whether the other host has BELRP enabled. This is done by sending an LpPacket containing only the Sequence field on the link, with an initial RTO of 200ms. If the host receives an ACK for the packet within the RTO, the BELRP send and receive subsystems are enabled. Otherwise, they are disabled. All other sends are halted until the host has determined whether to enable BELRP. Packets received before the BELRP status of the link is determined are still processed normally, including the queuing of ACKs.