728x90
TCP 통신 과정에서 데이터를 전송하기 위해서는 먼저 '연결'상태, 가상의 통신로를 확보해야합니다.
그 가상의 통신로를 확보하기 위해 3-way handshake를 거치게 됩니다.
이 때 TCP플랫그(코드 비트)가 중요한 역할을 합니다. 코드비트에는 URG, ACK, PSH, RST, SYN, FIN이렇게 6가지로 나누어집니다.
3-way handshake(연결을 확립할 때)

(1) 통신을 하기 위해 통신을 하기 위한 연결을 확링해달라고 요청(SYN)을 합니다.
이때 SYN이 1로 바뀌면서 세그먼트를 전송
(2) 응답을 회신하기 위해 응답(ACK)를 보냅니다. 동시에 서버도 클라이언트에게 데이터 전송에 대한 허가를 받기 위한 연결을 확립해달라고 SYN을 보냅니다. ACK, SYN이 1로 활성화된 세그먼트를 전송
(3) 서버의 요청을 받은 클라이언트도 연결 확립에 대한 응답(ACK)를 보냅니다.
4-way handshake(연결을 종료할 때)

(1) 연결을 종료(FIN)하기 위한 요청을 보냅니다. FIN이 1로 활성화된 세그먼트를 전송합니다.
(2) 서버는 클라이언트에게 연결 종료에 대한 응답(ACK)를 반환합니다. ACK가 1로 활성화된 세그먼트를 전송합니다.
(3) 서버도 클라이언트에게 연결 종료 요청(FIN)을 보냅니다.
(4) 클라이언트도 서버에게 연결 종료에 대한 응답(ACK)을 반환합니다. ACK가 1로 활성화된 세그먼트를 전송합니다.
728x90
'기술 면접 정리 > 네트워크' 카테고리의 다른 글
DHCP(Dynamic Host Configuration Protocol) (0) | 2022.05.24 |
---|---|
응용계층 (0) | 2022.05.19 |
TCP세그먼트 TCP 헤더 (0) | 2022.05.17 |
스위치 (0) | 2022.05.15 |
MAC주소 (0) | 2022.05.14 |