(출처)
http://www.inetdaemon.com/tutorials/internet/tcp/3-way_handshake.shtml
http://mindnet.tistory.com/m/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-22%ED%8E%B8-TCP-3-WayHandshake-4-WayHandshake
전송 제어 프로토콜(TCP-handshake라고도 불림)에서의 TCP 3-way handshake은 넷트워크 기반의 인터넷 프로토콜 상에서 TCP/IP 연결응ㄹ 수립하기 위해 TCP에 의해서 사용되는 방법입니다. TCP의 3 way handshaking 기법은 종종 "SYN-SYN-ACK" (더 정확히는 SYN, SYN-ACK, ACK)으로도 불리는데 두 PC간에 연결을 성사시키고 데이터 전송을 시작하기 위해 TCP에서 앞서 언급한 세개의 메시지가 전송되기 때문이다. TCP handshaking 매커니즘은 SSH나 HTTP 웹브라우저와 같은 요구에 데이터를 주고받기에 앞서, 통신하려는 두대의 컴퓨터가 네트워크 TCP 소켓 연결에 필요한 각종 파라미터를 절충하기 위해서 고안되었다.
다시 말해, TCP 3 Way Handshake는 TCP/IP 프로토콜을 이용해 통신을 하는 응용프로그램에 데이터를 전송하기에 앞서 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.
이 3 way handshake는 두 종단이 동시에 TCP 소켓 연결을 성사시키고 초기화하기 위해서 고안된 것이다. 양방향으로의 여러 TCP 소켓 연결을 동시에 성사시킴으로써 단 하나의 물리적 네트워크 인터페이스가 가능하고 (이더넷과 같은), TCP 데이터의 다중 스트림 전송을 위한 다중화도 가능하다.
이벤트
1. 호스트 A는 TCP SYNchronize 패킷을 호스트 B에 보냄.
호스트 A는 SYN을 보내고 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 됨.
2. 호스트 B는 A의 SYN을 받음
호스트 B는 SYN_RECEIVED 상태가 됨.
3. 호스트 B는 SYNchronize-ACKnowledgement를 보냄.
4. 호스트 A는 B의 SYN-ACK을 받음.
5. 호스트 A는 ACKnowledge를 보냄.
6. 호스트 B는 ACK을 받음.
7. TCP 소켓 연결이 성사됨. (ESTABLISHED)
위와 같은 방식은 신뢰성 있는 연결을 맺어주기 위함이다.
댓글 없음:
댓글 쓰기