Skip to content
Eddie Kohler edited this page Oct 17, 2017 · 1 revision

TCPAck Element Documentation

NAME

TCPAck — Click element; acknowledge TCP packets

SYNOPSIS

TCPAck([ACK_DELAY])

Ports: 2 inputs, 3 outputs

DESCRIPTION

performs TCP style acknowledgement. marked TCP/IP packets are expected on both input and output ports. use MarkIPHeader to mark packets.

input port 0 is TCP input. a packet that arrives on this input may trigger an acknowledgement. the acknowledgement acknowledges the latest in-order packet received. TCPAck gets this information from a downstream TCPBuffer element that it discovers using flow-based router context, much like how RED elements discover their QUEUE elements. the packet is sent out on output port 0 untouched.

input port 1 is TCP output. a packet that arrives on this input get tagged with an acknowledgement number. this ack number is obtained from TCPBuffer as described above. this packet also causes TCPAck to cancel scheduled ACK. the packet is then sent out on output port 1.

finally, output port 2 is used to send scheduled ACKs. packets generated on this port does not have any of the flow ID nor sequence number. another element, such as TCPConn, should be used downstream from this port to set those fields. an ACK is generated on this output only if after ACK_DELAY number of ms a triggered acknowledge was not sent. by default, ACK_DELAY is set to 20.

TCPAck only deals with DATA packets. it doesn't try to acknowledge SYN and FIN packets. TCPAck starts using ack number from the first SYN ACK packet it sees on in/output port 0 or 1. packets before that are rejected.

TCPAck does not compute checksum on any packets. use SetIPChecksum and SetTCPChecksum instead.

Generated by click-elem2man from ../elements/local/tcpack.hh:8 on 2017/10/17.

Clone this wiki locally