본문 바로가기
운영체제&네트워크/Network

프로토콜 스택을 통한 메시지 송수신 과정 이해

by GangDev 2024. 4. 25.

프로토콜 스택에 메시지 송신을 의뢰하는 과정은 네트워크 통신에서 중요한 단계이다. 이 과정은 크게 두 단계로 나눌 수 있다: 접속 단계와 송수신 단계이다.

1. **접속 단계**: 먼저, 클라이언트 측에서 서버 측의 소켓에 접속하기 위해 프로토콜 스택에 의뢰한다. 이 때, 필요한 정보는 디스크립터, 서버의 IP 주소, 그리고 포트 번호이다. 디스크립터는 소켓을 식별하는 데 사용되며, IP 주소는 네트워크 내에서 특정 컴퓨터를 찾는 데 사용된다. 포트 번호는 해당 컴퓨터 내의 특정 서비스를 찾는 데 사용된다. 예를 들어, 웹 서비스는 일반적으로 80번 포트를 사용한다. 클라이언트 측의 소켓 번호는 프로토콜 스택이 자동으로 할당하며, 이 정보는 접속 동작을 실행할 때 서버측에 통지된다.

2. **송수신 단계**: 접속이 성공적으로 이루어진 후, 클라이언트는 서버와 데이터를 주고받을 수 있다. 데이터를 송신하기 위해서는 소켓을 통해 프로토콜 스택에 송신 동작을 의뢰하며, 이 때 `write` 프로그램 부품을 사용한다. 반대로, 서버로부터 데이터를 수신하기 위해서는 `read` 프로그램 부품을 통해 프로토콜 스택에 수신 동작을 의뢰한다. 수신된 데이터는 메모리 영역인 수신버퍼에 저장된다.

이 과정을 통해 클라이언트와 서버 간에 데이터 송수신이 가능해지며, 이는 웹 브라우저와 웹 서버 간의 통신, 메일 서버와 메일 클라이언트 간의 통신 등 다양한 네트워크 통신에서 중요한 역할을 한다.

 


프로토콜 스택은 네트워크 통신 과정에서 중요한 역할을 한다. 프로토콜 스택은 네트워크 프로토콜 계층들의 집합으로, 이들 계층들이 함께 작동하여 데이터 전송 과정을 지원한다. 이 스택은 일반적으로 세 가지 주요 섹션으로 나뉩니다: 미디어, 전송, 그리고 애플리케이션이다. 각 계층은 특정 작업을 수행하며, 상위 계층에 서비스를 제공하고, 하위 계층으로부터 서비스를 받는다.

- **미디어 계층**: 물리적인 네트워크 인터페이스와 하드웨어 유형을 사용하여 전송 프로토콜 소프트웨어가 미디어와 통신하는 방법을 정의한다. 예를 들어, TCP/IP 전송 소프트웨어가 네트워크 인터페이스 컨트롤러와 어떻게 통신하는지를 정의한다.

- **전송 계층**: 애플리케이션 프로그램이 전송 계층을 사용하는 방법을 정의한다. 예를 들어, 웹 브라우저 프로그램이 TCP/IP 전송 소프트웨어와 어떻게 통신하는지를 정의한다.

- **애플리케이션 계층**: 사용자 애플리케이션을 직접 지원하는 서비스를 제공한다. 예를 들어, 데이터베이스 접근, 이메일, 파일 전송 등의 서비스를 제공한다.

프로토콜 스택은 계층화된 아키텍처 설계 원칙을 따르며, 전체 프로토콜의 기능을 구성 프로토콜로 분해하여 각각 독립적으로 관리되고 설계될 수 있다. 이렇게 계층화된 구조는 데이터 전송 과정에서 각 계층이 특정 작업을 수행하고, 상위 계층에 서비스를 제공하고, 하위 계층으로부터 서비스를 받는 방식으로 작동한다.

따라서, 프로토콜 스택은 데이터 전송 과정에서 각 계층이 특정 작업을 수행하고, 상위 계층에 서비스를 제공하고, 하위 계층으로부터 서비스를 받는 방식으로 작동하여, 데이터 전송을 가능하게 한다. 이는 웹 브라우저와 웹 서버 간의 통신, 메일 서버와 메일 클라이언트 간의 통신 등 다양한 네트워크 통신에서 중요한 역할을 한다.