Ldap

什麼是磷小號H,一個_ķ磷小號H,一種CķPSH, ACK在我連接到全域編錄伺服器期間做什麼?

  • September 6, 2018

我的一個 linux 伺服器正在嘗試建立到全域目錄伺服器的 LDAPS 連接,並且連接被斷開(可能是 GC 端)。

出於討論的目的,假設 1.1.1.1 是 Linux 伺服器,而 1.2.3.4 是全域編錄伺服器。

如果我嘗試telnet從 Linux 框中使用,我會看到:

[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 行和第 5 行之間沒有延遲。它只是立即斷開連接。

我認為telnet結果可能有點誤導(因為它實際上不適用於任何類型的安全通信),所以我收集了來自設備的實際連接嘗試的數據包擷取(使用需要 LDAPS 的實際程序)。

這是我看到的(再次,IP 和源埠已重命名以保護無辜者):

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 有點生疏,所以請原諒我的無知……我看到數據包 1-3 中發生了三次握手。這就說得通了。數據包#4 中發生了什麼?是什麼[PSH, ACK]意思?這似乎是不必要的多餘確認。第 4 個數據包中是否發送了實際數據?或者這是握手的一些奇怪的延續?

PSH是一個推送標誌:http ://ask.wireshark.org/questions/20423/pshack-wireshark-capture

Push 標誌告訴接收者的網路堆棧將數據直接“推送”到接收套接字,而不是在這樣做之前等待任何更多的數據包。

Push 標誌通常意味著數據已經發送,同時覆蓋了內置的 TCP 效率延遲,例如Nagle 算法延遲確認

這些延遲以一些延遲(通常大約幾十毫秒)為代價使 TCP 網路更高效。對延遲敏感的應用程序不想等待 TCP 的效率延遲,因此應用程序通常會禁用它們,從而在設置 Push 標誌的情況下盡可能快地發送數據。

在 Linux 上,這是通過setsockopt()標誌TCP_QUICKACKTCP_NODELAY. 有關man 7 socket更多資訊,請參閱。

引用自:https://serverfault.com/questions/614590