13.TCP/IP 통신 흐름

강재영's avatar
Aug 19, 2024
13.TCP/IP 통신 흐름
 
 

추상화

notion image
 

흘러가는 순서

1. 애플리케이션(Application)에서 운영체제(OS)로

  • HTTP 통신: 애플리케이션(예: 웹 브라우저)이 HTTP 요청을 생성합니다. 이 요청은 Content-Type: application/json과 같은 헤더를 포함하여, JSON 데이터를 HTTP 요청 바디에 담습니다.
  • 바이트 스트림으로 전송: 이 HTTP 요청은 애플리케이션 계층에서 TCP 계층으로 전달되며, TCP는 이 데이터를 바이트 스트림으로 처리합니다. 바이트 스트림은 연속된 바이트로, 네트워크를 통해 전송되기 전에 운영체제의 TCP/IP 스택으로 전달됩니다.

2. 운영체제(OS)에서 하드웨어로

  • 세그먼트로 분할: 운영체제에서 TCP 계층은 애플리케이션으로부터 받은 바이트 스트림을 TCP 세그먼트로 나눕니다. 각 세그먼트에는 데이터의 일부와 함께 TCP 헤더(포트 번호, 순서 번호 등)가 포함됩니다.
  • 패킷으로 감싸기: TCP 세그먼트는 IP 계층에서 IP 패킷으로 캡슐화됩니다. IP 패킷은 IP 헤더(출발지 및 목적지 IP 주소 등)를 포함합니다. 이 IP 패킷은 물리적 네트워크 인터페이스로 전달됩니다.

3. 하드웨어에서 라우터로

  • 네트워크 인터페이스: 하드웨어(예: 네트워크 인터페이스 카드, NIC)는 이 IP 패킷을 물리 계층에서 사용 가능한 형태로 변환하여, 전기 신호 또는 무선 신호로 네트워크로 전송합니다.
  • 라우터로 전달: 하드웨어는 IP 패킷을 라우터로 전송합니다. 라우터는 패킷의 목적지 IP 주소를 확인하고, 다음 홉(다음 라우터 또는 최종 목적지)으로 패킷을 전달합니다.

4. 라우터에서 목적지로

  • 최단 경로로 패킷 전송: 라우터는 패킷의 목적지 IP 주소를 기반으로 최적의 경로를 계산하고, 패킷을 해당 경로로 전송합니다. 이 과정에서 여러 라우터를 거쳐 목적지 네트워크로 전달됩니다.

5. 목적지에서 재조립

  • 패킷 재조립: 목적지의 운영체제는 수신된 IP 패킷을 TCP 세그먼트로 분리한 후, 이 세그먼트를 순서대로 재조립하여 원래의 바이트 스트림을 복구합니다.
  • 데이터 처리: 재조립된 바이트 스트림은 최종적으로 애플리케이션 계층으로 전달되며, 애플리케이션은 이를 처리하여 HTTP 응답을 생성하거나 데이터를 화면에 표시합니다.

결론

전체적인 흐름을 정리하면:
  1. 애플리케이션에서 운영체제(TCP/IP 스택)로: 데이터를 바이트 스트림으로 전송.
  1. 운영체제에서 하드웨어로: 바이트 스트림을 TCP 세그먼트로 나누고, IP 패킷으로 캡슐화하여 전송.
  1. 하드웨어에서 라우터로: 패킷을 물리 계층을 통해 네트워크로 전송.
  1. 라우터에서 목적지로: 패킷을 최적의 경로로 목적지까지 전달.
  1. 목적지에서 재조립: 패킷을 순서대로 재조립하여 원래 데이터를 복구.
이 흐름은 TCP/IP 프로토콜을 기반으로 하는 네트워크 통신의 일반적인 과정입니다.
 
Share article

강재영 블로그