핸드셰이크
현실 세계에서 핸드셰이크는 두 사람 사이에서 하는 관례적인 인사입니다. 마찬가지로 컴퓨터 핸드셰이크는 두 컴퓨터 시스템 사이에서 하는 인사 역할을 합니다. 일반적으로 두 호스트 사이의 네트워크 연결을 초기화하는 데 사용됩니다.
컴퓨터 핸드셰이크는 동일한 프로토콜로 서로 통신하는 어느 두 시스템 사이에서든 완료될 수 있습니다. 두 시스템은 클라이언트와 서버일 수도 있고, P2P 네트워크에 연결된 단순한 두 컴퓨터일 수도 있습니다. 핸드셰이크는 연결 중인 시스템의 신원을 확인하고 추가 통신을 가능하게 합니다.
네트워크에서 이루어지는 핸드셰이크는 일반적으로 3방향 핸드셰이크 또는 "SYN-SYN-ACK"라고 합니다. 성공적인 핸드셰이크에는 다음 7단계가 포함됩니다:
- 호스트 A가 호스트 B에 동기화(SYN) 패킷을 보냅니다.
- 호스트 B가 호스트 A의 SYN 요청을 받습니다.
- 호스트 B가 호스트 A에 동기화 확인 응답(SYN-ACK) 메시지를 보냅니다.
- 호스트 A가 호스트 B의 SYN-ACK 메시지를 받습니다.
- 호스트 A가 호스트 B에 확인 응답(ACK) 메시지를 보냅니다.
- 호스트 B가 호스트 A의 ACK 메시지를 받습니다.
- 두 시스템 사이의 연결이 설정됩니다.
시스템이 핸드셰이크를 시작하면 세 가지 결과가 발생할 수 있습니다:
- 응답 없음 – 핸드셰이크를 받는 시스템을 사용할 수 없거나 시작 시스템이 사용하는 프로토콜을 지원하지 않으면 요청에 응답하지 않을 수 있습니다.
- 연결 거부 – 핸드셰이크를 받는 시스템을 사용할 수 있고 요청을 이해하지만 연결을 거부합니다.
- 연결 수락 – 핸드셰이크를 받는 시스템을 사용할 수 있고 요청을 받아 연결을 수락합니다.
위에 나열된 세 번째 결과에서만 핸드셰이크가 완료됩니다. 핸드셰이크가 성공하면 두 시스템은 설정된 프로토콜을 통해 통신하고 데이터를 전송할 수 있습니다. 핸드셰이크를 사용하는 프로토콜의 예로는 TCP, TLS, SSL이 있습니다.
지식 테스트하기