Jump to content

Network Bottleneck?


Steve Scrimpshire
 Share

Recommended Posts

I just got a Linksys WRT54GS wireless router and everything is set up and working. But, testing with ttcp, I'm only getting 3.10 Mbit/sec from desktop to laptop and 3.93 Mbit/sec laptop to desktop. The laptop has an Integrated Wi-Fi® (802.11g) card using orinoco_cs and the desktop uses a Gigabit card, using sk98lin driver, connected to the router via Cat 6E patch cable. Here's the output of ttcp from desktop to laptop:

[root@desktop omar]# ttcp -t 192.168.1.101 -s -f m 
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.1.101
ttcp-t: socket
ttcp-t: connect
ttcp-t: 16777216 bytes in 41.33 real seconds = 3.10 Mbit/sec +++
ttcp-t: 2048 I/O calls, msec/call = 20.67, calls/sec = 49.55
ttcp-t: 0.0user 0.0sys 0:41real 0% 0i+0d 0maxrss 0+3pf 481+0csw

 

laptop to desktop:

[root@localhost /]# ttcp -t 192.168.1.100 -s -f m
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp  -> 192.168.1.100
ttcp-t: socket
ttcp-t: connect
ttcp-t: 16777216 bytes in 32.37 real seconds = 3.95 Mbit/sec +++
ttcp-t: 2048 I/O calls, msec/call = 16.19, calls/sec = 63.27
ttcp-t: 0.0user 0.0sys 0:32real 0% 0i+0d 0maxrss 0+3pf 482+5csw

 

Here's a screenshot of my settings:set.png

 

Funny thing is, the network will only work if I set the Wireless mode to B or Auto (this is a G card, remember). I'm using 64 bit encryption.

 

route -n (same for both machines):

[root@localhost /]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth1

 

No firewall is running on either machine, but there is the external firewall built in to the router.

 

Here's the routing table according to the router:

Destination LAN IP 	 Subnet Mask          Gateway        Interface
   192.168.1.0       255.255.255.0        0.0.0.0       LAN & Wireless
  gate.way.ip.0      255.255.252.0        0.0.0.0       WAN (Internet)
       0.0.0.0       0.0.0.0        Inter.face.ip.1       WAN (Internet)

Edited by Steve Scrimpshire
Link to comment
Share on other sites

steve,

first things strikes me is if the G mode isnt working then something else is wrong.... (ie. something seriously misset)

 

but if I remember the protcols are all half duplex.... in other words if your other machine in transmitting packets they will block the outgoing ones.

 

obviously make sure your not mutlicasting from the other machine... but do you have any services which poll the other PC like SAMBA.. if so then switching to NFS might be better... (just one example but the best way to find out is using a packet monitor of which there are plenty in urpmi sources....)

 

because of the HD streaming is important. Im not sure how ttcp works internally but for instance a long ftp might get higher rates.... the reason being the header packets but especially the 64 bit encryption carried along with everthing....

if this streams then its hardly noticable but if not then its a significant percentage of the packets...

 

The second question on Gbit is you seem to be getting 152Mbit/sec (or 133 assuming single parity bit) which obviously is faster than 100 so it must be working.... just not so well as you want.

 

 

Now 19MB/sec ... this could be the way its being measured.... the router has to do something with these packets and its designed to pass them on.... but a ping doesnt pass themm anywhere... in the end you need throughput through the router not to the router....

until you have another Gbit device to send it too I wouldnt worry.... but then maybe check the cables... Ive nly ever done Gbit with fibre and its a pain but the copper is meant to be ultra fussy....on crimping etc.

Link to comment
Share on other sites

Thanks for the help so far. When you say "The second question on Gbit is you seem to be getting 152Mbit/sec (or 133 assuming single parity bit) which obviously is faster than 100 so it must be working.... just not so well as you want." How do you get that figure?

 

Also, I turned everything off on both machines that could possibly be sending stuff, smb, http, proftp, etc. with no significant changes.

 

And also "obviously make sure your not mutlicasting from the other machine... " I have no idea what this means. Does it mean turn multicating off on both machines? Like I see MULTICAST in ifconfig:

laptop:

eth1      Link encap:Ethernet  HWaddr 00:02:2D:B3:54:0B  
         inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
         inet6 addr: fe80::202:2dff:feb3:540b/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:28073 errors:0 dropped:0 overruns:0 frame:0
         TX packets:33643 errors:3 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:18245013 (17.3 Mb)  TX bytes:39169376 (37.3 Mb)
         Interrupt:11 Base address:0x100

 

desktop:

eth1      Link encap:Ethernet  HWaddr 00:0C:6E:84:CA:EF  
         inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
         inet6 addr: fe80::20c:6eff:fe84:caef/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:350461 errors:0 dropped:0 overruns:0 frame:0
         TX packets:321095 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:382431988 (364.7 Mb)  TX bytes:305100740 (290.9 Mb)
         Interrupt:4 Memory:e5800000-0

