Networking Forums

Networking Forums > Computer Networking > Linux Networking > Question about flow control over ethernet with TCP

Reply
Thread Tools Display Modes

Question about flow control over ethernet with TCP

 
 
C. J. Clegg
Guest
Posts: n/a

 
      05-01-2006, 07:32 PM

Computer A uses send() to send a continuous stream of data to Computer
B, via a TCP (connection-oriented, reliable) connection, and Computer
B uses recv() to read it from the socket.

Both are running Fedora Core 3, if that matters.

If Computer B is busy and is unable to keep up with the stream of data
being sent by Computer A, what eventually happens?

Does Computer B fill up some kind of internal FIFO buffer and then
block Computer A from sending any more until space is available?

Or, does Computer A just keep sending and the excess / overflow just
falls onto the floor and is lost?

Or, is it up to the application that is using these sockets to provide
the flow control, similar to XON and XOFF in the old serial protocol?
 
Reply With Quote
 
 
 
 
Grant
Guest
Posts: n/a

 
      05-01-2006, 09:31 PM
On Mon, 01 May 2006 15:32:44 -0400, C. J. Clegg <(E-Mail Removed)> wrote:

>
>Computer A uses send() to send a continuous stream of data to Computer
>B, via a TCP (connection-oriented, reliable) connection, and Computer
>B uses recv() to read it from the socket.
>
>Both are running Fedora Core 3, if that matters.
>
>If Computer B is busy and is unable to keep up with the stream of data
>being sent by Computer A, what eventually happens?
>
>Does Computer B fill up some kind of internal FIFO buffer and then
>block Computer A from sending any more until space is available?
>
>Or, does Computer A just keep sending and the excess / overflow just
>falls onto the floor and is lost?
>
>Or, is it up to the application that is using these sockets to provide
>the flow control, similar to XON and XOFF in the old serial protocol?


Do a tcpdump -ni ethX and pay attention to window

Grant.
--
Memory fault -- brain fried
 
Reply With Quote
 
noEMA
Guest
Posts: n/a

 
      05-06-2006, 03:23 PM
On Mon, 01 May 2006 15:32:44 -0400, C.J.Clegg wrote:

>
> Computer A uses send() to send a continuous stream of data to Computer B,
> via a TCP (connection-oriented, reliable) connection, and Computer B uses
> recv() to read it from the socket.
>
> Both are running Fedora Core 3, if that matters.
>
> If Computer B is busy and is unable to keep up with the stream of data
> being sent by Computer A, what eventually happens?
>
> Does Computer B fill up some kind of internal FIFO buffer and then block
> Computer A from sending any more until space is available?
>
> Or, does Computer A just keep sending and the excess / overflow just falls
> onto the floor and is lost?
>
> Or, is it up to the application that is using these sockets to provide the
> flow control, similar to XON and XOFF in the old serial protocol?


Hi.

There are a few mechanism in the TCP/IP stack to help on those issues.

ICMP Source Quench message (ICMP type 4 )
When a computer is too busy to receive a certain quantity of messages,
it can send ICMP type 4 messages to the other host and by doing so
tell the other host to slow down its number of packets transmitted per
period of time. Obviously, Firewall issues can happen here.


The other mechanism is the "Windows Size" feature.
When the TCP connection is created, both computers do not know how
reliable the network is.

So the Host A send the first packets to host B.
And wait for Host B to replay that all went fine.

We do not want computers to wait just to hear that all went fine.
So next, Host A send to host B two packets. And will wait for an
confirmation that both packets went fine.

And the number of packets sent without confirmation will raise
up to a value preprogrammed in the stack.

Now, let's say an unfortunate event occur. A packet is lost.
or the confirmation packet is lost.

Then the "Windows Size" will be diminished.



Hope it help...

 
Reply With Quote
 
C. J. Clegg
Guest
Posts: n/a

 
      05-06-2006, 10:30 PM
On Sat, 06 May 2006 11:23:32 -0400, noEMA <(E-Mail Removed)>
wrote:

>> Hope it help...


It does, thank you...
 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Flow Control on Serial Device Paul Pridt Linux Networking 13 04-25-2007 03:08 AM
Gigabit Ethernet and Flow Control ChrisW Windows Networking 0 06-22-2006 03:02 PM
Simple Question? - Flow Control =?Utf-8?B?R2FyeQ==?= Windows Networking 1 11-16-2004 03:58 AM
Newbie Question -- iptables flow of control Bob Simon Linux Networking 1 01-28-2004 05:30 PM
flow control - untypical, and very urgent! OM Linux Networking 0 07-01-2003 12:17 AM



1 2 3 4 5 6 7 8 9 10 11