19-02-2011, 09:23 AM
(18-02-2011, 12:52 AM)Mark Wrote: TCP (Transmission Control Protocol)
TCP is a connection oriented protocol that provides reliable delivery of data from one computer program to another. TCP is used by applications such as FTP.
When you send data using TCP, the receiver responds with an acknowledgment message when it receives the data. The sender keeps a record of every packet that it sends and it waits until it receives the acknowledgment before sending the next packet. The sender also keeps a timer from when the packet was sent and re-sends a packet if the timer expires, this is used when a packet is lost or corrupt.
Not entirely accurate. The server side or the one who is sending SYN(chronize) / ACK(nowledge)packets does keep a record of every ACK that it receives back, but it does not wait for ACK packets to keep on sending. It may send 100 SYN packets in a burst and may receive back only 97 ACK's. There is a three way handshake they always show you diagrams of that only represents what is necessary to initiate the connection. The thing you have to remember is that there are actually two connections in essence being made with TCP. Each side on the connection has both a transmit or Tx(transmit) and a Rx(receive) they are independent of each other. The built in error checking on the server is simply whatever ACK packets were missing it resends SYNs first to make sure that the client did NOT receive the packet and that it was not just an routing/networking error when the client was supposed to have sent the ACK, and so on.
If the two sides waited for each individual packet it would only slow things down. TCP uses error correction, it is not one side talking at a time saying I GO, YOU GO. It is both sides speaking and listening simultaneously. Something that we as humans have an extraordinarily hard time with.
Trolls are the last thing you need to be concerned with.
VCD Wrote:// Forever more, count and reply, bitch.