-
3 Way-Handshake 란?Web Programming 2020. 9. 16. 18:13반응형
3 Way-Handshake란 말 그대로 3개의 경로를 통해 연결이 이루어지는 구조를 의미한다. TCP(Transmission Control Protocol)의 가장 큰 특징인 연결지향적인 특성을 갖는 과정에 이 구조가 사용된다.
(TCP에 대해서는 다음 글을 참고하자.)
참고 :
3 Way-Handshake는 간단하게 이러한 구조를 지닌다.
- A가 B에게 연결 여부를 묻는다.
- B는 A에게 연결 여부를 답하며 연결 여부를 묻는다.
- A도 B에게 연결 여부를 답한다.
즉 이 구조는 전송하는 측과 전송받는 측의 선로 연결이 잘 되어있는지 확인하는 과정이라고 할 수 있다. 네트워크 상에서 이는 연결 여부를 패킷을 주고받음으로써 확인한다. 이 과정에 대해 자세히 알아보자.
클라이언트와 서버 혹은 클라이언트와 클라이언트가 연결되는 과정은 위와 같다. 여기서 SYN(Synchronize Sequence Numbers)와 ACK(Acknowlegements)는 상세 과정을 보면 이해할 수 있다.
- SYN Segment(클라이언트의 동기화 정보 전송)
- 클라이언트 A는 Source Port에 자신을 나타내는 Port Number를 넣는다.
- Destination Port에는 서버를 가리키는 Port Number를 넣는다.
- Sequence Number에 클라이언트의 초기 순서 번호를 넣어 전송한다.
- SYN + ACK Segment(서버의 동기화 정보 전송 + SYN Segment 수신 확인)
- 서버 B는 Source Port에 자신을 나타내는 Port Number를 넣는다.
- Destination Port에는 송신자인 클라이언트를 가리키는 Port Number를 넣는다.
- Sequence Number에 서버의 초기 순서 번호를 넣는다.
- Acknowledgement Number에는 클라이언트의 초기 순서 번호 + 1을 넣어 전송한다.
- ACK Segment(SYN Segment 수신 확인)
- 1번 과정과 동일하게 Port Number를 설정한다.
- Acknowledgement Number에는 서버의 초기 순서 번호 + 1을 넣어 전송한다.
- Established(연결 설정 완료)
반응형'Web Programming' 카테고리의 다른 글
http와 https의 차이 (0) 2020.09.25 프로세스(Process)와 쓰레드(Thread), 멀티쓰레드(Multi-Thread) (0) 2020.09.17 JSTL(JSP Standard Tag Library) 정리 (0) 2020.09.15 컴포넌트(Component)와 모듈(Module) (0) 2020.09.11 Question (0) 2020.09.11