• English
    • Norsk
  • English 
    • English
    • Norsk
  • Administration
View Item 
  •   Home
  • Det matematisk-naturvitenskapelige fakultet
  • Institutt for informatikk
  • Institutt for informatikk
  • View Item
  •   Home
  • Det matematisk-naturvitenskapelige fakultet
  • Institutt for informatikk
  • Institutt for informatikk
  • View Item
JavaScript is disabled for your browser. Some features of this site may not work without it.

A Linux implementation and analysis of the eXplicit Control Protocol (XCP)

Mosebekk, Petter
Master thesis
View/Open
XCPxMasterxThesis.pdf (514.0Kb)
Year
2005
Permanent link
http://urn.nb.no/URN:NBN:no-10622

Metadata
Show metadata
Appears in the following Collection
  • Institutt for informatikk [3652]
Abstract
The eXplicit Control Protocol (XCP) was released as an RFC draft on October 17, 2004. In this paper we have looked into the theory behind the development of XCP. In addition, we created a working Linux implementation of XCP as part of our investigation of the

protocol. This paper also discusses the performance results we got by using our implementation of XCP, and compares them to TCP and other papers regarding XCP.

The XCP protocol has been developed as a new way to improve the congestion control, bandwidth utilization and congestion avoidance algorithm in TCP. In contrast to most other enhancements of the TCP protocol, XCP does not try to be backward compatible with existing TCP implementations. XCP introduces a new layer in the TCP/IP stack, which is used to add an XCP header in front of the regular TCP packet. The main difference between TCP and XCP is that an XCP stream allows routers to explicit set how much bandwidth to allow in the XCP packets passing through them. By using explicit feedback from the network, XCP promises to prevent queue buildup in routers and packet drops caused by congestion. XCP allows the use of more aggressive algorithms, than in use by TCP, in order to quickly distribute any available bandwidth amongst XCP-enabled TCP-flows.

Our Linux implementation was based on the original XCP RFC draft. We implemented XCP as a separate protocol, situated between TCP and IP in the Linux kernel. Our goal was to create an implementation of XCP that would run without the need to change the existing TCP or IP code. By creating the XCP protocol as a Linux kernel module, we managed to achieve this goal. However, the very nature of XCP made implementing it as a separate protocol difficult, as the XCP protocol needed intimate knowledge of various TCP concepts; such as the congestion window and TCP-flows.

Simulations have shown XCP to be able to prevent queue buildup in routers, while at the same time maximizing throughput. Our tests managed to confirm these results, showing that XCP can be superior to TCP in some environments. However, our tests also show that XCP is vulnerable to a number of common scenarios, where it fails to work as intended. Scenarios such as half-duplex links, bursty applications and incorrect router setup make the XCP routers return invalid feedback back to the XCP hosts. Incorrect feedback from the XCP routers can lead to queue build-up, packet drops and oscillatory

behavior, which are the same problems as XCP set out to solve.
 
Responsible for this website 
University of Oslo Library


Contact Us 
duo-hjelp@ub.uio.no


Privacy policy
 

 

For students / employeesSubmit master thesisAccess to restricted material

Browse

All of DUOCommunities & CollectionsBy Issue DateAuthorsTitlesThis CollectionBy Issue DateAuthorsTitles

For library staff

Login
RSS Feeds
 
Responsible for this website 
University of Oslo Library


Contact Us 
duo-hjelp@ub.uio.no


Privacy policy