본문 바로가기
728x90

소켓4

Chapter 2. Story 2. 서버에 접속한다 접속의 의미 소켓을 만들면 애플리케이션은 connect()을 호출하고 프로토콜 스택은 자기쪽의 소켓을 서버측 소켓에 접속한다. 이 때, 통신 회선 등의 물리적인 케이블은 항상 접속되 있다. 따라서 데이터를 신호로 변홚 송신하기만 하면 언제든지 통신할 수 있다. 하지만 이제 소켓을 막 만든 시점에서 애플리케이션에서 데이터 송신 의뢰가 오면 프로토콜 스택은 어떻게 동작할까? 소켓이 갓 생성된 직후에는 소켓에는 아무런 정보도 없다. 따라서 데이터를 보낼 수 없다. 애플리케이션이 URL을 통해 IP를 파악하고, 포트를 알고 있지만 프로토콜 스택에는 아무런 정보도 전달되지 않은 상태다. 따라서 서버의 IP, 포토를 프로토콜 스택에 알릴 동작이 필요하며 이것이 접속 동작의 한 역할이다. 서버측 역시 소켓이 만들어진.. 2022. 7. 31.
Chapter2. Story 1. 소켓을 작성한다. 프로토콜 스택의 내부 구성 OS에 내장된 네트워크 제어용 소프트웨어(프로토콜 스택)와 네트워킁용 하드웨어(LAN 어댑터)가 네트워크 애플리케이션에서 받은 메시지를 서비스하는 동작을 알아보자. 네트워크를 통해 데이터를 송수신하는 컴퓨터는 다음과 같이 계층을 나눌 수 있다. 모든 네트워크를 통한 데이터 송수신은 네트워크 애플리케이션에서 부터 아래로 향한다. 그러면서 데이터 송/수신 등의 일을 하위 계층에 의뢰한다. TCP, UDP는 데이터 송수신을 담당한다. 애플리케이션에서 보낸 의뢰를 받아 송/수신 동작을 실행한다. 일반적인 데이터 송/수신은 TCP를 사용하며 DNS 서버에 대한 조회 같은 짧은 제어용 데이터는 UDP를 사용한다. IP는 패킷 송/수신 동작을 제어한다. 패킷을 통신 상대 까지 운반하는 것이.. 2022. 7. 24.
Story 4. 프로토콜 스택에 메시지 송신을 의뢰한다. 데이터 송/수신 동작의 개요 IP 주소를 찾으면 엑세스 대상 웹 서버에 메시지를 송신하기 위해 OS 내부에 있는 프로토콜 스택에 의뢰한다. 이 때, 송수신 하는 데이터는 디지털 데이터이며 웹 뿐만 아니라 네트워크를 사용하는 모든 애플리케이션의 공통 동작이다. DNS를 통해 IP를 찾는 것 또한 모든 네트워크에 연결된 애플리케이션에 공통 동작이다. 데이터를 송/수신하는 과정 역시 소켓 라이브러리를 사용한다. 이 과정은 복수의 함수를 결정된 순번대로 호출해야 하므로 조금 복잡하다. 이 과정을 도식화하면 다음과 같다. 위 그림에 존재하는, 클라이언트의 소켓과 서버 소켓을 연결하는 파이프를 만들기 위해선 양자를 파이프로 연결하는 동작이 필요하다. 이 파이프에 존재하는 두 출구를 소켓이라 한다. 서버의 소켓이 만.. 2022. 7. 13.
Story 02. 웹 서버의 IP 주소를 DNS 서버에 조회한다 IP 주소의 기본 브라우저는 생성한 메시지를 네트워크에 송출하는 기능을 제공하지 않는다. 따라서 이를 OS에 위임한다. 이 때, OS는 도메인명이 아닌 IP를 사용하므로 브라우저는 HTTP 메시지를 만든 후 도메인명을 통해 IP를 찾아야 한다. TCP/IP 네트워크는 서브넷이라는 작은 네트워크를 라우터로 연결해 전체 네트워크를 완성한다. 여기서의 서브넷은 허브에 몇 대의 PC가 접속된 것이다. IP는 네트워크 번호와 호스트 번호로 나뉘어져 있다. IP의 네트워크 번호는 서브넷에 할당되고, 호스트 번호는 컴퓨터에 할당된다. 실제 IP는 IPv4 기준으로 32비트이다. 이를 8비트(1바이트)씩 점으로 구분해 10진수로 표기한다(ex - 10.11.12.13). IP 주소 규칙은 오직 네트워크 번호와 호스트 .. 2022. 6. 30.
728x90