TCP 연결 성립 과정
3-웨이 핸드셰이크(3-way handshake)

클라이언트와 서버가 통신할 때 하기와 같은 세 단계의 과정을 거친다.
- SYN 단계 : 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보낸다.
- SYN + ACK 단계 : 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN+1을 보낸다.
- ACK 단계 : 클라이언트는 서버의 ISN+1한 값인 승인번호를 담아 ACK를 서버에 보낸다.
ISN?
ISN은 새로운 TCP 연결의 첫 번재 패킷에 할당된 임의의 시퀀스 번호이며 장치마다 다를 수 있다.
TCP 연결 해제 과정
4-웨이 핸드셰이크(4-way handshake)

TCP가 연결을 해제할 때는 하기의 네 단계의 과정을 거친다.
- 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 보낸다. 그리고, 클라이언트는 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다린다.
- 서버는 클라이언트로 ACK 승인 세그먼트를 보낸다. 그리고, CLOSE_WAIT 상태로 들어가고 클라이언트가 세그먼트를 받으면 FIN_WAIT_2 상태로 들어간다.
- 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보낸다.
- 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 된다. 이후 클라이언트는 일정 시간 대기 후 연결이 닫히고 클라이언트와 서버의 모든 자원의 연결이 해제된다.
TIME_WAIT은 왜 할까?
- 지연 패킷이 발생할 경우를 대비하기 위해 패킷이 뒤늦게 도달하고 이를 처리하지 못하면 데이터 무결성 문제가 발생한다.
- 두 장치가 연결이 닫혔는지 확인하기 위해 만약 LAST_ACK상태에서 닫히면 다시 새로운 연결을 하려고 할 때 장치는 LAST_ACK로 유지하기 때문에 오류 발생
- CentOS6, 우분투는 60초로 설정되어 있으며, 윈도우는 4분으로 설정되어 있다.
'면접,CS > 네트워크' 카테고리의 다른 글
[네트워크] HTTP (HTTP1.0 HTTP1.1 HTTP2 HTTP3) (0) | 2023.01.27 |
---|---|
[네트워크] www.naver.com을 입력했을때 과정 (0) | 2023.01.26 |
[네트워크] IP 주소,MAC주소, ARP, IPv4&IPv6 (0) | 2023.01.12 |
[네트워크] TCP/IP 4계층, OSI 7계층 (0) | 2023.01.10 |
[네트워크] 네트워크 기초 (0) | 2023.01.09 |