악수

Handshaking

컴퓨팅에서 핸드쉐이크는 두 장치 또는 프로그램 간의 신호로, 예를 들어 인증, 조정에 사용됩니다.를 들어 게스트 가상 시스템의 하이퍼바이저와 애플리케이션 간의 핸드쉐이크가 있습니다.

통신에서, 핸드쉐이크란, [1]완전한 통신이 개시되기 전에, 통신 링크의 프로토콜을 확립하는 정보의 교환을 통해서, 2명의 참가자(예를 들면 「앨리스와 밥」)간에 자동적으로 교섭하는 프로세스입니다.핸드쉐이크 프로세스는 보통 컴퓨터가 다른 장치와 통신을 시도할 때 통신 규칙을 설정하기 위해 수행됩니다.통상, 통신 링크를 확립하기 위해서, 2개의 디바이스간에 신호가 교환됩니다.예를 들어, 컴퓨터가 모뎀과 같은 다른 장치와 통신할 때, 두 장치는 서로 전원이 켜져 있고 작동할 준비가 되었음을 신호로 전달할 뿐만 아니라 어떤 프로토콜이 [2]사용되고 있는지에 동의하게 됩니다.

핸드쉐이킹은 정보전송속도, 부호화 알파벳, 패리티, 인터럽트 프로시저, 기타 프로토콜 또는 하드웨어 기능 등 통신채널의 양단에서 기기 및 시스템에 허용되는 파라미터를 네고시에이트할 수 있습니다.악수는 두 주체 간의 통신 기술이다.다만, TCP/IP RFC 에서는, TCP 스리웨이 핸드쉐이크를 참조하기 위해서, 「핸드쉐이크」라고 하는 용어가 가장 일반적으로 사용되고 있습니다.예를 들어 FTP 또는 SMTP에 관한 RFC에는 "핸드쉐이크"라는 용어가 없습니다.한 가지 예외는 트랜스포트 레이어 보안, TLS, 셋업, FTP RFC 4217입니다.FTP RFC 3659에서는 "핸드쉐이크"라는 용어 대신 [3][4][5]"컨버세이션"이라는 용어가 명령어 전달을 대체하고 있습니다.

간단한 핸드쉐이크 프로토콜은 수신자가 "마지막 메시지를 받았으며 다른 메시지를 보낼 준비가 되었습니다."라는 메시지를 보내는 것과 관련이 있을 수 있습니다.보다 복잡한 핸드쉐이크 프로토콜을 사용하면, 송신자가 수신 준비가 되어 있는지를 수신자에게 묻거나 수신자가 「마지막 메시지를 올바르게 수신하지 않았습니다.재전송해 주세요」(예를 들면,[6] 데이터가 도중에 파손된 경우)라는 부정적인 확인 응답을 송신자에게 송신할 수 있습니다.

핸드쉐이킹은 파라미터를 설정하기 위해 사람이 개입할 필요 없이 통신 채널을 통해 비교적 이기종 시스템 또는 장비를 쉽게 연결할 수 있습니다.

TCP 3방향 핸드쉐이크

3방향 핸드쉐이크 예시

