반응형
TCP는 연결형 프로토콜이라고 이전 글에서 말하였는데 어떠한 방식으로 연결을 수립하는지 확인해봅니다.
TCP의 기능 동작을 구현하기 위해서 TCP FSM(유한 상태 머신)으로 구현되어 있기 때문에
TCP FSM에 대해서 설명을 진행합니다.
내 컴퓨터에서 TCP의 FSM을 확인해보려면 <윈도우 명령 프롬프트>를 실행시킨 후
netstat를 입력해보자.
상태라고 표시된 부분에 해당 TCP소켓의 FSM(유한 상태 머신)이 표시된다.
간단히 FSM에 대해서 살펴보자.
메 시 지 | 설명 |
SYN(synchronize) | 동기화 메시지. 연결을 초기화하고 수립한다. 이 메시지는 장비간의 순서 번호를 동기화 시킨다. |
FIN(finish) | 종료 메시지. TCP 세그먼트의 FIN비트가 설정된 메시지. 장비의 종료 요청을 알린다. |
ACK(acknowledgment) | 승인 메지시. 이 메시지는 SYN나 FIN의 메시지 대해서 잘 받았다는 응답을 처리한다. |
상 태 | 설 명 |
CLOSE | 연결 수립을 시작하기전의 기본 상태(연결 없음) |
LISTEN | 클라이언트의 SYN(연결 초기화 요청) 메시지를 기다리는 상태 |
SYN-SENT | 자신의 SYN 메시지를 보내고 상대방의 응답 SYN를 기다리는 상태 |
SYN-RECEIVED | 상대방의 SYN 메시지를 전달받고 자신의 SYN 메시지를 보내고 ACK를 기다리는 상태 |
ESTABLISHED | 연결의 수립이 완료된 상태. 서로 데이터를 교환 할 수 있다. |
CLOSE-WAIT | 상대방의 FIN(종료 요청)을 받은 상태. 상대방 FIN에 대한 ACK을 보내고 애플리케이션에 종료를 알린다. |
LAST-ACK | CLOSE-WAIT 상태를 처리 후 자신의 FIN요청을 보낸 후 FIN에 대한 ACK을 기다리는 상태. |
FIN-WAIT-1 | 자신이 보낸 FIN에 대한 ACK를 기다리거나 상대방의 FIN을 기다린다. |
FIN-WAIT-2 | 자신이 보낸 FIN에 대한 ACK를 받았고 상대방의 FIN을 기다린다. |
CLOSING | 상대방의 FIN에 ACK를 보냈지만 자신의 FIN에 대한 ACK를 못받은 상태 |
TIME-WAIT | 모든 FIN에 대한 ACK를 받고 연결 종료가 완료된 상태. 새 연결과 겹치지 않도록 일정 시간 동안 기다린 후 CLOSED로 전이한다. |
다음글 : [TCP] 연결수립 과정2
반응형
'네트워크 > TCP' 카테고리의 다른 글
[TCP] 슬라이딩 윈도우 데이터 송신 및 승인2 (0) | 2019.10.02 |
---|---|
[TCP] 슬라이딩 윈도우 데이터 송신 및 승인 (0) | 2019.10.01 |
[TCP] 메시지(세그먼트) 구조 (0) | 2019.09.30 |
[TCP] 연결 종료 과정 (0) | 2019.09.29 |
[TCP] 연결 수립 과정 2 (0) | 2019.09.29 |