Edited by Steve Scrimpshire
Link to comment
Share on other sites

ans 1.. your quoting MB (which is usualy for measurement) but cards are rated in Mbit. Given the 8 bit TCP stack then multiply by 8 - except part of the stack is parity ... its not as simple as 7 and i forget the 'exact details' but it will always be less than 8.

 

Routers/cards tend to quote Mbits mainly I think becuase it sounds more impressive (125MB/sec or Gigabit) hmm that giga sounds better....

 

2nd) yes and no - multicasting just means sending a packet to a non specific host like 10.10.10.(1-255) i.e. all of 10.10.10.

this is uncommon in unix protcols... it makes a BIG mess of networks but its done by windows almost by default (well thats not surprising)

 

at work we keep seperate vlans or subnets for windows for this reason.

however I suspect (Im guessing a bit) that MS like protocols like SAMBA have to play the same game else a windows PC hooked up to them would get confused.

 

when you have Full duplex its less noticable becuase it doesnt stop the flow of data. imagine each TCP/IP packet is seperate so each one needs a header as to where its going etc. however when you stream data (like a long ftp) the packets can be joined together.... and hence they dont all need the extra header info.

 

for the wireless they also have to carry the encryption....each seperate one needs its own...so if its interupted by a returning packet on half duplex it will have to resend the encryption and header..

 

TCP has what is known as a slow start....

it starts of slowly and tests until it looses packets... (this is the errors etc. on you IF)

 

if it keeps being interupted it will keep dropping back to the low start.

however the wireless 802.11 protcols also have a fallback becuase of the way signal strength varies... sticking one on top of the other can be less than optimum (although necassary)

 

so to keep it as efficient as possible in half duplex you need to stop it being interupted.... think of it like a radio conversation.

 

the "over" is a trailing bit signalling them to respond... so its more efficient to try and use linger packets...

this is tunable somewhere in linux (its in the kernel) butI doubt thats the immediate answer...

 

have you tried kwifi becuase it has the signal strength meter ??? it might be your getting interference from neighbours? and this is making it lower??

Link to comment
Share on other sites

ans 1.. your quoting MB (which is usualy for measurement) but cards are rated in Mbit.  Given the 8 bit TCP stack then multiply by 8 - except part of the stack is parity ... its not as simple as 7 and i forget the 'exact details' but it will always be less than 8. 

Actually, I was quoting Mb there.

 

One thing: iwconfig won't let me set the rate to 54M:

[root@localhost omar]# iwconfig eth1 rate 54M
Error for wireless request "Set Bit Rate" (8B20) :
   SET failed on device eth1; Invalid argument.

 

If I leave it blank or set it to 11M, it works.

Edited by Steve Scrimpshire
Link to comment
Share on other sites

oops your right small b .....

 

I know when I tried this I had the same problems until I tried the linuxant driverloader....

actually I think you got further...

 

It was mainly patience running out not anything particualrly difficult but that and the fact you dont get a light like on a wired NW...

I tried the linuxant and it worked

 

there is an FAA regulation which prevents the firmware being opensourced .. (this is becuase you could then increase the power) and i think this is what is stopping the driver and firmware combinaiton letting you set 54M

Im not sure btw... but it makes sense youd need the firmware to change mode from b to g.

 

If you read the reference you loose 50% perfomance by compatibility with b straight away!

 

the iwconfig stuff is quite blackbox.... Its hard to know when its working and there are so many combinations .....

i found kwifi great for this becuase it shows the signal strength but it only works for 11Mbit for me...

 

When I had driverloader working i _think_ I had 54Mbit (nominal) but Im not 100% sure!

Link to comment
Share on other sites

This is as far as I've gotten. I've tried linuxant's driverloader, which says the device does not exist. Tried ndiswrapper, which loads, but my orinoco_cs driver also loads and it uses the orinoco_cs driver. Tried setting it to use the prism54 driver, but it always defaults back to the orinoco_cs driver even when there is o reference at all to it anywhere in the configs when trying the prism54 driver.

Link to comment
Share on other sites

did it get as far as loading the config files from the windows installer ?

 

if I remember when I used it I renamed the interface ...

(this was in debian though)

and then it found it....

 

actually getting the mini webserver running was more work than actually using the driver ....

 

Do you have anyone you could borrow a different card from and see if that works ?

 

otherwise you can alias in /etc/modules.conf for the prism54 to whatever device is being used (eth1 I guess from your posts) which might stop it reverting to the orinoco_cs....

 

My (linspire) laptop has a orinoco_cs card and works fine but I couldnt get the G drivers working with opensource stuff and didnt bother with the driverloader on here.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...