설명 순서는 다음과 같습니다
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 |