본문 바로가기
728x90

도서/성공과 실패를 결정하는 1%의 네트워크 원리6

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 3. 전 세계의 DNS 서버가 연대하다. DNS 서버의 기본 동작 DNS 서버의 기본적인 동작은 클라이언트에서 조회 메시지를 받고 조회 내용에 응답하는 형태다. 조회 메시지는 다음과 같은 정보를 포함한다. 이름 서버나 메일 배송 목적지(메일 주소에서 @ 뒷부분의 이름)와 같은 이름이다 클래스 네트워크의 종류를 나타낸다. 현재는 인터넷 외의 네트워크가 소멸되었으므로 항상 인터넷을 나타내는 'IN'이 값이 된다. 타입 이름에 어떤 타입의 정보가 지원되는 지를 나타낸다. 타입에 따라 클라이언트에 응답하는 정보의 내용이 달라진다. 대표적인 타입과 용도는 다음과 같다. 타입 용도 A IP 주소 조회 MX 메일 배송 목적지 조회 PTR IP 주소에서 이름 조사할 때 CNAME 이름에 닉네임(alias)을 붙일 때 NS DNS 서버의 IP 등록 SOA 도메.. 2022. 7. 10.
728x90