본문 바로가기
Computer Science/Network

<프로토콜 스택에 메세지 송신을 의뢰한다>

by pan5158 2022. 12. 17.

데이터 송.수신 동작의 개요

  • 웹 서버의 메세지를 송신하도록 OS의 내부에 있는 프로토콜 스택에 의뢰
  • HTTP 메세지는 디지털 데이터이므로 디지털 데이터를 송신하도록 의뢰

 

데이터 송.수신 동작의 단계

  1. 소켓을 만듭니다. (소켓 작성 단계)
  2. 서버측의 소켓에 파이프를 연결합니다. (접속 단계)
  3. 데이터를 송.수신합니다. (송.수신 단계)
  4. 파이프를 분리하고 소켓을 말소합니다. (연결 끊기 단계)

Socket 이란

네트워크 경유지에 컴퓨터 IP주소를 식별하여 송.수신 동작으로 양방향 데이터 흐름을 말합니다.

Socket 양방향 통신

Socket 통신 라이브러리 종류

  • connect - 연결하다
  • write - 작성하다
  • read - 수신하다
  • close - 닫는다

파이프 통해서 네트워크 데이터 흐름

파이프 통해 데이터 양방향 흐름

 

소켓의 작성 단계

  1. DNS서버에 조회 요청시 Socket 라이브러리 프로그램 부품을 호출
  2. 클라이언트 쪽에서 소켓을 만듭니다. 
  3. 클라이언트 쪽에서 소켓을 통해서 요청하면 서버측도 소켓을 만듭니다.
  4. 디스크럽터 역할은 클라이언트- 서버에서 소켓을 식별하고 메모리에 저장을합니다.

 

파이프를 연결하는 접속 단계

  1. 서버측에 소켓을 만들고 클라이언트측 소켓에는 파이프 연결을 기다립니다.
  2. 서버측에 접속하기 위해 프로토콜 통신 의뢰를 하기 위해 Socket 라이브러리 connect라는 부품을 사용하여 의뢰 동작을 합니다. 
  3. connect 호출할 때 디스크립터, 서버의 IP주소, 포트 번호 세가지 값 입니다. 
  4. 디스크럽터는 애플리케이션의 소켓을 식별하는 것이고, 서버의 IP주소는 메시지 송.수신을 동작을 의뢰할때 네트워크 주소를 식별하기 위해 사용합니다. 주로 port 80과 같이 값을 보냅니다.
  5. IP주소가 DNS서버에 요청하여 동작을 의뢰해서 브라우저와 서버가 메세지 송.수신을 하는 것을 말합니다.

 

 

메세지를 주고받는 송.수신 단계

  1. Socket 통신이 상대측과 연결이되면 데이터 흐름으로 송.수신을 의뢰합니다. 
  2. 브라우저가 송신을 보낼때 Socket 라이브러리 프로그램 부품 종류인 write 사용하여 메세지를 요청합니다.
  3. 서버측은 요청한 값을 받아 수행하여 read 수신버퍼로 응답을 합니다. 

 

연결 끊기 단계에서 송.수신이 종료된다

HTTP 메세지 송.수신 동작의뢰

HTTP 메시지를 통해서 클라이언트와 서버가 데이터 송.수신 동작을 의뢰합니다. 먼저 브라우저에서 DNS 서버에 URL 자원의 값을 요청하여 서버는 요청한 값을 받아 해독해서 동작을 수행합니다. Response 응답으로 다시 브라우저에게 결과 값을 보냅니다.
그러므로 Socket 라이브러리 프로그램 부품 종류인 close 연결을 끊어 read 수신버퍼로 브라우저 메모리에 저장합니다.