TCP장치들 사이에 논리적인 접속을 성립하기 위해 사용함
TCP/IP 프로토콜을 이용해 데이터 전송 전에 정확한 전송 보장을 위해 상대 컴퓨터와 사전에 세션을 수립하는 과정
Client -> Server : TCP SYN (신호를 보냄)
Client가 Server에 접속을 요청(SYN패킷 전송) Client는 SYN/ACK라는 응답을 기다리며 SYN_SENT라는 상태가 됨
Server -> Client : TCP SYN/ACK (신호를 받고 보냄)
Server가 받고 수락한다는 ACK와 SYN flag가 설정된 패킷을 발송한 뒤에 ACK라는 응답을 기다리며 SYN_RECEIVED라는 상태가 됨
Client -> Server : TCP ACK (신호를 보냄)
Client가 Server에게 ACK패킷을 발송하면 연결이 이루어진다 여기서 ESTABLISHED 상태가 된다.
SYN : Synchronize Sequesnce Numbers
ACK : Acknowlegment
양쪽 모두 데이터 전송 준비가 된 것을 보장한다. (서로 검증)
4-Way HandShaking
Clinet -> Server : TCP FIN (신호를 보냄)
Client가 Server에게 종료를 뜻하는 FIN신호를 보낸 후 Client는 FIN-WAIT 상태가 된다.
Server -> Client : TCP ACK (신호를 보냄)
Server가 Client에게 알겠다는 의미로 ACK신호를 보낸다 그리고 Server는 CLOSE_WAIT상태가 된다.
Server -> Client : TCP FIN (신호를 보냄)
Server가 Client에게 종료한다는 의미로 FIN신호를 보낸다 그리고 Server는 LAST-ACK라는 상태가 된다.
Client -> Server : TCP ACK (신호를 보냄)
Client가 Server에게 알겠다는 의미로 ACK를 전송하고 Client는 TIME_WAIT상태가 되었다가 시간이 지나고 CLOSE로 바뀌며 연결이 종료된다.
'자기개발 > Linux' 카테고리의 다른 글
Linux 공부 5일차 (0) | 2021.01.30 |
---|---|
Linux 공부 4일차 (0) | 2021.01.24 |
Linux 공부 3일차 (0) | 2021.01.23 |
Linux 공부 2일차 (0) | 2021.01.22 |
Linux 공부 1일차 (0) | 2021.01.21 |