TCP는 신뢰성을 확보할 때 3웨이 핸드쉐이크라는 작업을 진행한다. (연결성립과정)
3웨이 핸드쉐이크
1.SYN 단계
클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보낸다. ISN은 새로운 TCP연결의 첫 번째 패킷에 할당된 임의의 시퀀스 번호를 말하며 이는 장치마다 다를 수 있따.
2.SYN+ACK단계
서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호르 클라이언트의 ISN +1을 보낸다
3.ACK 단계
클라이언트는 서버의 ISN+1한 값인 승인번호를 담아 ACK를 서버에 보낸다. 이렇게 3웨이 핸드셰이크 과정 이후 신뢰성이 구축되고 데이터 전송을 시작한다. 참고로 TCP는 이 과정이 있기 때문에 신뢰성이 있는 계층이라고 한다. (<->UDP)
4웨이 핸드쉐이크
TCP가 연결을 해제할 때 진행하는 과정
1번
클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 보낸다. 그리고 클라이언트는 FIN_WAIT_1상태로 들어가고 서버의 응답을 기다린다.
2번
서버는 클라이언트로ACK라는 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT상태에 들어간다. 클라이언트가 세그먼트를 받으면 FIN_WAIT_2상태에 들어간다.
3번
서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보낸다.
4번
클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED상태가 된다. 이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고 클라이언트와 서버의 모든 자원의 연결이 해제 된다.
TIME_WAIT
1)지연 패킷이 팔생할 경우를 대비하기 위함, 패킷이 뒤늦게 도달하고 이를 처리하지 못한다면 데이터 무결성 문제가 발생
2)우분투는 60초, 윈도우는 4분 등 OS마다 다르다.
'웹개발지식' 카테고리의 다른 글
브라우저에 naver.com, google.com을 입력후 일어나는일 (0) | 2022.06.23 |
---|---|
IP와 라우팅, IP와 ARP, RARP (캡슐화 과정과 비캡슐화) (0) | 2022.06.23 |
TCP와 UDP의 차이 (0) | 2022.06.23 |
TCP/IP 4계층 모델과 OSI 7계층 (0) | 2022.06.23 |
MVC MVP MVVM 패턴 (0) | 2022.06.20 |