이론공부/네트워크통신
TCP 3-way handwake란 무엇인가?
멍토
2020. 8. 6. 00:02
TCP란?
TCP는 OSI7계층중 4계층인 전송계층에서 사용하는 신뢰성이 중요한 어떤 응용에 의해 사용될 수 있는 신뢰성 있는 연결-지형 프로토콜이다. 연결지향 서비스를 제공하기 위하여 연결설정, 데이터 전송, 연결 해제 단계를 정의한다. TCP는 전이중 통신을 제공하여 데이터는 동시에 양방향으로 전달 될 수 있다. |
TCP 3-way handwake
TCP는 데이터를 전송하기 위해 근원지와 목적지 사이에 가상의 경로를 설정한다. 이러한 가상의 경로를 설정하는 과정을 3-way handwake라고 한다. 과정은 서버부터 시작이되며 서버 프로그램은 TCP에게 연결을 받을 준비가 되어있다고 알리며 이를 수동개방(passive open)요청 이라고 한다. 클라이언트 프로그램은 개방된 특정 서버와 연결이 필요하다고 자신의 TCP에 알리고 이를 능동개방(active open)요청이라 한다. |
1. 클라이언트는 SYN 플래그만 설정되어있는 세그먼트인 SYN세그먼트를 서버에 전송한다. 세그먼트는 순서번호들의 동기화를 위해 사용한다. 2. 서버는 SYN플래그와 ACK플래그가 설정된 세그먼트를 전송한다. SYN세그먼트는 순서번호를 초기화 시키기위해 사용된다. ACK세그먼트는 다음 수신이 예상되는 번호를 보냄으로써 SYN세그먼트의 수신을 확인응답한다. 3. 마지막으로 클라이언트가 ACK세그먼트를 전송한다. 두번째 세그먼트를 수신한 것에 대한 확인응답이다. |
SYN : Synchronize sequence numbers ACK : Acknowledgment is valid FIN : Teminate the connection |
참고 : 데이터 통신과 네트워킹(5판)