TCP 3방향 핸드셰이크(SYN, SYN-ACK,ACK)

TCP XNUMX방향 핸드셰이크란 무엇입니까?

삼자 악수 또는 TCP 3-way handshake는 TCP/IP 네트워크에서 서버와 클라이언트 간의 연결을 만드는 데 사용되는 프로세스입니다. 실제 데이터 통신 프로세스가 시작되기 전에 클라이언트와 서버 모두가 동기화 및 확인 패킷을 교환해야 하는 XNUMX단계 프로세스입니다.

XNUMX방향 핸드셰이크 프로세스는 양쪽 끝이 동시에 TCP 소켓 연결을 시작, 협상 및 분리하는 데 도움이 되는 방식으로 설계되었습니다. 이를 통해 동시에 여러 TCP 소켓 연결을 양방향으로 전송할 수 있습니다.

TCP 메시지 유형

관심 있는 분야를 알려주세요(선택사항) 기술설명
연결을 시작하고 설정하는 데 사용됩니다. 또한 장치 간의 시퀀스 번호를 동기화하는 데 도움이 됩니다.
ACK SYN을 수신했음을 상대방에게 확인하는 데 도움이 됩니다.
동기화 ACK 로컬 장치의 SYN 메시지와 이전 패킷의 ACK.
END 연결을 종료하는 데 사용됩니다.

TCP XNUMX방향 핸드셰이크 프로세스

TCP 트래픽은 XNUMX방향 핸드셰이크로 시작됩니다. 이 TCP 핸드셰이크 프로세스에서 클라이언트는 서버와의 통신 세션을 요청하여 대화를 시작해야 합니다.

XNUMX방향 핸드셰이크 프로세스
3방향 핸드셰이크 다이어그램
  • 1 단계 : 첫 번째 단계에서 클라이언트는 서버와의 연결을 설정합니다. SYN을 사용하여 세그먼트를 보내고 클라이언트가 통신을 시작해야 한다는 것과 해당 시퀀스 번호가 무엇인지 서버에 알립니다.
  • 2 단계 : 이 단계에서는 s서버는 SYN-ACK 신호 세트를 사용하여 클라이언트 요청에 응답합니다. ACK는 수신된 세그먼트의 응답을 나타내는 데 도움이 되며 SYN은 세그먼트로 시작할 수 있어야 하는 시퀀스 번호를 나타냅니다.
  • 3 단계 : 이 마지막 단계에서 클라이언트는 서버의 응답을 확인하고 둘 다 안정적인 연결을 생성하여 실제 데이터 전송 프로세스를 시작합니다.

실제 사례

실제 사례

다음은 세 단계로 구성된 XNUMX방향 핸드셰이크 프로세스의 간단한 예입니다.

  • 호스트 X는 TCP SYN 패킷을 호스트 목적지로 보내 연결을 시작합니다. 패킷에는 호스트 X가 전송해야 하는 데이터의 시퀀스 번호 시작을 나타내는 임의의 시퀀스 번호(예: 4321)가 포함되어 있습니다.
  • 그 후 서버는 패킷을 수신하고 해당 시퀀스 번호로 응답합니다. 응답에는 승인 번호, 즉 1씩 증가하는 호스트 X의 시퀀스 번호(여기서는 4322)도 포함됩니다.
  • 호스트 X는 대부분 1씩 증가하는 서버의 시퀀스 번호인 승인 번호를 전송하여 서버에 응답합니다.

데이터 전송 과정이 끝나면 TCP는 두 개의 별도 엔드포인트 간의 연결을 자동으로 종료합니다.

제품 개요

  • TCP 3-way 핸드셰이크 또는 3-way 핸드셰이크 또는 TCP XNUMX-way 핸드셰이크는 다음에서 사용되는 프로세스입니다. TCP/IP 네트워크 서버와 클라이언트를 연결하기 위해.
  • Syn은 연결을 시작하고 설정하는 데 사용됩니다.
  • ACK는 SYN을 수신했음을 상대방에게 확인하는 데 도움이 됩니다.
  • SYN-ACK는 로컬 장치의 SYN 메시지이자 이전 패킷의 ACK입니다.
  • FIN은 연결을 종료하는 데 사용됩니다.
  • TCP 핸드셰이크 프로세스, 클라이언트는 서버와의 통신 세션을 요청하여 대화를 시작해야 합니다.
  • 첫 번째 단계에서 클라이언트는 서버와 연결을 설정합니다.
  • 이 두 번째 단계에서 서버는 SYN-ACK 신호 세트로 클라이언트 요청에 응답합니다.
  • 이 마지막 단계에서 클라이언트는 서버의 응답을 확인합니다.
  • TCP는 두 개의 개별 엔드포인트 간의 연결을 자동으로 종료합니다.