컴퓨터 시스템에서 데이터 전송은 크게 3가지 계층으로 나누어 볼 수 있습니다.
어플리케이션 계층(App), 운영 체제 계층(OS), 하드웨어 계층(HW)입니다.
이 계층들 사이에는 데이터가 이동할 때 사용되는 다양한 버퍼(Buffer)와 프로토콜이 존재합니다.
■ 1. App → OS : 데이터 전송 과정
- App
- 어플리케이션 계층에서는 데이터를 전송할 때, 보통 한번에 데이터를 보내는 것이 아니라, 데이터 스트림(Byte Stream)으로 나누어 여러 번에 걸쳐 전송됩니다.
- "hello"라는 문자열을 전송할 때, 'h', 'e', 'l', 'l', 'o'가 각각 따로 전송될 수 있습니다.
- Write Buffer
- 이를 효율적으로 관리하기 위해 어플리케이션은 Write Buffer를 사용합니다.
- 이 버퍼는 데이터를 일시적으로 저장하여,
- 여러 데이터를 한번에 운영 체제(OS)로 보낼 수 있도록 합니다.
■ 2. OS → HW: 데이터 처리 과정
- OS에서 Buffer 사용
- 운영 체제(OS)는 어플리케이션으로부터 받은 데이터를 하드웨어(HW)로 전송하기 전에,
- 데이터의 크기와 전송 효율성을 고려해 데이터를 패킷(Packet)으로 분리합니다.
- 이 과정에서 각 패킷에는 목적지(IP 주소) 및 순서 정보가 부여됩니다.
- 이 과정이 필요한 이유는 네트워크 환경에서 데이터를 전송할 때,
- 여러 패킷을 동시에 전송함으로써 전송 시간을 단축하고,
- 전송 과정에서 데이터의 순서와 위치를 관리하기 위함입니다.
- 패킷화
- 운영 체제는 데이터를 전송할 때,
- 데이터를 패킷으로 나누고 각 패킷에 목적지 주소(IP 주소)와 전송 순서 등의 메타데이터를 부여합니다.
- 이를 통해 패킷들이 수신지에 도달한 후, 올바른 순서로 재조립될 수 있도록 합니다.
■ 3. HW → 목적지: 데이터 전송
- 라우터를 통한 전송
- 하드웨어 계층에서 패킷은 네트워크를 통해 라우터(router)를 거쳐 최종 목적지로 전달됩니다.
- 이 과정에서 라우터는 패킷의 경로를 결정하고,
- 스위칭(switching) 역할을 수행하여 데이터가 올바른 경로를 통해 최적의 속도로 목적지에 도달하도록 합니다.
- 데이터 유실 방지
- 라우터는 데이터 전송 과정에서 데이터의 유실을 방지하기 위한 다양한 기술을 적용하며,
- 목적지까지 정확히 도달할 수 있도록 네트워크 경로를 최적화합니다.
- 포트 번호 사용
- 목적지에 도착한 패킷은 IP 주소를 기반으로 해당 네트워크 내의 특정 컴퓨터로 도달하게 됩니다.
- 하지만, 해당 컴퓨터에는 여러 어플리케이션이 존재할 수 있으므로,
- 정확히 어떤 어플리케이션과 통신할 것인지 결정하기 위해 포트 번호(Port Number)가 사용됩니다.
- IP 주소는 네트워크 상의 특정 장치를 식별하고,
- 포트 번호는 해당 장치 내의 특정 어플리케이션을 식별합니다.
■ 4. 내용 정리
- App에서 데이터를 OS로 전송할 때, 데이터를 효율적으로 관리하기 위해 Write Buffer와 Flush를 사용합니다.
- OS에서 HW로 데이터를 전송할 때는 데이터를 패킷으로 나누어 전송하며, 이는 전송 시간 단축 및 데이터 순서 관리를 위해 필요합니다.
- HW는 라우터를 통해 패킷을 최종 목적지까지 전송하며, 포트 번호를 통해 특정 어플리케이션과의 통신을 결정합니다.
Share article