Hide metadata

dc.date.accessioned2013-03-12T07:59:20Z
dc.date.available2013-03-12T07:59:20Z
dc.date.issued2005en_US
dc.date.submitted2005-06-05en_US
dc.identifier.citationMosebekk, Petter. A Linux implementation and analysis of the eXplicit Control Protocol (XCP). Masteroppgave, University of Oslo, 2005en_US
dc.identifier.urihttp://hdl.handle.net/10852/9283
dc.description.abstractThe 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.nor
dc.language.isoengen_US
dc.titleA Linux implementation and analysis of the eXplicit Control Protocol (XCP)en_US
dc.typeMaster thesisen_US
dc.date.updated2005-06-21en_US
dc.creator.authorMosebekk, Petteren_US
dc.subject.nsiVDP::420en_US
dc.identifier.bibliographiccitationinfo:ofi/fmt:kev:mtx:ctx&ctx_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:dissertation&rft.au=Mosebekk, Petter&rft.title=A Linux implementation and analysis of the eXplicit Control Protocol (XCP)&rft.inst=University of Oslo&rft.date=2005&rft.degree=Masteroppgaveen_US
dc.identifier.urnURN:NBN:no-10622en_US
dc.type.documentMasteroppgaveen_US
dc.identifier.duo27942en_US
dc.contributor.supervisorCarsten Griwodz, Pål Halvorsenen_US
dc.identifier.bibsys051156601en_US
dc.identifier.fulltextFulltext https://www.duo.uio.no/bitstream/handle/10852/9283/1/XCPxMasterxThesis.pdf


Files in this item

Appears in the following Collection

Hide metadata