개요
연결형 통신 프로토콜 TCP (Transport Control Porotocol)은
3-way handshake를 통해 송-수신자간 연결하는 과정을 거친다.
TCP Header 구조 이미 알고있다고 가정하고 생략한다.
3way handshake 과정
1. Client(요청자) SYN Flag
2. Server SYN Flag + ACK Flag
3. Client -> ACK Flag
예제
Client: 로컬 호스트 컴퓨터
Server: 블로그 서버 컴퓨터
행위: Client에서 웹 브라우저 창을 열고 블로그에 접속한다. (세션 연결을 시작한다.)
0. 타겟이 될 서버 혹은 웹사이트 IP주소를 알아낸다.
1. 로컬 호스트 컴퓨터(클라이언트) -> 서버(블로그 주소) 로 SYN Flag 값 1로 설정하여 세그먼트 전송
2. 서버 -> 클라이언트로 ACK, SYN Flag 값 1로 설정하여 세그먼트 전송
3. 클라이언트 연결 확인 세그먼트 응답.
위 과정을 Flow Graph 형태로 한 눈에 살펴보자.
4way handshake 과정
1. Server Fin Flag
2. Client ACK Flag(1번에 대한)
3. Client Fin Flag
4. Server ACK Flag (3번에 대한)
[예제]
행위: Client 웹 브라우저 창을 닫는다. (세션 연결을 종료한다.)
1. 연결을 종료 플래그 'FIN' 값을 Set하여 보냄
2. 연결 종료 요청을 받은 쪽에서 'ACK' 플래그를 켜서 보냄.
3. Client->Server 1번에서 요청했던 주체의 반대 호스트에서 연결 종료 FIN flag 와 ACK Flag 를 응답한다.
4. Server -> Client 3번에서 요청한 FIN (연결 종료 요청 플래그)에 대한 ACK를 전송한다.
'네트워크' 카테고리의 다른 글
Router 메모리 기본 구조 (0) | 2020.09.14 |
---|---|
Air Signal Sniffing Public WiFi (feat. Encryption Protocol) (0) | 2020.09.14 |