통상의 TCP 접속을 확립하려면 , 다음의 3개의 순서가 필요합니다.

  1. 첫 번째 호스트(Alice)는 두 번째 호스트(Bob)에게 자체 시퀀스 x(\x를 사용하여 "synchronize"(SYN) 메시지를 보냅니다.
  2. Bob은 Alice가 수신한 자체 시퀀스 y(\ y 응답 x + 1(\ x1을 가진 Synchronize-Acknowledgement(SYN-ACK) 메시지로 응답합니다.
  3. Alice는 확인 응답(ACK) 메시지로 응답합니다.확인 응답 는 y+ y입니다.이 번호는 Bob이 수신하고 Bob이 회신할 필요가 없습니다.
이 설정에서는 동기 메시지는 서버 간에 서비스 요청으로 기능하며 확인 응답 메시지는 요청 서버로 돌아가 메시지가 수신되었음을 알립니다.

클라이언트와 서버가 접속 확립에 0 등의 디폴트시퀀스 번호를 사용하지 않는 이유는 같은 접속의 2개의 시퀀스 번호를 너무 빨리 재사용하지 않도록 하기 위해서입니다.즉, 접속의 이전 버전으로부터의 세그먼트(segment)가 접속의 이후 버전(connection)에 간섭할 가능성이 있습니다.

SMTP

SMTP(Simple Mail Transfer Protocol)는 이메일 전송의 주요 인터넷 표준입니다.인증, 암호화 및 최대 메시지 크기를 네고시에이트하기 위한 핸드쉐이킹이 포함됩니다.

TLS 핸드쉐이크

Transport Layer Security(SSL 또는 TLS) 연결이 시작되면 레코드는 "control" 프로토콜인 핸드쉐이크 메시징 프로토콜(콘텐츠 유형 22)을 캡슐화합니다.이 프로토콜은 TLS에 의한 실제 응용 프로그램 데이터 교환을 위해 양쪽에서 필요한 모든 정보를 교환하기 위해 사용됩니다.이 정보 및 교환 순서를 포맷 또는 포함하는 메시지를 정의합니다.이러한 설정은 클라이언트와 서버의 요구에 따라 다를 수 있습니다.즉, 접속을 셋업하기 위한 몇 가지 절차가 있습니다.이 첫 번째 교환에 의해 TLS 접속(양쪽 모두 TLS를 사용하여 응용 프로그램데이터를 전송할 준비가 되어 있습니다) 또는 경보메시지(다음과 같이)가 정상적으로 실행됩니다.

이 프로토콜은 세션의 보안 속성을 협상하기 위해 사용됩니다(RFC 5246, 페이지 37).[7]

WPA2 무선

무선용 WPA2 규격에서는 IEEE 802.11i-2004에서 정의된4방향 핸드쉐이크를 사용합니다.

다이얼업 액세스모뎀

핸드쉐이크의 전형적인 예로는 다이얼업모뎀이 있습니다.다이얼업모뎀은 일반적으로 접속이 처음 확립되었을 때 짧은 시간 동안 통신 파라미터를 네고시에이트한 후 이들 파라미터를 사용하여 채널 상에서 최적의 정보 전송을 품질과 용량의 함수로 제공합니다.접속 직후 스피커 출력을 가진 일부 모뎀에서 발생하는 '스켈링'(실제로 초당 100회 음이 바뀌는 소리) 소음은 실제로는 핸드쉐이크 절차에 관여하는 모뎀 소리입니다.순서가 완료되면 스피커가 무음 상태가 될 수 있습니다.모뎀을 제어하는 운영체제시스템 또는 응용 프로그램의 동작.

시리얼 "하드웨어 핸드쉐이크"

이 자주 사용되는 용어는 시리얼인터커넥트를 통한 RTS 및 CTS 신호의 사용을 나타냅니다.그러나 이는 정확한 [citation needed]것은 아닙니다.이것은 진정한 형태의 핸드쉐이크가 아니며 흐름 제어로 더 잘 설명됩니다.

레퍼런스

  1. ^ "What is handshaking? - Definition from WhatIs.com". SearchNetworking. Retrieved 2018-02-19.
  2. ^ Ware, Peter; Chivers, Bill; Cheleski, Paul (2001). Jacaranda Information Processes and Technology: HSC Course. Australia: John Wiley & Sons Australia. pp. 92–93. ISBN 978-0701634728.
  3. ^ TCP RFC 793, 2581
  4. ^ SMTP RFC 821,5321,2821,1869,6531,2822
  5. ^ FTP 959, 3659(컨버세이션), 2228,4217(TLS 핸드쉐이크), 5797
  6. ^ "handshaking". TheFreeDictionary's Encyclopedia.
  7. ^ The Transport Layer Security (TLS) Protocol, version 1.2. IETF. August 2008. doi:10.17487/RFC5246. RFC 5246.