1장에서는 브라우저에 입력한 URL 을 해독하여 HTTP 요청 메시지를 만들고 이를 OS 에 의뢰하는 것까지 알아보았다. 이 장에서는 OS 에 내장된 프로토콜 스택이 어떻게 송신을 의뢰하는지에 대해 설명한다.

F5B3D8AE-AD2E-4094-BA64-AB81D389D625.jpeg

1. 소켓을 작성한다

애플리케이션에서 의뢰를 받은 프로토콜 스택이 TCP 프로토콜을 이용하여 메시지를 송신하는 동작은 4단계로 이루어져 있다. 여기서 첫번째 단계인 소켓을 생성하는 단계에 대해서 설명한다. (프로토콜 스택의 내부 구성, 소켓의 실체, 소켓을 만드는 동작 등)

STORY 01 소켓을 작성한다

2. 서버에 접속한다

클라이언트 측의 소켓이 서버 측의 소켓에 접속한다는 것이 구체적으로 어떤 것인지, 이때 프로토콜 스택이 어떻게 움직이고 서버와 어떤 대화를 나누는지에 대해 설명한다.

STORY 02 서버에 접속한다

3. 데이터를 송수신한다

프로토콜 스택은 애플리케이션에서 받은 메시지를 작은 조각으로 분할하여 서버에게 송신한다. 서버에서는 올바르게 메시지가 수신되었는지 확인하고, 오류가 발생하여 메시지가 분실되었다면 다시 한번 요청한다.

STORY 03 데이터를 송수신한다

4. 서버에 연결을 끊어 소켓을 말소한다

메시지 송수신이 끝나면 서버에서 연결을 끊고 소켓을 말소한다.

STORY 04 서버에서 연결을 끊어 소켓을 말소한다

5. IP 와 이더넷의 패킷 송수신 동작

데이터를 송수신할 때 작은 단위로 분할했던 메시지를 패킷으로 감싸고 송수신한다. 패킷을 전기나 빛의 신호로 변환하여 케이블에 송출한다.

STORY 05 IP 와 이더넷의 패킷 송수신 동작

6. UDP 프로토콜을 이용한 송수신 동작

TCP 프로토콜은 오류 때문에 패킷이 없어졌을 때 클라이언트에게 다시 요청하는 등의 편리한 기능이 많다. 하지만 오히려 이러한 편리한 기능 때문에 문제가 되는 경우도 있다. 이 경우 UDP 라는 프로토콜을 사용한다.

STORY 06 UDP 프로토콜을 이용한 송수신 동작