Thread View: net.lan
4 messages
4 total messages
Started by Anders Hillbo
Sat, 08 Feb 1986 04:03
Problems with IP/UDP speed on Vax750/Unix4.2
Author: Anders Hillbo
Date: Sat, 08 Feb 1986 04:03
Date: Sat, 08 Feb 1986 04:03
35 lines
2203 bytes
2203 bytes
We want to connect a VAX 750, running UNIX BSD 4.2, with an Interlan controller and a custom made display station (Intel iSBC 186/51 & 82586 based) to transfer image data. We decided to use Ethernet and an UDP/IP implementation on the displaystation to be able to run in user mode on the Vax. The problem is SPEED (on the 750). A typical image consists of something between 64 kbyte and 1 Mbyte of data and the time to transfer the picture is how long you wait for the picture to show on the screen. The microprocessor based display station is just now capable of sending data in up to 300 kbyte/s , while the VAX computer only send data in 33 kbyte/s (UDP/IP, 1024 byte buffers, one user on the system). If raw IP is used (super user alone on the system), the speed increases to 182 kbyte/s. Also when sending TO the Vax the interface or something seems to drop packets if 4 of them arrive immediatly after each other. (I thought Interlan could handle back-to-back packets). We know that the packets leave the sender correctly by spying on the ether from a another displaystation which of course receives all packets with out any problem. The goal is a transfer rate at about 100 kbyte/s. The questions: . Why cant the UDP-interface send packets in a faster speed? Maybe if you could use bigger packets? . Is the limitation in the Vax750 or the interface? . Is this a well known problem? Anyone else with similar problems? . What are the real rules for trailer encapsulation. 4.2 only seems to do it when the package is 512 or 1024 bytes. Anders Hillbo CS Dept, Royal Inst of Tech. Stockholm, Sweden
Re: Problems with IP/UDP speed on Vax750/Unix4.2
Author: Christopher A. Kent
Date: Tue, 11 Feb 1986 14:45
Date: Tue, 11 Feb 1986 14:45
36 lines
2314 bytes
2314 bytes
In article <776@duvan.UUCP>, ahi@duvan.UUCP (Anders Hillbo) writes: > We want to connect a VAX 750, running UNIX BSD 4.2, with an Interlan > controller and a custom made display station (Intel iSBC 186/51 & 82586 > based) to transfer image data. We decided to use Ethernet and an UDP/IP > implementation on the displaystation to be able to run in user mode on the > Vax. > > The problem is SPEED (on the 750). > > The display station is just now capable of sending data in up to 300 kbyte/s. > the VAX computer only send data in 33 kbyte/s > > Also when sending TO the Vax the interface or something seems to drop packets > if 4 of them arrive immediatly after each other. (I thought Interlan > could handle back-to-back packets). > > The goal is a transfer rate at about 100 kbyte/s. I expect that the main problem is the VAX's i/o system; it can't handle the interrupt load quickly enough. The Interlan card can handle back-to-back packets, but on a limited basis; it has some internal buffer space, but it's not infinite. I'd go for bigger packets. There's no reason not to use full ethernet packets (1500 bytes), but you'll probably have to hack the VAX's kernel. I'm afraid I've only done this for the TCP layer, so I can't give you exact directions. We never used trailers here, because we have some binary-only equipt that doesn't understand them. I believe that the VAX only does trailers on those sizes because that's when it uses "tear-away" pages for buffers; tuning your packet sizes to use trailers and pages will also help a lot (the mbuf mechanism has a lot of overhead. Good luck, chris
Re: Problems with IP/UDP speed on Vax75
Author: tucker
Date: Wed, 12 Feb 1986 17:43
Date: Wed, 12 Feb 1986 17:43
25 lines
1726 bytes
1726 bytes
The main reason rawIP packets are SO MUCH FASTER than UDP/IP is
that the UDP layer does a big checksum on the entire data section.
This can easily be turned off (even if you have binary only) by
changing the value of a variable in the kernel called:
"udpcksum" (1 for checksum, 0 for no checksum)
This should increase the speed of UDP/IP to that of rawIP. Note
that as long as you are running on ethernet the UDP checksum isn't
really needed. Ethernet does a full packet checksum for you.
I would suggest using bigger packets to get higher speeds in
general. You should be able to send UDP/IP packets in the 2k-8k
range (depends on the socket space limit set in udp_usrreq.c on
you VAX UNIx). Your micro graphics station must also support IP
fragmentation to handle this. If you can change your kernel
you can increase the UDP socket space limit even higher if you
want. Take care when doing this. The maximum possible with
IP fragmentation is 64k at a shot.
Tim Tucker
Gould Electronics
tucker@gswd-vms.ARPA
..ucbvax!ihnp4!uiucdcs!ccvaxa!tucker
Re: Problems with IP/UDP speed on Vax75
Author: Phil R. Karn
Date: Sat, 15 Feb 1986 01:13
Date: Sat, 15 Feb 1986 01:13
41 lines
2693 bytes
2693 bytes
> The main reason rawIP packets are SO MUCH FASTER than UDP/IP is > that the UDP layer does a big checksum on the entire data section. > This can easily be turned off (even if you have binary only) by > changing the value of a variable in the kernel called: > > "udpcksum" (1 for checksum, 0 for no checksum) WARNING! WARNING! DANGER, WILL ROBINSON!!!! Quoting from RFC-817, "Modularity and Efficiency in Protocol Implementation" by David D. Clark: "There is one area which is generally accepted as causing noticeable and substantial overhead as part of TCP processing. This is computation of the checksum. It would be nice if this cost could be avoided somehow, but the idea of an end-to-end checksum is absolutely central to the functioning of TCP. No host implementor should think of omitting the validation of a checksum on incoming data." I believe this is just as valid for UDP. The Berkeley routed is a major UDP user. It already suffers greatly from an endearing naivete regarding incoming datagrams, and only the end-to-end checksums protect against all hell breaking loose should an Ethernet controller, bridge, or gateway decide to corrupt a routing (or any other) packet. This DOES happen. I have seen the buffer memories go bad in an Ethernet controller. This delightful piece of hardware would gladly corrupt received packets without notice, or garble outgoing packets (being careful, of course, to put a perfectly valid 32-bit CRC on the corrupted packet before sending it). Most recently, some garbage machine names started showing up in our ruptime listings. The problem turned out to be a flakey Ethernet bridge, and further investigation showed that all of our SUNs had set udpcksum to zero by default. I immediately patched this on as many Suns as I could find, especially those acting as IP gateways. The "udpcksum" (and "tcpcksum") "options" in 4.2BSD are, in my opinion, brain-damaged hacks that should be removed as soon as possible, along with the blind acceptance of any UDP datagram or TCP segment having a zero checksum field. Phil Karn
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads