Re: Q: SQL*net packets on TCP/IP

From: Roderick Manalac <rmanalac_at_us.oracle.com>
Date: 1995/10/28
Message-ID: <46u2jh$m6v_at_inet-nntp-gw-1.us.oracle.com>#1/1


mattj_at_atlantis.actrix.gen.nz (Matt Johnston) writes:
|> I am trying to work out why a PowerBuilder application that generates 30
|> writes to SQL*Net and 30 reads from SQL*Net (as logged in SQL*net trace
|> file) with an average write or read size of 120 bytes takes 12 seconds
|> longer to complete using a 19,200 bps PPP link than it takes on a 10Mbps
|> ethernet link.
|> The only way I can explain 12 seconds is to use the following assumptions:
|> a) Every SQL*Net write or read is encapsulated in a TCP packet, adding
|> 20 byte TCP header
|> b) This is further encapsulated in an IP packet, adding another 20 byte
|> header.
|> c) This is further encapsulated in a PPP frame. I gather this is like HDLC,
|> so this will add another 5 to 7 bytes.
|> d) Every PPP frame is acknowledged at the HDLC-like level with an RR (5-7
|> bytes).
|> e) Every TCP packet is ACKed at the TCP level.
|> f) Every SQL*Net "write" by the client is acknowledged by the
|> server's SQL*Net separately from the following "read" that is
|> logged in the SQL*Net trace file (and likewise the client sends an
|> SQL*Net acknowledgement for every "read" it completes.
|>
|> This is the part I'm really guessing at!
|>
|> Can anyone confirm or correct this for me? Thanks.

Everything you see logged in the SQL*Net trace file is all Oracle sends and receives. There are no separate acknowledgements. Oracle assumes TCP to be a reliable, stream oriented protocol. I'm not intimately aware of how the lower levels of TCP work (especially over PPP), but I've heard that acknowledgements can be piggybacked with the reply sent by the other side.

There's a huge difference between 19.2Kb and 100Mb. And many modems tend to lower the baud rate if the phone line is noisy.

Roderick Received on Sat Oct 28 1995 - 00:00:00 CET

Original text of this message