#include <itpp/protocol/tcp.h>
Public Member Functions | |
TCP_Receiver (int label) | |
virtual | ~TCP_Receiver () |
virtual void | setup () |
virtual void | release (std::string trace_filename="") |
itpp::Packet & | get_user_message () |
called by higher layer | |
bool | is_user_message_available () |
called by higher layer | |
virtual void | set_debug (const bool enable_debug=true) |
virtual void | set_debug (bool enable_debug, bool enable_signal_debug) |
virtual void | set_trace (const bool enable_trace=true) |
virtual void | save_trace (std::string filename) |
Public Attributes | |
Signal< itpp::Packet * > | tcp_send_ack |
Slot< TCP_Receiver, itpp::Packet * > | tcp_receive |
Signal< int > | tcp_new_data |
indicate new data to higher layer | |
Slot< TCP_Receiver, std::string > | tcp_release |
Incoming TCP messages are used to update the receiver buffer and as a trigger to send an ACK message back to the TCP sender. If the "DelayedACK" option is used ACKs are only sent for every second packet (unless in the case of out of order packets). If the received packet is not out of order (i.e. the next expected sequence number in the byte stream has increased) new data is delivered to the higher layer. This delivery may be delayed in the receiver itself (user block processing delay) or by the subsequent entity if it blocks on incoming message indications.
A couple of parameters can be specified in the input file including delayed ACK timer value and timer granularity. The value of MSS should be equal to the one specified at the receiver side although it is only required for delayed ACK and receiver SWSA algorithms.
Like the TCP sender TTCPReceiver provides a simplified connection control via methods Setup and Release. Those methods are only used to reset internal state variables. No control messages are sent over the network, i.e. the receiver assumes that the corresponding methods at the sender side are called as well.
TTCPReceiverBuffer
Lorang
Bodamer
Definition at line 495 of file tcp.h.
itpp::Packet & itpp::TCP_Receiver::get_user_message | ( | ) |
bool itpp::TCP_Receiver::is_user_message_available | ( | ) |
Generated on Wed Mar 21 12:22:31 2007 for IT++ by Doxygen 1.4.7