At 06:35 PM 4/13/00 +0530, Akshay Adhikari wrote:
>Hi,
>
>In what sense are TCP sockets full duplex? Sure, data can flow in each
>direction independent of the other direction, but it wont work if this
>happens at the same time.
>
>THat is, if a client and server process simultaneously send (thats
>full-duplex) one window's worth of data on their connection, theyll
>deadlock, each waiting for the other to acknowledge receipt, which is not
>going to happen.
>
>So the programming has to be symmetric right? One sends, other receives -
>that makes it half duplex. Could anyone shed some light on this?

The TCP/IP protocols use windowing, with separate windows in each 
direction.  The protocol is more than capable of handling traffic in both 
directions simultaneously, because each logical channel is time-division 
multiplexed between data and supervisory functions.  So if both sides send 
data at exactly the same time, and the media has separate channels for each 
direction, the packets cross in the media, get received in each system, and 
the TCP/IP protocol performs the proper action for receipt of packets by 
generating the proper response, perhaps piggy-backed on the data.

If you have data moving in both directions at the same time, each packet 
contains both supervisory information and data.  The time specifications 
encourage such packet-sharing, so that protocols such as TELNET when 
character is enabled consume about half the bandwidth that it would if such 
packet-sharing was not encouraged.

With certain media, such as Ethernet, the send and receive "channels" are 
time-division multiplexed on the media, and in fact for most LANs the 
multiplexing is not only by "direction" but also by peer-peer pairs.  In 
short, the "duplexness" is full-duplex to the media driver, with the media 
driver and hardware taking care of the details.

-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to