Project: Improving TCP performance by adding awareness of wireless link errors
It is well known that TCP performs poorly over wireless links because transmission errors on these links can cause appreciable packet loss, but TCP interprets packet loss as indicating congestion, to which it responds by slowing down. Fortunately, wireless links are most useful when used at the *EDGE* of the network, since they allow mobile users to connect to wired infrastructure links. Consequently, the same end-system devices that implement TCP also implement wireless communication. This means that knowledge of transmission errors exists in these devices, in the link layer, but is not being acted on by the transport layer. This project will modify the Linux C code that implements 802.11 drivers and TCP, to make TCP aware of link layer transmission errors. A source will know that a transmission error occurred because it did not receive an 802.11 ack, so TCP at the source need not shrink its congestion control window. Both source and destination will be able to detect when transmission errors are likely by monitoring the signal strength.