tcp_abort_on_overflow가 0이면 수락 큐가 3방향 핸드셰이크의 세 번째 단계에서 가득 차면 서버는 서버 측에서 연결이 설정되지 않은 것으로 가정하므로 클라이언트에서 보낸 ACK 패킷을 버립니다. TCP 3방향 핸드셰이크 ACK 메시지가 전송되면 TCP 연결이 설정되고 컴퓨터가 TCP를 사용하여 안정적으로 통신을 시작할 수 있습니다. 실제 예제를 사용하여 TCP 3방향 핸드셰이크 프로세스를 해부해 보겠습니다. 나는 개념을 보다 명확하게 이해하기 위해 Wireshark 스크린 샷도 포함하고 있습니다. 예를 들어, 667399는 수락 큐가 오버플로된 횟수를 나타냅니다. 몇 초마다 이 명령을 실행하고 숫자가 증가하면 accept 큐가 가득 차야 합니다. 이 핸드셰이킹 기법을 TCP 3방향 핸드셰이크 또는 SYN, SYN-ACK, ACK라고 합니다. 송신 장치와 수신 장치가 데이터 교환을 시작하기 전에 두 장치를 동기화해야 합니다. TCP 초기화 프로세스 동안, 송신 디바이스와 수신 디바이스는 동기화를 위해 몇 가지 제어 패킷을 교환한다. 이 교환은 3방향 핸드셰이크라고 합니다.

그 후, 양측은 설립 상태로 이동합니다. 이것이 우리가 3방향 악수라고 부르는 것입니다. FTP, 텔넷, HTTP, HTTPS, SMTP, POP3, IMAP, SSH 및 TCP를 통해 타는 다른 프로토콜도 연결이 열릴 때 수행되는 세 가지 방법으로 핸드셰이크가 있습니다. HTTP 웹 요청, SMTP 이메일, FTP 파일 전송은 모두 각 전송 메시지를 관리합니다. TCP는 이러한 메시지의 전송을 처리합니다. 3방향 핸드셰이크는 TCP/IP 네트워크에서 로컬 호스트/클라이언트와 서버 간의 연결을 만드는 데 사용되는 방법입니다. 실제 데이터 통신이 시작되기 전에 클라이언트와 서버가 SYN 및 ACK(승인) 패킷을 교환해야 하는 3단계 방법입니다. 3 단계: 3 방향 핸드셰이크를 사용 하 여 TCP 신뢰할 수 있는 연결을 설정 하는 마지막 단계는 마지막 단계에서 받은 SYN-ACK 패킷에 대 한 웹 서버에 TCP ACK 패킷을 다시 보내는 것입니다. 1 단계: 내 컴퓨터와 웹 서버 간에 신뢰할 수 있는 TCP 연결(3방향 핸드셰이크 사용)을 설정하는 첫 번째 단계는 SYN 플래그가 1로 설정된 TCP 세그먼트를 웹 서버로 보내는 것입니다.

다른 모든 TCP 플래그는 0으로 설정됩니다. SYN 플래그가 1로 설정된 TCP 세그먼트는 내 컴퓨터가 웹 서버에서 TCP 세션을 열려는 것을 웹 서버에 알려줍니다. · 클라이언트와 서버 간의 연결을 만들기 위해 간헐적으로 3방향 핸드셰이크가 수행되었지만 수신 소켓이 응답하지 않았습니다. 가장 먼저 한 일은 TCP 연결을 설정할 때 3방향 핸드셰이크에 대한 표준 프로세스를 상기시키는 것이었습니다. 표준 프로세스는 다음과 같이 진행됩니다. TCP 3방향 핸드셰이크가 발생한 후에는 전체 연결 큐 오버플로가 있으며 이 큐에 들어간 후에만 서버가 Listen에서 수락으로 변경될 수 있습니다. 백로그의 기본값은 50이며 오버플로하기 쉽습니다. 핸드셰이크의 세 번째 단계에서 오버플로되면 서버는 클라이언트에서 보낸 ACK 패킷을 무시합니다. 서버는 정기적으로 두 번째 단계(SYN-ACK 패킷을 클라이언트로 전송)를 반복합니다. 연결이 큐에 대기되지 않으면 예외가 발생합니다.

3방향 핸드셰이크는 주로 TCP 소켓 연결을 만드는 데 사용됩니다. 이 단원에서는 두 개의 TCP 장치가 TCP 3방향 핸드셰이크(3방향 핸드셰이크)를 사용하여 동기화하는 방법과 TCP 3방향 핸드셰이크의 세 단계는 무엇이며 두 개의 TCP 장치가 동기화되는 방법을 알아봅니다. 이 시점에서 accept 큐가 가득 차 있고 tcp_abort_on_overflow가 0이면 서버는 일정 시간 후에 SYN-ACK 패킷을 클라이언트에 다시 보냅니다(즉, 핸드셰이크의 두 번째 단계를 반복합니다). 클라이언트가 짧은 시간 시간조차 겪는 경우 클라이언트 예외가 쉽게 발생할 수 있습니다.