1 / 10

Data Plane: Per Hop Design

Data Plane: Per Hop Design. 09/14/05. currentNode. currentNode. playerPtr. playerPtr. newPacketPtr. newPacketPtr. stalePacketPtr. stalePacketPtr. Buffer Structure (old slide 1). parentChildLink. A. B. playerPtr. playerPtr. newPacketPtr. newPacketPtr. stalePacketPtr.

sven
Download Presentation

Data Plane: Per Hop Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Data Plane: Per Hop Design 09/14/05

  2. currentNode currentNode playerPtr playerPtr newPacketPtr newPacketPtr stalePacketPtr stalePacketPtr Buffer Structure (old slide 1) parentChildLink

  3. A B playerPtr playerPtr newPacketPtr newPacketPtr stalePacketPtr stalePacketPtr Buffer Structure (old slide 2) D E c The closer to the playerPtr The solid the buffer should be. The closer to the newPacketPtr The more potential skipped packets F G

  4. Per Hop Details P2 P1 P3 newPktPtr P playerPtr app buf Kernel buf C playerPtr newPktPtr

  5. TCP Options (1) • Avoid retransmission timeout of TCP, relay on dup ACKs to detect loss and activate fast retransmission and recovery. • Timeout is long, also will force TCP to go back to slow start phase (cwin=1) • Need 3 Dup ACKs to use fast retrans./recovery. Need enough packet in fly constantly. • Default TCP has Nagel algorithm enabled, kernel will accumulate data to MSS before sending out most of time. Packet count may be low for low stream rate. • TCP_NODELAY option disables that

  6. TCP Options (2) • Keep enough packet in flight: • TCP_NODELAY option allows small packets to be sent immediately (as long as cwin, rwin allows) • If we don’t have enough packet for low bw streams, small keep-alive packets can be sent so we can keep packet count per sec >= C (to be determined) • We tested on various combination of Windows and Linux, and TCP_NODELAY works (50k stream rates, 256bytes per packet, we see every packets sent out immediately with NODELAY, and without this option, packets are sent in MSS)

  7. Keep Alive and Congestion Detection • Keep Alive message can be used to detect various conditions faster: • Now we know lower bound of expected packet count per sec, if receiver side get “much less” than that, something is wrong. • Can be used to detect both “liveness” of the TCP connection and “congestion” (dead can be thought of worst congestion.)

  8. Tp1 Tp2 Tp3 Tp4 Tp5 Tp6 Packet Tran P Inserted keep-alive msg C Tc1 Tc2 Tc3 Tc4

  9. Other Indications of Congestion (1) • From parent side, if the application buff is building up, we know we have congestion. Some simple accounting can calculate the throughput trying to push vs real throughput • But can not see Kernel buffer, when it is big (comparing to stream rate) it takes long to detect that

  10. Other Indications of Congestion (2) • Packet buffer (before sending to player) is shrinking: • This is also a good indication of we have congestion and need to catch up • But it’s harder to pin point where is the problem. (It could be caused by up streams, other parents)

More Related