글로벌 카탈로그 서버에 연결하는 동안 [PSH, ACK]는 무엇을합니까?


14

Linux 서버가 글로벌 카탈로그 서버에 대한 LDAPS 연결을 설정하려고 시도하고 있으며 연결이 끊어졌습니다 (GC 측에 의해).

설명을 위해 1.1.1.1은 Linux 서버이고 1.2.3.4는 글로벌 카탈로그 서버라고 가정하겠습니다.

telnetLinux 상자에서 사용하려고하면 다음이 표시됩니다.

[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에 약간 녹슬 었으므로 무지를 용서해주세요 ... 3 ~ 3 번의 핸드 셰이크에서 3 방향 핸드 셰이크가 발생하는 것을 볼 수 있습니다. 말이 되네요 패킷 # 4에서 무슨 일이 일어나고 있습니까? 무슨 [PSH, ACK]뜻입니까? 이것은 불필요한 중복 승인처럼 보입니다. 이 네 번째 패킷으로 실제 데이터가 전송되고 있습니까? 아니면 이것이 악수의 이상한 연속입니까?

답변:


24

PSH푸시 플래그입니다 : http://ask.wireshark.org/questions/20423/pshack-wireshark-capture

Push 플래그는 수신자의 네트워크 스택에 데이터를 수신 소켓에 직접 "밀어 넣고"더 이상 패킷을 기다리지 않도록 지시합니다.

Push 플래그는 일반적으로 데이터가 전송되는 동안 Nagle의 알고리즘 또는 지연된 승인 과 같은 내장 TCP 효율성 지연을 무시합니다 .

이러한 지연은 약간의 대기 시간 (대개 수십 밀리 초)의 비용으로 TCP 네트워킹을보다 효율적으로 만듭니다. 대기 시간에 민감한 응용 프로그램은 TCP의 효율성 지연을 기다리지 않기 때문에 일반적으로 응용 프로그램이이를 비활성화하여 Push 플래그 세트를 사용하여 가능한 빨리 데이터를 전송합니다.

Linux에서 이는 setsockopt()플래그 TCP_QUICKACK및로 수행됩니다 TCP_NODELAY. 자세한 내용 man 7 socket은 참조하십시오.


5

@DarkMoon은 PSH 플래그가 무엇을 의미하는지 설명했다. 데이터와 관련하여 연결 설정이 완료된 후 (3 방향 핸드 셰이크) 클라이언트는 194 바이트의 데이터를 서버로 보냈습니다 ( Len=194). 서버가 데이터를 좋아하지 않아 연결을 닫았습니다. 클라이언트가 서버와 통신하도록 SSL을 구성하지 않았거나 SSL / TLS가 일치하지 않는 경우가 있습니다.

액세스 권한이 있으면 서버의 로그를 검사하여 클라이언트 데이터에 대해 마음에 들지 않는 것을 기록했는지 확인하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.