추상화

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