05.08.2014 Views

An Investigation into Transport Protocols and Data Transport ...

An Investigation into Transport Protocols and Data Transport ...

An Investigation into Transport Protocols and Data Transport ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.1. TCP Hardware Requirements 82<br />

this effect should be negligible on long latency paths where the extra latency<br />

of processing the larger segment is small compared to the end-to-end latency.<br />

Further information can be found in [Ste94, MDK + 00].<br />

5.1.3 CPU Requirements<br />

A context switch requires that the CPU state needs to be stored <strong>and</strong> restored.<br />

The transport of segments to <strong>and</strong> from a PC requires the context switching<br />

of hardware <strong>and</strong> software control such that separate compute processes of<br />

the operating system can gain access to the CPU resources.<br />

Gigabit speeds require the transport of 1,000,000,000<br />

8×1500<br />

= 83, 333 packets per<br />

second using st<strong>and</strong>ard MTU sized packets. This means that a packet needs<br />

to be processed about every 12µsec.<br />

As TCP uses feedback from acknowledgments, the TCP sender must also<br />

process all incoming acks. This means that a TCP sender must send out data<br />

<strong>and</strong> receive acks in order to enable reliable transport. Also, TCP requires<br />

the extra processing overhead of the contents of acks in order to determine<br />

what data needs to be retransmitted 1 .<br />

At higher speeds, more packets need to be h<strong>and</strong>led by the end systems<br />

which results in higher CPU utilisation.<br />

The overheads required in the context switching of interrupts can be<br />

mitigated via interrupt coalescing (See Section A.2.4) <strong>and</strong> the use of advanced<br />

queue management techniques such as NAPI (See Section 5.2.3). Using larger<br />

sized packets (See Section 5.1.2) may also help reduce the CPU utilisation<br />

as long as fragmentation does not occur.<br />

Figure 5.3 shows the CPU load during individual TCP transfers between<br />

1 Also SACKs prove to be a serious overhead in computational terms.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!