Performance Enhancing Proxy
Encyclopedia
Performance Enhancing Proxies (PEPs) are network agents designed to improve the end-to-end performance of some communications protocol
. Performance Enhancing Proxies standards are defined in RFC 3135 (Performance Enhancing Proxies Intended to Mitigate Link-Related Degradations) and RFC 3449 (TCP Performance Implications of Network Path Asymmetry).
performance over a satellite link
. Split TCP functions by breaking the end-to-end connection into multiple connections and using different parameters to transfer data across the different legs. The end systems use standard TCP with no modifications, and do not need to know of the existence of the PEPs in between. Split TCP intercepts TCP connections from the end systems and terminate them. This allows the end systems to run unmodified and can overcome some problems with TCP window sizes on the end systems being set too low for satellite communications.
Communications protocol
A communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...
. Performance Enhancing Proxies standards are defined in RFC 3135 (Performance Enhancing Proxies Intended to Mitigate Link-Related Degradations) and RFC 3449 (TCP Performance Implications of Network Path Asymmetry).
Classification
Available PEP implementations use different methods to enhance performance.- Proxy Type: A PEP can either 'split' a connection or 'snoop' into it. In the first case, the proxy pretends to be the opposite endpoint of the connection in each direction, literally splitting the connection into two. In the latter case, the proxy controls the transmissions of the TCP segments in both direction, by ack filtering and reconstruction in the existing connection (see protocol spoofingProtocol spoofingProtocol spoofing is used in data communications to improve performance in situations where an existing protocol is inadequate, for example due to long delays or high error rates....
). This is based on the OSI level of implementation of the PEP. - Distribution: PEPs can be either integrated or distributed. Integrated PEP will run on a single box, while distributed PEP will require to be installed on both sides of the link that cause the performance degradation. This is quite common in commercial PEP devices, which act as a black boxBlack boxA black box is a device, object, or system whose inner workings are unknown; only the input, transfer, and output are known characteristics.The term black box can also refer to:-In science and technology:*Black box theory, a philosophical theory...
, using more or less open protocols to communicate between them in the place of TCP. - Symmetry: A PEP implementation may be symmetric or asymmetric. Symmetric PEPs use identical behavior in both directions, the actions taken by the PEP occur independent from which interface a packet is received. Asymmetric PEPs operate differently in each direction, which can cause for example only one link direction performance to be enhanced.
Types
There are a range of different types of PEPs. Each is used to solve a link related problem. Some common types include:- Split-TCP
- Ack Decimation
- Snoop
- D-Proxy
Split TCP
Split TCP is typically used to solve TCP problems with large RTTs. A typical system uses Split TCP PEPs to improve TCPTransmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
performance over a satellite link
Satellite link
A satellite link is a communications subsystem that involves a link between a transmitting Earth station and a receiving Earth station via a communications satellite.-See also:*Earth terminal*Telecommunications link*Satellite truck*Ku band*C band...
. Split TCP functions by breaking the end-to-end connection into multiple connections and using different parameters to transfer data across the different legs. The end systems use standard TCP with no modifications, and do not need to know of the existence of the PEPs in between. Split TCP intercepts TCP connections from the end systems and terminate them. This allows the end systems to run unmodified and can overcome some problems with TCP window sizes on the end systems being set too low for satellite communications.
Ack Filtering/Decimation
Ack filtering or decimation is used on highly asymmetric links. In asymmetric links the upstream and downstream rates vary widely. A common example is satellite broadband where the downstream satellite link provides significantly greater bandwidths than the upstream dialup modem link. In this scenario, the speed at which the modem can return TCP acknowledgements can be a limiting factor. As TCP acknowledgements are cumulatively acknowledged some can be decimated or filtered to improve performance.Snoop
The Snoop proxy is an example of a integrated proxy. It is designed to hide interference or collision based packet loss over a wireless link. Snoop proxies detect losses by monitoring TCP transmissions for duplicate acknowledgements. When TCP duplicate acknowledgements, indicating a packet loss, are received by Snoop, they will be silently dropped and lost data packet will be retransmitted. The TCP sender should have no knowledge of the loss. This should prevent TCP senders from unnecessarily reducing the TCP window.D-Proxy
Similar to Snoop, D-Proxy is also designed to hide interference or collision based packet loss over a wireless link. D-Proxy is a new distributed TCP proxy, requiring a proxy either side of the lossy link. Like Snoop, it uses TCP sequence numbers detect lost packets, however, it has a proactive approach, monitoring the TCP sequence numbers on data packets rather than acknowledgements. When packet loss occurs, the TCP stream will be temporarily buffered until the missing packet can be recovered and re-sequenced.External links
- PEPsal : A GPL licensed, LinuxLinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
-based, integrated splitting PEP implementation - PEP server MediaSputnik : PEP server MediaSputnik 2402 has been developed by MediaSputnik as I-PEP compatible server compliant with SatLabs Group (ESA) recommendations to support DVB-RCS standards and networks