반응형
SMALL
TCP의 연결해제 : 4-Way Handshake와 TIME_WAIT
TCP의 연결해제 과정은 다음과 같이 4개의 과정을 거쳐 성립
1. 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 보낸다. 그리고 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다린다.
2. 서버는 클라이언트로 ACK라는 승인 세그먼트를 보내고 CLOSE_WAIT 상태에 들어간다. 클라이언트가 세그먼트를 받으면 FIN_WAIT_2 상태에 들어간다.
3. 서버는 LAST_ACK 상태가 되며 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보낸다.
4. 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 되며 이후 클라이언트는 어느 정도의 시간(TIME_WAIT으로 설정된 시간)을 대기한 후 연결이 닫힌다.
TIME_WAIT
TIME_WAIT는 지연 패킷 등이 발생했을 때 데이터 무결성을 해결하기 위해 패킷을 기다리는 시간
2 * MSL 동안 기다림 (MSL = maximum segment lifetime, 최대 패킷 수명)
또한 연결이 올바르게 닫힌 상태로 만들기 위해 존재하기도 함
예를 들어 CLOSED가 아닌 LAST_ACK로 되어 있으면 그 다음 연결 때 오류가 나타나기 때문에 일정시간 기다리는 TIME_WAIT가 필요함. 이는 CentOS6, 우분투에는 60초로 설정되어 있으며 윈도우는 4분으로 설정되어 있음
즉, OS마다 조금씩 다를수 있음
ex) 우분투 설정파일
include/net/tcp.h
#define TCP_TIMEWAIT_LEN(60 * HZ) /* TIME-WAIT
연결성립 + 연결해제 과정 정리
* 참고
반응형
LIST
'CS > 네트워크' 카테고리의 다른 글
[CS] IP주소, MAC 주소, ARP, RARP (0) | 2023.10.27 |
---|---|
[CS] 라우팅 개념과 라우터, 라우팅 테이블 (0) | 2023.10.20 |
[CS] TCP의 연결성립 : 3-Way Handshake (0) | 2023.10.18 |
[CS] TCP/IP 4계층 #5. 인터넷 계층(network) (0) | 2023.10.17 |
[CS] TCP/IP 4계층 #4. 전송 계층(transport) (2) | 2023.10.16 |
댓글