tcp.txt
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
- How the new TCP output machine [nyi] works.
- Data is kept on a single queue. The skb->users flag tells us if the frame is
- one that has been queued already. To add a frame we throw it on the end. Ack
- walks down the list from the start.
- We keep a set of control flags
- sk->tcp_pend_event
- TCP_PEND_ACK Ack needed
- TCP_ACK_NOW Needed now
- TCP_WINDOW Window update check
- TCP_WINZERO Zero probing
- sk->transmit_queue The transmission frame begin
- sk->transmit_new First new frame pointer
- sk->transmit_end Where to add frames
- sk->tcp_last_tx_ack Last ack seen
- sk->tcp_dup_ack Dup ack count for fast retransmit
- Frames are queued for output by tcp_write. We do our best to send the frames
- off immediately if possible, but otherwise queue and compute the body
- checksum in the copy.
- When a write is done we try to clear any pending events and piggy back them.
- If the window is full we queue full sized frames. On the first timeout in
- zero window we split this.
- On a timer we walk the retransmit list to send any retransmits, update the
- backoff timers etc. A change of route table stamp causes a change of header
- and recompute. We add any new tcp level headers and refinish the checksum
- before sending.