Apr 20, 2022 AUTHOR: pthomas
Xcp Protocol Ppt
Linux XCP implementation issues • XCP is based on floating-point calculations, while the Linux kernel only allows integer arithmetic. • XCP must change the TCP overload window, which invalidates the TCP/IP stack protocol hierarchy. • In addition, XCP must know the different TCP streams to work. New invalidity of the protocol hierarchy. • Hardware checksums in network adapters failed due to the addition of a new header between TCP and IP. Summary • XCP manages to deliver on its promises in situations where the XCP router can create a valid network load pattern. • If the XCP router cannot correctly predict its load, the protocol will fail. These situations include half-duplex connections, lack of buffer space, regular application sending, and overloaded hosts. • Implementing XCP as a separate protocol does not give enough control over TCP. Using the overload window is not accurate enough for XCP to work. • A feedback mechanism that works in all real-world scenarios must be more advanced than the one currently used by XCP. What is XCP? • XCP was developed by MIT`s Dina Katabi and released as an RFC project on October 17. 2004.
• XCP was designed in response to the question “Given our current knowledge of congestion control, how would we ideally have congestion control?” • XCP is a protocol designed to improve TCP`s congestion control algorithm. Especially in networks with a product with high bandwidth delay. • XCP takes a new approach to congestion control by requiring routers on the network to return explicit feedback to hosts. XCP header Version: 1 Format: 1 (Full Header), 2 (Minimum Header) Protocol: Next Level Protocol (6 for TCP) Length: 20 Unused: 0 RTT: Round Trip Time Measured by Sender in Milliseconds Throughput: The current byte/ms throughput used by the sender Delta_Throughput: The rate change desired by the sender, measured in bytes/second. Reverse_Feedback: The contents of the Delta_Throughput field when the message is returned to the sender by the recipient. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+–| Execution| Format| | protocol Length| | unused +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| |+- RTT +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| |-+- flow rate +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|-+-+- Delta_Throughput | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reverse_Feedback | +-+-+-+-+ XCP fails if the sender is exploded Overload window inflated because XCP does not give negative feedback. • If the sender regularly transmits data, the XCP protocol cannot converge. This results in large queue accumulations and packet loss. • Unfortunately, for XCP, regular real-world data transmission is very common.
XCP fails if the sender is burst 2 • Because the XCP protocol cannot reduce the overload window, queues form in the router. • This results in packet loss, which XCP was supposed to prevent. Master`s thesis • Directly create a functional Linux implementation with RFC design. • Because XCP must be implemented as a separate protocol layer, the implementation should not modify the existing TCP/IP code. • Use this implementation to test the protocol on a real network. • Compare the results of the actual Linux implementation with the original simulations of D. Katabi and other implementations. XCP Protocol Layer Application TCP LINK XCP IP The TCP/XCP/IP • XCP stack introduces a 20-byte header between IP and TCP that contains information about the bandwidth desired by the sender and information about what routers allow.
• XCP requires all routers and hosts on the network to use XCP to work as intended. • XCP bases all bandwidth adjustments on a per-packet calculation. XCP routers do not need to separate the different data streams, but adjust each individual packet. . Decoupling Allocation Control Efficiency Control Shared Use of Internet ResourcesDisplay Using Examples TCP TCP TCP Drop Throughput • TCP Uses AIMD: • No Drop: Increase in Constant Increment (i.e. 1 Packet/RTT) • Decrease: Halve Throughput Time Conventional Approach Control fails on router [RED, REM, AVQ, …] TCP Pairs Efficiency & Fairness XCP is fairer than TCPFlow IDFlow IDDifferent Round Trip DelaySame Round Trip Delay ThroughputThroughput(RTT is 40 ms to 330 ms) XCP Performance Overestimating the overload window due to invalid comments. • Formula throughput = cwnd/RTT causes invalid XCP return during the boot process • XCP cannot improve boot speed compared to TCP because TCP relies on the peer`s “advertised window”. The router explicitly calculates a fair throughputThe bandwidth of the aggregate flush to converge at fair rates XCP equity control remains effective when bandwidth or delay increases. ConclusionCoding Control of the effectiveness of allocation control is useful for resource managementEfficiency control is independent of different parameters such as the number of flowsModularization and reuse of controllers Assignment control does not care about usage issues Can use a new class of aggressive allocation algorithmsCurrently apply decoupling to the guaranteed service, to priority service, to response on different time scales. XCP comes well with Short Streams of Short Flows/secAverage average usage simulations show XCP is betterSors extended simulations compared to TCP via DropTail, RED, REM, AVQ, CSFQ XCP: Best Utilization Almost Zero DropsFairerEffective and Robust to Increase Bandwidth Efficient and Robust to Increase Delay. MIMD AIMD How does an XCP router calculate feedback? Efficiency Controller Fairness Controller Objective: Adjusts incoming traffic to bind capacity and flush the queue Objective: Divides between flows to converge for more equity Considers the state of a flow in the congestion header Considers aggregated traffic and queue • Algorithm: • Aggregate traffic changes around ~ Free bandwidth • ~ – Queue size So, = davg Spare – Queue algorithm: If > 0 Divide evenly between rivers if < 0 Divide flows in proportion to their current rates (Proven to converge towards equity). .
. . Internet infrastructure sharingTwo types of requests:Efficiency: Using links for maximum capacity allocation: what is the proportion of individual users? fairness; Differential bandwidth allocation; The priority is fundamental A lot of research in congestion control, QoS, DiffServ, pricing is difficult because of scaling! Efficiency Controller Decoupling allows us to use the efficiency controllermodularization and reuse XCP fails in half-duplex mode • In the half-duplex network, the XCP router does not give correct feedback to the hosts. This results in the creation of queues and greater use of oscillating bandwidth. .