설명 순서는 다음과 같습니다

1. 트랜스포트 계층의 역할
2. TCP란
3. 3 way handshake & 4 way handshake

1. 트랜스포트 계층의 역할

   - 트랜스포트 계층 프로토콜은 각기 다른 호스트에서 동작하는 애프리케이션 프로세스를 논리적으로 연결하는 역할을 담당함

   - 서로 다른 프로세스 간 데이터를 전달하고 받는 프로토콜

   - 주 목적

      ① 내 프로세스에서 받은 데이터를 다른 프로세스에게 전달

      ② 다른 프로세스에서 받은 데이터를 내 프로세스에게 전달

   - '전달'이 핵심


2. TCP란

   - 인터넷 애플리케이션 계층에게 주어지는 트랜스포트 계층 프로토콜 중 하나

   - TCP 프로토콜의 특징은 '데이터의 신뢰성'을 보장한다는 것임

   - '데이터의 신뢰성'이란 보낸 데이터가 그대로 수신자에게 전달됨을 보장한다는 뜻임

   - 만약 A와 B가 메시지를 주고 받는다고 가정하면 고려해야할 사항은 다음과 같음

      ① 메시지를 보내기 전 'B가 살아있을까? B가 맞을까?'를 확인(B 또한 A를 확인)

         : B가 받지 못하는 상황이거나 엉뚱한 사람에게 보내면 안되므로, 이를 확인하는 과정이 필요 -> 3 way handshake

      ② 보낸 메시지가 순서대로 잘 전달되었을까?

         : 패킷 단위로 전달이 되는데, 이 때 받는 순서는 바뀔 수 있음. 하지만, 보내는 사람이 패킷에 번호를 붙이고 받는 사람은 이 번호를 이용하여 다시 순서대로 재조립할 수 있게해야 함

      ③ 보낸 메시지가 모두 다 전달되었을까?

         : 보낸 패킷이 모두 전달되어야함. 따라서, 받는 사람은 패킷을 받을 때 마다 받았다는 응답을 주면 보낸 사람은 받았다는 응답 갯수로 패킷이 모두 전달되었는지 알 수 있음


3. 3 way handshake & 4 way handshake

   - 3 way handshake는 데이터를 주고받기 전, 두 엔드포인트간 서로를 확인하는 과정임

   - 진행되는 순서는 다음과 같음

      ① A는 B에게 '내가 너한테 데이터를 전달해도 되지?' 라는 메시지를 보냄 -> SYN

      ② B는 A에게 '응, 나도 너한테 데이터를 전달해도 되지?' 라는 메시지를 보냄 -> ACK + SYN

      ③ A는 B에게 '응' 이라는 메시지를 보냄 -> ACK

   - 이렇게 총 3단계를 거쳐서 데이터를 주고받기 전에 미리 '연결'을 시켜놓음 -> TCP의 연결지향형 특징

   - 4 way handshake는 연결을 끊을 때 하는 과정임

   - 진행되는 순서는 다음과 같음

      ① A가 B에게 '데이터를 다 보냈으니 연결을 끊을게' 라는 메시지를 보냄 -> FIN

      ② B는 A에게 '응' 이라는 메시지를 보냄 -> ACK

      ③ B또한 데이터를 다 보냈을 경우 A에게 '나도 연결을 끊을게' 라는 메시지를 보냄 -> FIN

      ④ A는 '응' 이라는 메시지를 보냄 -> ACK

      ⑤ 종료

   - 서로 주고받은 데이터가 완료되었음을 확인하고 안정적으로 연결을 종료


3 way handshake와 4 way handshake에 대해 알아볼 수 있었습니다.

'네트워크' 카테고리의 다른 글

OSI 7계층  (0) 2023.09.12
브라우저에 URL을 입력하면 일어나는 일  (0) 2023.09.12
TCP, UDP  (0) 2023.08.08
쿠키, 세션  (0) 2023.08.03
HTTP와 HTTPS의 차이, 대칭키와 비대칭키  (0) 2023.07.28

+ Recent posts