Connecting to a modern Xserver with an old client

Grant Taylor gtaylor at tnetconsulting.net
Sat Jul 22 22:56:26 UTC 2023


On 7/22/23 3:47 PM, Michael K wrote:
> 
> To answer Grant's question. Yes, I had added the X ports but I've now turned 
> off the firewall just to be sure.

ACK

I generally don't like disabling the firewall.  --  I'm currently 
tilting at RPC for NFS to get it to work through a firewall.

But sometimes disabling the firewall, or better pin-holing the pair of 
communicating systems, is the better part of valor or at least sanity 
preserving during troubleshooting.

> Here is the wireshark conversation.

Thank you.

> I'm not knowledgeable enough to recognize the issue..

I don't remember the last time I looked at X11 traffic with a sniffer. 
So, I could be completely off my rocker with my analysis (below).

N.B. I've tried to tweak the white space so that columns line up in a 
way that I think is slightly better.

> 1     0.000000000    192.168.1.16    192.168.1.1    TCP    60    6915 → 6001 [SYN] Seq=0 Win=0 Len=0 MSS=1416
> 2     0.000165997    192.168.1.1    192.168.1.16    TCP    58    6001 → 6915 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1460
> 3     0.005196101    192.168.1.16    192.168.1.1    TCP    60    6915 → 6001 [ACK] Seq=1 Ack=1 Win=1416 Len=0

This looks like a standard TCP 3-way handshake to me.

> 4     0.008854195    192.168.1.16    192.168.1.1    X11    66                Initial connection request

This looks like a message from the sniffer saying that X11 protocol is 
starting.

> 5     0.008914324    192.168.1.1    192.168.1.16    TCP    54    6001 → 6915 [ACK] Seq=1 Ack=13 Win=64228 Len=0
> 6     0.009029932    192.168.1.1    192.168.1.16    TCP    62    6001 → 6915 [PSH, ACK] Seq=1 Ack=13 Win=64228 Len=8 [TCP segment of a reassembled PDU]

I assume that's X11 application protocol traffic.

Maybe turning up verbosity would show more details.  Though I don't know 
that such is warranted.  (See comments below the packet capture.)

> 7     0.009086172    192.168.1.1    192.168.1.16    X11    110               Initial connection reply
> 8     0.009149782    192.168.1.1    192.168.1.16    TCP    54    6001 → 6915 [FIN, ACK] Seq=65 Ack=13 Win=64228 Len=0
> 9     0.017057921    192.168.1.16    192.168.1.1    TCP    60                [TCP ZeroWindow] 6915 → 6001 [ACK] Seq=13 Ack=66 Win=0 Len=0
> 10    0.019632130    192.168.1.16    192.168.1.1    TCP    60                [TCP ZeroWindow] 6915 → 6001 [ACK] Seq=13 Ack=66 Win=0 Len=0
> 11    0.023341315    192.168.1.16    192.168.1.1    TCP    60                [TCP ZeroWindow] 6915 → 6001 [ACK] Seq=13 Ack=66 Win=0 Len=0

I assume that's X11 application protocol traffic.

> 12    0.083569102    192.168.1.16    192.168.1.1    TCP    60    6915 → 6001 [FIN, PSH, ACK] Seq=13 Ack=66 Win=0 Len=0
> 13    0.083647415    192.168.1.1    192.168.1.16    TCP    54    6001 → 6915 [ACK] Seq=66 Ack=14 Win=64228 Len=0

This looks like the start, but incomplete capture, of a normal TCP 4-way 
connection terminating.  ...16 tells ...1 that it wants to terminate the 
TCP connection via the FIN flag.  ...1 replies acknowledging ...16's FIN.

> Also, yes the X display is 1 on this server.

This packet capture makes it obvious to me that the X11 client 
(application) is successfully initiating a TCP connection and talking 
the X11 protocol to the X11 (display) server.  This means that:

1)  The firewall is not interfering.
2)  X11 display :1 is the proper display.
3)  There do not appear to be any network / IP / TCP issues with the 
communication.
4)  This seems to be an X11 protocol level problem.
5)  This seems to NOT be a networking problem.

Turning up the verbosity on the capture /may/ provide more details.  Or 
seeing if the network sniffer has the ability to produce more details 
about the actual X11 protocol.  Wireshark / Tshark can be extremely 
impressive.

I think I would be inclined to make sure that I had the *X11* /console/ 
showing to see if any errors shed some light on things.

I'd also look to see if any additional logging could be enabled for the 
X11 (display) server and / or X11 client (application) to see if it's 
possible to get either of them to provide any additional diagnostic data.

Aside:  It's my understanding that there are a couple of common TCP 
connection termination methods:

1)  Each end sends it's own FIN and receives an ACK from the other end.

       L ---FIN------> R
       L <------ACK--- R
       L <--FIN------- R
       L -------ACK--> R

2)  One end sends it's FIN to the other end, the other end ACKs the 
first's FIN /and/ sends it's own FIN at the same time, and then the 
first end ACKs the second end's FIN.

       L ---FIN------> R
       L <--FIN,ACK--- R
       L -------ACK--> R



Grant. . . .


More information about the xorg mailing list