본문 바로가기
Network

TCP/IP 개념 및 과정

by 옹알이옹 2023. 8. 20.

 1. TCP/IP 정의

TCP/IP란 인터넷에서 통신을 하기 위한 규약이라고 한다.
콘센트를 사용할 때 220V 110V에 따라정해진 모양과 크기가 있지 않은가 그것과 같은 맥락이다. 
그러면 그 규약에 맞춘 실제 통신은 어떻게 이루어지는지는 아래서 설명한다.

 

 2. TCP/IP 통신 과정

TCP/IP 통신에 대해 공부하며 가장 비유하기 좋은 모델은 택배가 이동하는 과정이 아닐까 싶어 그것에 빗대어 표현하면 이렇다.

이미지없음

* TCP 통신을 한다는 전제

  비유 모델(컴퓨터 책상 배송) 인터넷(데이터 전송)
상황 컴퓨터 책상이 매우 커서 한번에 보낼 수 없음. 데이터가 커서 한번에 보낼 수 없음.
1번 -> 2번 행동 책상 부품을 분해 한 뒤 각각 택배 상자에 담고 송장을 작성해 박스에 붙인다. 데이터를 쪼갠 뒤 패킷화를 한다.
2번 택배를 등기로 보낼 것임을 명시해준다. TCP 헤더(송장)에 송신자,수신자 port 번호와 데이터를 담을 수 있는 크기 정보등을 추가한다.
3번 송장에 받는이의 아파트 주소를 작성한다.  TCP 헤더에 송,수신자 IP 번호를 추가한다.
4번 송장에 받는이의 동/호수 까지 기입한다. TCP 헤더에 송,수신자 MAC 주소를 추가한다.
5번 택배 기사님이 트럭에 박스를 넣어 배송한다. 패킷을 전기신호로 변환한 뒤 인터넷을 통해 이동

* 실제 배송 중에는 하나의 트럭이 처음부터 끝까지 수행하지 않는다. 각 지역 hub를 거친 뒤 우리에게 온다.

데이터도 마찬가지로 각각의 router를 거쳐 수신자에게 도달하게 된다.

 

 

 3. TCP 연결

TCP 통신에 대해 검색을 하다 보면 '연결 지향'  , 논리적 연결 이라는 말을 한 번쯤은 접했을 것이다. 그러면 여기서 논리적 연결을 무엇을 말할까?

 

3-1. TCP 논리적 연결이란

TCP 통신의 특징은 두 서버가 연결을 하고, 그 연결을 통해 누락된 데이터가 없는지 잘 주고받았는지를 확인하여 신뢰성이 보장된다고 한다.

 

그렇다면 여기서 말하는 연결이 무엇일까? 실제 두 서버가 케이블로 연결되어 있다는 아니다. 두 서버가 인터넷을 통해 특정 패킷을 송/수신 완료 했다면 두 서버는 논리적으로 연결되어 있다.라고 말하는 것이다.

여기서 말하는 특정 패킷을 송/수신하는 것을 고급지게 3-WAY-Handshake라고 말하며 다시 말해 
3-WAY-Handshake 가 완료 되면 논리적 연결이 되었다.라고 하는 것이다.

 

 

3-2. 3-WAY-Handshake

위에서 3-WAY-Handshake란 논리적 연결을 위한 과정이라고 말했다. 그럼 이때 주고받는 패킷은 무엇일까.

순전히 연결을 위한 패킷이므로 그 안에는 실제 데이터를 포함하지 않는다.

이미지없음
패킷을 표현한 그림

한마디로 위의 그림에서 Data 부분은 비어 있고 TCP 헤더에 있는 Sequence Number 값을 사용하여 연결을 확인한다.

이미지없음이미지없음

  • 위의 과정을 통해 서로 준 값들에 대한 올바른 응답을 한다면(논리적 연결) 그 이후 패킷에 실제 Data를 넣어 송/수신하게 된다.
  • 이렇게 패킷들을 주고받은 인터넷상에서의 경로(라우터와 라우터의 연결 통로)가 수립된다면 해당 연결이 끊이지기 전까지 주고받는 모든 패킷들은 위의 경로와 동일한 경로로 주고받게 된다.
    (3-WAY-Handshake를 할 때 인터넷상에서 빨간색 경로로 갔다면 이후 주고받는 패킷도 해당 경로로만 감)
  • 실제 TCP 헤더 안에는 패킷의 크기, 장애 대응 정책 등에 대한 더 많은 정보들이 들어가 있지만 더 깊이 가지 않는다.

 참고 자료

  • 널널한 개발자TV
  • IT 위키
반응형