Bir genel katalog sunucusuna bağlantım sırasında [PSH, ACK] ne yapıyor?


14

Linux sunucum bir genel katalog sunucusuna LDAPS bağlantısı kurmaya çalışıyor ve bağlantı kopuyor (muhtemelen GC tarafından).

Tartışma amacıyla, 1.1.1.1'in Linux sunucusu ve 1.2.3.4'ün genel katalog sunucusu olduğunu varsayalım.

telnetLinux kutusundan kullanmaya çalışırsam şunu görüyorum:

[root@foobox ~]# telnet gcfoo.exampleAD.local 3269
Trying 1.2.3.4...
Connected to gcfoo.examplead.local.
Escape character is '^]'.
Connection closed by foreign host.

4. ve 5. satırlar arasında gecikme yok. Hemen bağlantıyı kesiyor.

telnetSonuçların biraz yanıltıcı olabileceğini düşündüm (aslında herhangi bir güvenli iletişim için uygun olmadığından), cihazdan gerçek bağlantı girişiminin (LDAPS gerektiren gerçek programı kullanarak) bir paket yakalamasını topladım.

İşte gördüğüm (yine IP'ler ve kaynak portları masum korumak için yeniden adlandırıldı):

No.     Time      Source     Destination      Protocol    Length    Info
1       0.000000  1.1.1.1    1.2.3.4          TCP         66        27246 > msft-gc-ssl [SYN] Seq=0 Win=5840 Len=0 MSS=1460 SAC_PERM=1 WS=128
2       0.000162  1.2.3.4    1.1.1.1          TCP         62        msft-gc-ssl > 27246 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 SACK_PERM=1
3       0.000209  1.1.1.1    1.2.3.4          TCP         54        27246 > msft-gc-ssl [ACK] Seq=1 Ack=1 Win=5840 Len=0
4       0.003462  1.1.1.1    1.2.3.4          TCP         248       27246 > msft-gc-ssl [PSH, ACK] Seq=1 Ack=1 Win=5840 Len=194
5       0.007264  1.2.3.4    1.1.1.1          TCP         60        msft-gc-ssl > 27246 [RST] Seq=1 Win=64046 Len=0

TCP / IP ile biraz paslıyım, bu yüzden lütfen cehaletimi affedin ... 1-3 paketlerinde üç yönlü el sıkışma görüyorum. Mantıklı. 4 numaralı pakette neler oluyor? Ne anlama [PSH, ACK]geliyor? Bu gereksiz olan gereksiz bir onay gibi görünüyor. Gerçek veriler bu 4. pakette gönderiliyor mu? Yoksa el sıkışmasının tuhaf bir devamı mı?

Yanıtlar:


24

PSHbir itme bayrağı: http://ask.wireshark.org/questions/20423/pshack-wireshark-capture

İtme bayrağı, alıcının ağ yığınına verileri doğrudan alıcı sokete "itmesini" ve bunu yapmadan önce daha fazla paket beklememesini söyler.

Push bayrağı genellikle, Nagle Algoritması veya Gecikmeli Onaylar gibi yerleşik bir TCP verimlilik gecikmesini geçersiz kılarken verilerin gönderildiği anlamına gelir .

Bu gecikmeler TCP ağını bazı gecikmelerle daha verimli hale getirir (genellikle birkaç on milisaniye civarında). Gecikmeye duyarlı bir uygulama TCP'nin verimlilik gecikmelerini beklemek istemez, bu nedenle uygulama genellikle bunları devre dışı bırakır ve verilerin bir Push bayrak ayarıyla mümkün olduğunca hızlı gönderilmesine neden olur.

Linux'ta, bu setsockopt()bayraklar TCP_QUICKACKve ile yapılır TCP_NODELAY. Daha man 7 socketfazla bilgi için bakınız .


5

@DarkMoon, PSH bayrağının ne ifade ettiğini açıkladı. Verilerinizle ilgili olarak, bağlantı kuruluşu tamamlanır (3-yollu el sıkışma), ardından, evet, sunucuya 194 bayt veri gönderir ( Len=194). Sunucu verileri beğenmedi ve bağlantıyı kapattı. İstemci, sunucuyla iletişim kuracak şekilde yapılandırılmamış olabilir veya bunun tersi, örneğin bir SSL / TLS uyuşmazlığıdır.

Erişiminiz varsa, istemcinin verileriyle ilgili hoşlanmadığı şeyleri günlüğe kaydedip kaydetmediğini görmek için sunucudaki günlükleri incelemenizi öneririz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.