Apa yang [PSH, ACK] lakukan selama koneksi saya ke server katalog global?

14

Server linux milik saya sedang mencoba membuat koneksi LDAPS ke server katalog global dan koneksi semakin menurun (mungkin oleh pihak GC).

Untuk tujuan diskusi, katakanlah 1.1.1.1 adalah server Linux dan 1.2.3.4 adalah server katalog global.

Jika saya mencoba menggunakan telnetdari kotak Linux, saya melihat:

[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.

Tidak ada penundaan antara baris 4 dan 5. Itu hanya langsung menjatuhkan koneksi.

Saya pikir telnethasilnya mungkin sedikit menyesatkan (karena sebenarnya tidak sesuai untuk semua jenis komunikasi aman) jadi saya mengumpulkan paket penangkapan dari upaya koneksi aktual dari alat (menggunakan program aktual yang membutuhkan LDAPS).

Inilah yang saya lihat (lagi, IP dan porta sumber telah diubah namanya untuk melindungi yang tidak bersalah):

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

Saya agak berkarat dengan TCP / IP jadi tolong maafkan ketidaktahuan saya ... Saya melihat jabat tangan tiga arah terjadi dalam paket 1-3. Itu masuk akal. Apa yang terjadi dalam paket # 4? Apa [PSH, ACK]artinya Ini sepertinya pengakuan berlebihan yang tidak perlu. Apakah data aktual dikirim dalam paket ke-4 ini? Atau apakah ini merupakan kelanjutan jabat tangan yang aneh?

Mike B
sumber

Jawaban:

24

PSHadalah bendera Push: http://ask.wireshark.org/questions/20423/pshack-wireshark-capture

Bendera Push memberi tahu tumpukan jaringan penerima untuk "mendorong" data langsung ke soket penerima, dan tidak menunggu paket lagi sebelum melakukannya.

Bendera Push biasanya berarti bahwa data telah dikirim sementara mengungguli penundaan efisiensi TCP yang dibangun, seperti Algoritma Nagle atau Keterlambatan Ucapan Terima Kasih .

Penundaan ini membuat jaringan TCP lebih efisien dengan biaya beberapa latensi (biasanya sekitar beberapa puluh milidetik). Aplikasi yang sensitif terhadap latensi tidak ingin menunggu untuk penundaan efisiensi TCP sehingga aplikasi biasanya akan menonaktifkannya, menyebabkan data dikirim secepat mungkin dengan set bendera Push.

Di Linux, ini dilakukan dengan setsockopt()flag TCP_QUICKACKdan TCP_NODELAY. Lihat man 7 socketuntuk informasi lebih lanjut.

Bulan gelap
sumber
5

@DarkMoon menjelaskan apa yang ditandai oleh bendera PSH. Berkenaan dengan data Anda, pembentukan koneksi selesai (jabat tangan 3 arah), maka, ya, klien mengirim 194 byte data ke server ( Len=194). Server tidak menyukai data dan menutup koneksi. Secara potensial klien tidak dikonfigurasikan dengan benar untuk berkomunikasi dengan server atau sebaliknya misalnya ketidakcocokan SSL / TLS.

Jika Anda memiliki akses, saya sarankan memeriksa log di server untuk melihat apakah itu login apa yang tidak disukai tentang data klien.

Karyhead
sumber