Sponsored Content
Full Discussion: Bizzare TCP/IP problem
Top Forums UNIX for Advanced & Expert Users Bizzare TCP/IP problem Post 302493802 by Corona688 on Thursday 3rd of February 2011 05:50:17 PM
Old 02-03-2011
Quote:
Originally Posted by pileofrogs
Hi all.

I have a really really weird problem that I've been working on for days.

The problem manifested as users cannot connect to our web servers via SSH when they're using our wireless network.
It sounds like an MTU problem. A while ago we had another fellow with a similar-looking problem -- he could connect on FTP, but the socket would transfer a few kilobytes then timeout, because his client's MTU was too large.

Early in the session when they're still negotiating they'll be mostly sending small packets and the problem goes unnoticed, but when you start transferring bulk data(or ssh keys?), some link between your clients and your web server chokes on packets larger than its configured to handle and drops them into hyperspace, leaving both ends waiting for the other. Retransmits also get dropped, so the connection chokes and eventually dies.

It should be able to handle that gracefully -- compliant routers send an ICMP reply which says "too big! fragment them more!" But there are unfortunately lots and lots of firewalls set up by people convinced that all ICMP is bad.

Try reducing the MTU on your clients and see if that helps.

Try pinging hosts from the wireless with huge packets to see if some links start dropping before others and, if they do drop, whether anything ICMP replies.

Last edited by Corona688; 02-03-2011 at 06:56 PM..
 

10 More Discussions You Might Find Interesting

1. IP Networking

tcp problem with port

I am trying to connect via DBACCESS and Informix server to a server on a different computer. When I execute the connect command from dbaccess I get the following message, Exec format error cannot bind a name to the port. As far as I know the port is not being used by another client. How... (1 Reply)
Discussion started by: lopez
1 Replies

2. IP Networking

WinXP and TCP/IP Problem

Hi Eveyone, I have A small problems maybe some one can help me. I'm running a small network at home with internet access. Two PC's have Win XP and one has Win98se. I have them all hook up on a SMC router. ALL windows firewall are off and and harddrive sharing is on. I am using DCHP network... (3 Replies)
Discussion started by: Peterh
3 Replies

3. UNIX for Advanced & Expert Users

Bizzare (while statement)

I'm trying to use the while statement to increment a positive number, with a leading "0". when I pass it through, it seems to come out with a negative value, and all the increments remain negative. This is what I have: i=010986294184 j=010986988888 while ; do echo $i i=(($i + 1)) done... (8 Replies)
Discussion started by: Khoomfire
8 Replies

4. Solaris

TCP Problem

I am running a Java Client on Solaris 9 which communicates with the Server using TCP/IP. The client transmits a FIN packet to server. The server sends a ACK, FIN enters LAST_ACK state and then waits for ACK from client. The client did not respond back leaving the server in LAST_ACK itself. Also... (0 Replies)
Discussion started by: diarun
0 Replies

5. Programming

very bizzare file writing problem

I'm trying to write a function which opens a file pointer and writes one of the function parameters into the file, however for some reason Im getting a core dump error. The code is as below void WriteToFile(char *file_name, char *data) { FILE *fptr; /*disk_name_size is a... (10 Replies)
Discussion started by: JamesGoh
10 Replies

6. Red Hat

tcp/ip problem

how the data from disk is loaded into memory and then it transfered to tcp/ip packet. how i can find how many pages are loaded into memory by that process what is the rate of context switch for that process. (5 Replies)
Discussion started by: amar20
5 Replies

7. Shell Programming and Scripting

tcp/ip and memory problem

how the data from disk is loaded into memory and then it supplied to tcp/ip packet. how i can trace the no of pages loaded in memory by that process and rate of context switch for that process. (1 Reply)
Discussion started by: amar20
1 Replies

8. Programming

Problem with tcp server

Hello @ all, I hope you can give me some advice :b: I will be following code for a tcp server and doStuff () function, the clients treated. From some point, I have several identical clients (zombies, I think), the same records in the database write. Has anyone an explanation? What can I... (1 Reply)
Discussion started by: yumos
1 Replies

9. Programming

Bizzare optimization problem

I have a C program that, for the life of me, I can't see any possible stack corruption in but for some reason corrupts a local variable to 0 when not referenced. My compiler is gcc 4.3.4. But my question's not really a code question, it's a compiler question. The glitch is weirdly specific: ... (3 Replies)
Discussion started by: Corona688
3 Replies

10. Programming

Problem and question with TCP

Hi guys , i write this message for a doubt, a time ago i wrote a client/server program with TCP/IP in Linux. When i tested the program flooding the server with messages of 1024 bytes (Or 1025 bytes i dont remember exactly the number but was more that 1000 bytes) in certain point a message was... (5 Replies)
Discussion started by: Kovalevski
5 Replies
TRACEROUTE(1)						      General Commands Manual						     TRACEROUTE(1)

