핸드셰이킹
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
핸드셰이크는 통신을 시작하기 전에 두 개체 간에 교환되는 일련의 메시지 또는 신호이다. TCP 3방향 핸드셰이크, SMTP 핸드셰이크, TLS 핸드셰이크, WPA2 무선 핸드셰이크, 다이얼업 접속 모뎀, 직렬 하드웨어 핸드셰이킹, 모바일 기기 충전 등 다양한 프로토콜 및 기술에서 사용되며, 연결 설정, 보안 설정, 통신 매개변수 협상 등을 위해 활용된다.
더 읽어볼만한 페이지
- 데이터 전송 - 대역폭 제한
대역폭 제한은 네트워크 혼잡 방지, 특정 사용자 과도한 사용 방지, 서비스 품질 관리 등을 위해 컴퓨터 네트워크에서 데이터 전송 속도를 인위적으로 제한하는 기술이다. - 데이터 전송 - 데이터 링크
데이터 링크는 데이터를 송수신하기 위한 통신 연결로, 단방향, 반이중, 전이중 통신으로 나뉘며, 다양한 분야에서 활용되고 특히 항공 분야에서 항공 교통 관제 및 정보 교환, 무인 시스템 제어에 사용된다. - 네트워크 프로토콜 - UUCP
UUCP는 유닉스 시스템 간 파일 복사, 원격 명령 실행, 이메일 및 유즈넷 뉴스 전송을 위한 프로토콜 및 프로그램 모음으로, 초기 인터넷 확장에 중요한 역할을 했으나 TCP/IP 기반 서비스 보편화로 사용이 감소했다. - 네트워크 프로토콜 - 프레임 릴레이
프레임 릴레이는 LAN 간 또는 WAN 종단점 간 데이터 전송을 위한 고속 패킷 교환 방식 통신 프로토콜로, X.25 프로토콜을 간소화하여 속도를 높이고, 영구 가상 회선을 통해 안정적인 연결을 제공하며, 서비스 품질 설정을 통해 프레임 우선순위를 지정할 수 있었으나, 현재는 다른 기술에 밀려 사용이 감소하고 있다.
핸드셰이킹 | |
---|---|
개요 | |
종류 | 신호 방식 |
목적 | 통신 채널 설정 및 데이터 교환 동기화 |
방식 | 요청/응답 인터럽트 폴링 |
상세 설명 | |
정의 | 통신 시스템 내에서 두 개 이상의 장치 간에 채널을 설정하고 데이터 전송을 시작, 제어 및 종료하는 자동화된 프로세스이다. |
역할 | 장치가 통신을 시작하기 전에 서로를 식별하고, 사용 가능한 프로토콜 수준에 동의하고, 작동 매개변수를 설정할 수 있도록 한다. |
예시 | 컴퓨터 모뎀 간 통신 시작 운영 체제와 주변 장치 간 데이터 전송 소프트웨어 응용 프로그램 간 상호 작용 |
중요성 | 안정적인 통신 보장 데이터 손실 또는 손상 방지 통신 오류 처리 |
작동 방식 | |
기본 단계 | 연결 요청: 장치 A가 장치 B에 연결 요청을 보낸다. 응답: 장치 B가 요청을 수락하거나 거부한다. 매개변수 협상: 두 장치가 통신 매개변수 (예: 데이터 속도, 오류 수정 방식)에 합의한다. 데이터 전송: 합의된 매개변수에 따라 데이터가 전송된다. 연결 종료: 데이터 전송이 완료되면 연결이 종료된다. |
종류 | |
하드웨어 핸드셰이킹 | 전용 제어 회선을 사용하여 신호를 교환한다. (예: RTS/CTS, DTR/DSR) |
소프트웨어 핸드셰이킹 | 데이터 스트림 내의 특수 제어 문자 (예: XON/XOFF)를 사용하여 신호를 교환한다. |
프로토콜 기반 핸드셰이킹 | TCP/IP와 같은 통신 프로토콜 내에서 정의된 규칙을 따른다. |
장점 | |
신뢰성 | 데이터 전송의 신뢰성을 향상시킨다. |
호환성 | 장치 간 호환성을 보장한다. |
오류 제어 | 오류 발생 시 재전송 또는 오류 수정과 같은 메커니즘을 제공한다. |
단점 | |
오버헤드 | 추가적인 신호 교환으로 인해 통신 오버헤드가 발생할 수 있다. |
복잡성 | 구현이 복잡할 수 있다. |
추가 설명 | |
용어 유래 | 사람 간의 악수에서 유래되었다. |
2. 핸드셰이크의 개념
핸드셰이크는 두 통신 개체, 예를 들어 클라이언트와 서버가 본격적인 통신을 시작하기 전에 주고받는 일련의 신호 교환 과정이다. 이 과정을 통해 통신 속도, 암호화 방식, 데이터 형식 등 통신에 필요한 여러 매개변수를 서로 합의하고 안정적인 연결을 설정한다.
대표적인 예로 TCP 연결 수립 과정에서 사용되는 3방향 핸드셰이크(3-way handshake)가 있다. 정상적인 TCP 연결을 위해서는 다음 3단계가 필요하다.
# 첫 번째 호스트(예: Alice)가 두 번째 호스트(예: Bob)에게 동기화(SYN) 메시지를 보낸다. 이 메시지에는 자신의 시퀀스 번호 x가 포함된다.
# Bob은 SYN-ACK 메시지로 응답한다. 이 메시지에는 자신의 시퀀스 번호 y와 함께 응답 번호 x+1이 포함된다.
# Alice는 다시 응답(ACK) 메시지를 보낸다. 이 메시지에는 응답 번호 y+1이 포함되며, Bob은 이 메시지를 받지만 추가 응답은 필요 없다.
이 외에도 다양한 통신 프로토콜에서 핸드셰이크 과정이 사용된다.
- SMTP(Simple Mail Transfer Protocol)는 이메일 전송을 위한 주요 인터넷 표준으로, 인증, 암호화, 최대 메시지 크기 등을 협상하기 위해 핸드셰이킹을 사용한다.
- 전송 계층 보안(TLS 또는 SSL) 연결이 시작될 때, 실제 데이터 교환에 앞서 핸드셰이크 메시징 프로토콜(콘텐츠 타입 22)을 사용하여 양측에 필요한 모든 정보(예: 세션의 보안 특성)를 교환하고 협상한다.[9]
- WPA2 무선 보안 표준은 IEEE 802.11i-2004에 정의된 4방향 핸드셰이크(4-way handshake)를 사용한다.
3. 주요 프로토콜에서의 핸드셰이크
핸드셰이크는 컴퓨터 네트워크와 통신 시스템에서 두 참여자 간의 통신 채널 매개변수를 설정하기 위해 사용되는 중요한 자동 협상 과정이다. 통신을 시작하기 전에 필요한 정보를 교환하고 연결을 설정하기 위해 다양한 프로토콜과 기술에서 핸드셰이크 절차를 거친다.
주요 통신 프로토콜 및 기술에서 핸드셰이크가 활용되는 대표적인 예는 다음과 같다.
- TCP: 인터넷 통신에서 신뢰성 있는 연결을 수립하기 위해 3방향 핸드셰이크를 사용한다.
- SMTP: 이메일 전송 시 서버와 클라이언트 간의 인증, 암호화 등 통신 옵션을 협상한다.
- TLS: 웹 브라우저와 서버 간의 보안 연결(HTTPS)을 설정할 때 암호화 방식, 키 교환 등을 위해 핸드셰이크를 수행한다.
- WPA2: 무선 네트워크 접속 시 보안 키 교환 및 인증을 위해 4방향 핸드셰이크를 사용한다.
이 외에도 구형 다이얼업 모뎀 연결 시 통신 속도 등을 협상하거나, 최신 모바일 기기 충전 시 안전하고 효율적인 충전을 위해 기기와 충전기 간에 필요한 정보를 교환하는 데에도 핸드셰이크 과정이 활용된다. 각 프로토콜과 기술에서의 구체적인 핸드셰이크 방식은 이어지는 내용에서 자세히 알아본다.
3. 1. TCP 3방향 핸드셰이크
TCP는 신뢰성 있는 연결 지향형 프로토콜로, 통신 전에 3단계의 핸드셰이크 과정을 거쳐 연결을 설정한다. 정상적인 TCP 연결을 수립하기 위한 3가지 단계는 다음과 같다.
# 첫 번째 호스트(클라이언트, 예: 앨리스)는 두 번째 호스트(서버, 예: 밥)에게 동기화(SYN) 메시지를 보낸다. 이 메시지에는 클라이언트가 생성한 임의의 초기 시퀀스 번호 x가 포함된다.
# 서버(밥)는 클라이언트(앨리스)의 요청을 받으면, 자신의 임의 초기 시퀀스 번호 y와 함께 응답 번호 x+1을 포함하는 동기화-응답(SYN-ACK) 메시지를 보낸다. 응답 번호 x+1은 클라이언트의 SYN 메시지를 잘 받았다는 확인 신호이다.
# 클라이언트(앨리스)는 서버(밥)의 SYN-ACK 메시지를 받고, 응답 번호 y+1을 포함하는 응답(ACK) 메시지를 서버에게 보낸다. 이로써 연결 설정이 완료되며, 서버는 이 ACK 메시지에 대해 별도로 응답할 필요가 없다.
이 설정에서 동기화(SYN) 메시지는 클라이언트가 서버에게 서비스를 요청하는 역할을 하며, 응답(ACK) 메시지는 상대방에게 메시지를 성공적으로 수신했음을 알리는 역할을 한다.
TCP 연결 설정 시, 클라이언트와 서버는 0과 같은 고정된 기본 시퀀스 번호를 사용하지 않는다. 이는 동일한 연결의 두 인스턴스가 너무 짧은 시간 안에 같은 시퀀스 번호를 재사용하는 것을 방지하기 위함이다. 만약 이전 연결에서 보낸 세그먼트(패킷)가 네트워크 지연 등으로 인해 늦게 도착할 경우, 새로운 연결에서 동일한 시퀀스 번호가 사용된다면 이전 세그먼트가 새로운 연결의 데이터로 잘못 해석될 수 있다. 임의의 초기 시퀀스 번호를 사용함으로써 이러한 혼란을 막고 연결의 신뢰성을 높인다.
3. 2. SMTP 핸드셰이크
SMTP(Simple Mail Transfer Protocol)는 이메일 전송을 위한 주요 인터넷 표준이다. SMTP는 인증, 암호화, 최대 메시지 크기 등을 협상하기 위해 핸드셰이킹 과정을 포함한다.3. 3. TLS 핸드셰이크
전송 계층 보안(SSL 또는 TLS) 연결이 시작될 때, 레코드는 핸드셰이크 메시징 프로토콜(콘텐츠 타입 22)이라는 "제어" 프로토콜을 포함한다. 이 프로토콜은 TLS를 통해 실제 애플리케이션 데이터를 교환하기 위해 양측에 필요한 모든 정보를 교환하는 데 사용된다.핸드셰이크 프로토콜은 세션의 보안 특성을 협상하는 데 사용되며[7], 정보를 포함하는 메시지의 형식과 교환 순서를 정의한다. 이 과정은 클라이언트와 서버의 요구 사항에 따라 달라질 수 있어, 연결 설정에는 여러 가능한 절차가 존재한다. 이러한 초기 정보 교환의 결과로 성공적인 TLS 연결이 이루어지거나(양측이 TLS를 통해 애플리케이션 데이터를 전송할 준비가 된 상태), 경고 메시지가 발생할 수 있다.
3. 4. WPA2 무선 핸드셰이크
무선 통신 보안을 위한 WPA2 표준은 IEEE 802.11i에 정의된 4방향 핸드셰이크를 사용한다.3. 5. 다이얼업 접속 모뎀
다이얼업 인터넷 모뎀은 핸드셰이킹의 대표적인 예시다. 다이얼업 모뎀은 일반적으로 연결이 처음 설정될 때 짧은 시간 동안 통신 매개변수를 협상하는 핸드셰이킹 과정을 거친다. 이 과정을 통해 채널의 품질과 용량에 맞춰 최적의 정보 전송 속도 등을 결정한다. 연결 직후 스피커가 있는 일부 모뎀에서 들리는 특유의 "삐 소리"(실제로는 1초에 100번씩 음높이가 변하는 소리)는 바로 양쪽 모뎀이 핸드셰이킹 절차를 수행하는 소리다. 이 절차가 완료되면 운영 체제나 모뎀 제어 프로그램의 설정에 따라 스피커 소리가 꺼질 수 있다.3. 6. 직렬 "하드웨어 핸드셰이킹"
직렬 통신에서 RTS(Request to Send) 및 CTS(Clear to Send) 신호를 사용하는 것을 흔히 "하드웨어 핸드셰이킹"이라고 부른다. 하지만 이는 엄밀한 의미에서 정확한 표현은 아니다. 이러한 방식은 진정한 의미의 핸드셰이킹이라기보다는 흐름 제어의 한 방식으로 보는 것이 더 적절하다.3. 7. 모바일 기기 충전
모바일 기기 충전기 중 일부는 특정 기기에 대해 고속 충전 기능을 제공한다. 이 경우, 충전 과정에서 더 높은 전력 전송을 위해 출력 전압을 높이게 된다.그러나 이러한 높은 전압은 고속 충전을 지원하지 않는 기기에 연결될 경우 심각한 손상을 입히거나, 심하면 화재를 일으킬 수도 있는 위험이 있다. 따라서 기기와 충전기가 연결될 때, 먼저 핸드셰이크 과정을 거쳐 서로 지원 가능한 충전 매개변수(전압, 전류 등)에 대해 합의하는 것이 매우 중요하다. 이는 사용자의 안전과 기기 보호를 위해 필수적인 절차이다.
만약 충전기가 연결된 기기를 식별하지 못하거나 호환성을 확인할 수 없는 경우, 핸드셰이크는 실패하게 된다. 이 때 충전기는 USB 표준에서 정한 기본적이고 안전한 충전 매개변수(상대적으로 낮은 전압과 전류)로 작동하게 되며, 충전 속도는 느려진다. 이는 기기 손상을 방지하고 최소한의 호환성을 보장하기 위한 안전 장치이다.
참조
[1]
뉴스
What is handshaking? - Definition from WhatIs.com
http://searchnetwork[...]
2018-02-19
[2]
서적
Jacaranda Information Processes and Technology: HSC Course
John Wiley & Sons Australia
[3]
문서
TCP
RFC 793, 2581
[4]
문서
SMTP
RFC 821,5321, 2821, 1869,6531, 2822
[5]
문서
FTP
959, 3659 (conversation), 2228,4217 (TLS handshake),5797
[6]
웹사이트
handshaking
http://encyclopedia2[...]
[7]
간행물
The Transport Layer Security (TLS) Protocol, version 1.2
IETF
2008-08
[8]
웹인용
주고받기
https://terms.naver.[...]
IT용어사전
2017-05-18
[9]
간행물
The Transport Layer Security (TLS) Protocol, version 1.2
국제 인터넷 표준화 기구
2008-08
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com