NAME
traceroute - print the route packets take to network host SYNOPSIS
traceroute [-46FInrRTV] [-f first_ttl] [-p port] [-m max_hops] [-N concurrent_hops] [-t tos] [-w timeout] [-q nqueries] [-S source_addr] [-i interface] [-g gateway] host [packetlen] traceroute6 [options] DESCRIPTION
traceroute tracks the route packets take across a TCP/IP network on their way to a given host. It utilizes the IP protocol's time to live (TTL) field and attempts to elicit an ICMP TIME_EXCEEDED response from each gateway along the path to the host. traceroute6 is just another name for the same program, and is equivalent to invoking traceroute with the -6 option. Tracing with UDP The default mode of operation is to use UDP packets for path detection. This will send packets of a given size to a range of destination ports, usually in the high port range, and increment the destination port number for each probe packet sent). Intermediate gateways will return ICMP time exceeded errors when the packet's TTL reaches zero. When a packet reaches the remote host, and the chosen port is not in use, the host will return an ICMP port unreachable error. If the port is in use, the probe packet will be delivered to this port, more likely than not without eliciting a response. The port range is chosen so that it is rather unlikely that this port will be in use on the remote system. Tracing in UDP mode does not require super user privileges, as the Linux UDP implementation supports a so-called error queue, through which ICMP error packets related to a specific port can be delivered to the application. Tracing with ICMP In this mode, traceroute sends ICMP echo packets to the destination host, pretty much like the ping utility. ICMP tracing requires super user privilege, as it needs to open a raw socket to listen for incoming ICMP packets. Non-root users are not permitted to open such sockets for security reasons. ICMP traces are currently supported over IPv4 only. Tracing with TCP In TCP mode, traceroute will try to connect to the destination host. This causes the kernel to send a SYN packet to the remote host, again varying the TTL for each probe. The default port number used for TCP probes is 80 (http). When the probe reaches the destination host, it will either accept the connection (in case there's a service listening on this port), or respond with a TCP RST packet (in case there isn't). TCP tracing requires super user privilege, as it needs to open a raw socket to listen for incoming ICMP packets. Non-root users are not permitted to open such sockets for security reasons. ICMP traces are currently supported over IPv4 only. Caveats Many gateways are configured to limit the rate at which they will send ICMP error packets. Thus, when you run lots of traces in close suc- cession, an increasing number of gateways may "disappear", with probes timing out instead of eliciting an ICMP response. Rate limiting often happens at a granularity of 30 to 60 seconds, so do not expect things to work properly if you run more than two or three traces per minute. OPTIONS
The only required parameter is the name or IP address of the destination host. This parameter can be followed by the size of the probing packet sent to that host (40 by default). Varying the size of the packet in conjunction with the -F parameter can be used to obtain infor- mation about the MTU of individual network hops. This does not apply to TCP, which uses SYN packets to establish a path trace. Additional options are: -6, -4 Explicitly force IPv4 or IPv6 traceouting. By default, the program will try to resolve the name given, and choose the appropriate protocol automatically. If resolving a host name returns both IPv4 and IPv6 addresses, traceroute will use IPv4. Invoking the pro- gram as traceroute6 is the same as using the -6 option. -F Set the "Don't Fragment" bit. This tells intermediate routers not to fragment the packet when they find it's too big for a network hop's MTU. -f first_ttl Specifies with what TTL to start. Defaults to 1. -g gateway Tells traceroute to add an IP source routing option to the outgoing packet that tells the network to route the packet through the specified gateway. Not very useful, because most routers have disabled source routing for security reasons. -I Use ICMP ECHO instead of UDP packets when probing the route. This option is available to the super user only, as normal users do not have the privileges to create raw sockets. -i interface Specifies the interface through which to traceroute should send packets. By default, the interface is selected according to the routing table. NOTE: This option changed from previous versions of traceroute! Older versions used -I to specify the interface name. -m max_hops Specifies the maximum number of hops traceroute will probe. The default value is 30. -N concurrent_hops Specifies the number of probe packets sent out simultaneously. Sending several probes concurrently can speed up traceroute consid- erably. However, when specifying a number that's too large, the destination host will start to throw away random ICMP responses (if it implements ICMP rate throttling), and traceroute will be unable to detect the final hope reliably. The default value is 6. -n Do not try to map IP addresses to host names when displaying them. -p port Specifies the UDP destination port base traceroute will use. When sending its UDP probe packets, it will send them to port + hop - 1 for each hop. If there are ports in this range in use on the destination host, traceroute will not be able to identify reliably when it has reached the destination host (probes will appear to time out). The default port is 33434; you can use -p to change this to a different value. -q numqueries Sets the number of probe packets per hop. The default value is 3. -r Bypass the normal routing tables and send directly to a host on an attached network. If the host is not on a directly-attached net- work, an error is returned. This option can be used to ping a local host through an interface that has no route through it. -R Set the loose source route option on outgoing packets, asking intermediate routers to record their address as the packet passes. This can be useful if you want to find the address of an intermediate router that has been configured to not respond to traceroute packets. This feature hasn't been implemented yet. -S source_addr Chooses an alternative source address. Note that you must select the address of one of the interfaces. By default, the address of the outgoing interface is used. -T Use TCP instead of UDP packets when probing the route. This option is available to the super user only, as this requires a raw ICMP socket, which normal users are not permitted to create. -t tos Set the IP Type of Service (TOS) and Precedence value. Useful values are 16 (low delay) and 8 (high throughput). Note that in order to use some TOS precendence values, you have to be super user. -V Print the version and exit. -w sec Wait for sec seconds before sending the next probe packet. Note that unlike older traceroute versions, this implementation will transmit several probe packets in parallel, for different hop values. However, it will never send more than 1 packet per hop value at the same time. SEE ALSO
ping(8), netstat(8). AUTHOR
Concept and command line options based on the original LBL implementation of traceroute, written by Van Jacobson. This implentation is a complete rewrite and redesign, written and copyright (C) 2000-2008 Olaf Kirch <okir@suse.de>. 4.3 Berkeley Distribution 6 December 2000 TRACEROUTE(1)
All times are GMT -4. The time now is 06:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy