사전 네트워크
영역

네트워크

gabury1

컴퓨터끼리 데이터를 주고받는 일을 다루는 구역입니다. 케이블에 신호를 흘려보내는 일부터 웹 페이지를 받아오는 일까지가 이 안에 들어 있습니다. 이 구역은 한 덩어리가 아닙니다. 규칙이 여러 겹으로 쌓여 있고 겹마다 맡은 일이 다릅니다.

상세

호스트는 통신 서비스를 최종적으로 쓰는 컴퓨터입니다. 호스트는 대개 사용자를 대신해 응용 프로그램을 실행하고, 그 일을 받치는 데 네트워크 통신 서비스와 인터넷 통신 서비스를 씁니다. 인터넷 통신 시스템은 인터넷 프로토콜을 써서 호스트끼리 통신하게 해 주는, 서로 이어진 패킷 네트워크들입니다. 그 네트워크들은 패킷 교환 컴퓨터로 이어집니다. 그래서 인터넷은 네트워크들의 네트워크입니다. 호스트는 어떤 특정 네트워크에 직접 연결되어 있고 인터넷에 대한 연결은 개념적일 뿐입니다. 인터페이스를 둘 이상 가진 호스트는 일반적으로 멀티홈드라고 부릅니다.

이 구역이 갈리는 지점은 계층입니다. 인터넷 시스템으로 통신하려면 호스트는 인터넷 프로토콜 스위트를 이루는 계층화된 프로토콜 묶음을 구현해야 합니다. 호스트는 대개 각 계층에서 최소한 하나의 프로토콜을 구현해야 합니다. RFC 1122 는 인터넷 아키텍처가 쓰는 계층을 넷으로 적습니다.

계층 그 자리가 맡는 것
응용 계층 인터넷 프로토콜 스위트의 맨 위입니다. 사용자에게 직접 서비스를 주는 사용자 프로토콜과 공통 시스템 기능을 주는 지원 프로토콜로 나뉩니다
전송 계층 응용 프로그램을 위한 종단 간 통신 서비스를 줍니다. 현재 주요 프로토콜은 TCP(Transmission Control Protocol, 전송 제어 프로토콜)와 UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜) 둘입니다
인터넷 계층 IP(Internet Protocol, 인터넷 프로토콜)가 출발 호스트에서 목적 호스트까지 데이터를 나릅니다. 연결이 없는 데이터그램 서비스라 종단 간 전달을 보장하지 않습니다
링크 계층 직접 연결된 네트워크에서 통신하기 위한 프로토콜입니다. 네트워크 종류가 많은 만큼 종류가 다양합니다

계층이 서로를 가리는 방식

메시지가 프로토콜 스택을 내려갈 때 모듈이나 드라이버가 각자 자기 헤더를 붙입니다. 메시지가 응용 프로그램 쪽으로 올라갈 때는 대응하는 헤더를 벗깁니다.

flowchart TD
    A[응용 계층] -->|헤더 붙임| B[전송 계층]
    B -->|헤더 붙임| C[인터넷 계층]
    C -->|헤더 붙임| D[링크 계층]
    D -->|프레임 내보냄| E[네트워크]

IP 헤더에 담긴 IP 주소가 여러 물리 네트워크로부터 하나의 논리 네트워크를 세웁니다. 물리 네트워크를 이렇게 이어 붙인 것이 인터넷이라는 이름의 출처입니다. IP 는 밑에 깔린 네트워크 하드웨어를 네트워크 응용 프로그램으로부터 감춥니다. 새 물리 네트워크를 만들었다면 IP 아래에 붙는 드라이버를 새로 구현해서 서비스에 넣을 수 있습니다. 그래서 응용 프로그램은 그대로 남고 하드웨어 기술의 변화에 노출되지 않습니다.

같은 데이터 단위도 어느 자리에 있느냐에 따라 이름이 바뀝니다. 이더넷 위에 있으면 이더넷 프레임, 이더넷 드라이버와 IP 모듈 사이에 있으면 IP 패킷, IP 모듈과 UDP 모듈 사이에 있으면 UDP 데이터그램, IP 모듈과 TCP 모듈 사이에 있으면 TCP 세그먼트, 네트워크 응용 프로그램 안에 있으면 응용 메시지입니다.

경계

패킷을 넘겨 주는 기계는 호스트인가 게이트웨이인가. 둘 다일 수 있습니다. 일부 인터넷 호스트 소프트웨어는 게이트웨이 기능을 안에 품고 있습니다. 그런 호스트는 호스트의 응용 계층 기능을 그대로 수행하면서도 게이트웨이처럼 패킷을 전달할 수 있습니다.

RFC 1122 는 이 자리에 양쪽 주장이 다 있다고 적습니다. 찬성 쪽은 네트워킹이 격식 없이 돌아가는 지역 네트워크 환경이나 고립된 인터넷에서는 기존 호스트 시스템을 게이트웨이로 쓰는 것이 편하고 경제적일 수 있다고 봅니다. 구조적 논거도 있습니다. 멀티호밍이 원래 예상보다 훨씬 흔해졌고, 멀티호밍은 호스트가 마치 게이트웨이인 것처럼 라우팅 결정을 내리도록 강제합니다. 반대 쪽은 게이트웨이 알고리즘과 프로토콜이 아직 바뀌고 있고 인터넷 시스템이 커지면서 계속 바뀔 것이라고 봅니다. 호스트 IP 계층 안에 일반적인 게이트웨이 기능을 넣으려 들면 호스트 시스템 관리자가 그 잦은 변화를 계속 따라가야 합니다. 게이트웨이 IP 계층의 복잡도는 호스트의 것보다 다소 크고, 그만큼 구현과 운영 작업이 복잡해집니다.

같은 문서는 두 관점 모두에 상당한 장점이 있다고 적고 결론을 하나만 끌어냅니다. 호스트 관리자는 주어진 호스트가 게이트웨이로 동작하는지 아닌지를 의식적으로 통제할 수 있어야 합니다. 그래서 이 선은 기계의 종류가 긋는 것이 아니라 관리자의 설정이 긋습니다.

경로를 고르는 일이 어디에 놓이는지도 같은 문서가 적어 둡니다. 라우팅은 복잡하고 어려운 문제라 호스트가 아니라 게이트웨이가 수행해야 합니다. 인터넷 라우팅 아키텍처는 피할 수 없이 진화하므로, 그 변화로부터 호스트 소프트웨어를 격리하는 것이 중요한 목표입니다.

이견

이 구역을 몇 겹으로 나누느냐가 문서마다 다릅니다. RFC 1122 는 인터넷 아키텍처가 쓰는 계층을 응용 계층과 전송 계층과 인터넷 계층과 링크 계층 넷으로 적습니다. 같은 문서가 OSI(Open Systems Interconnection, 개방형 시스템 상호연결) 참조 모델을 나란히 언급합니다. 인터넷 스위트의 응용 계층은 OSI 참조 모델의 위 두 계층인 표현 계층과 응용 계층의 기능을 사실상 합친 것입니다. 인터넷 스위트는 응용 계층을 더 잘게 나누지 않습니다. 다만 인터넷 응용 계층 프로토콜 중 일부는 내부적으로 하위 계층을 갖기도 합니다.

이름도 갈립니다. 인터넷 호스트는 OSI 프로토콜 스위트에서 쓰는 종단 시스템이라는 개념에 대응합니다. 네트워크들을 잇는 패킷 교환 컴퓨터를 인터넷 커뮤니티는 게이트웨이 또는 IP 라우터라 부르고 OSI 쪽은 중간 시스템이라 부릅니다. 영향은 한 방향만이 아닙니다. 같은 문서는 인터넷 IP 가 OSI 의 비연결형 네트워크 프로토콜의 모델이 되었다고 적습니다.

데이터 단위의 이름도 문서마다 갈립니다. RFC 1180 은 이더넷 프레임과 IP 패킷과 UDP 데이터그램과 TCP 세그먼트와 응용 메시지로 이름을 갈라 놓고, 곧바로 그 정의들이 불완전하다고 적습니다. 실제 정의는 출판물마다 다르다고 적고, 더 구체적인 정의는 RFC 1122 의 1.3.3 절에서 찾을 수 있다고 넘깁니다.

관련 항목

이 구역을 이루는 계층

링크 계층 · 인터넷 계층 · 전송 계층 · 응용 계층

계층을 오가며 메시지가 거치는 처리

프로토콜 스택 · 캡슐화 · 헤더 · 다중화 · 역다중화

계층마다 달라지는 데이터 단위 이름

프레임 · 패킷 · 데이터그램 · 세그먼트

대상을 식별하는 주소와 이름

MAC 주소 · IP 주소 · IPv4 · IPv6 · 브로드캐스트 주소 · 서브넷 · ARP · DNS · NAT · 포트 · 잘 알려진 포트 · 특권 포트 · 호스트 파일

패킷을 주고받는 주체를 가리키는 이름

호스트 · 게이트웨이 · 종단 시스템 · 중간 시스템

경로를 정하고 살피는 라우팅

라우팅 · 경로표 · 직접 라우팅 · 간접 라우팅 · 기본 게이트웨이 · 다음 홉 · IP 라우터 · 라우팅 프로토콜 · BGP · OSPF · RIP · 라우팅 루프 · ICMP · TTL · traceroute · netstat

전송 계층 프로토콜이 갖는 성질

TCP · UDP · 체크섬 · 메시지 경계 · 바이트 스트림

TCP 가 신뢰성을 지키는 장치

3방향 핸드셰이크 · 재전송 · 확인 응답 · 슬라이딩 윈도 · 흐름 제어 · 혼잡 제어 · 윈도 스케일링 · SACK · TIME_WAIT · 킵얼라이브

패킷 크기를 조절하는 메커니즘

MTU · 경로 MTU 탐색 · 단편화와 재조립

프로그램이 쓰는 소켓 인터페이스

소켓 · 소켓 주소 · 주소 패밀리 · SOCK_STREAM · SOCK_DGRAM · 로 소켓 · 바인드 · 리슨 · 액셉트 · 커넥트 · 블로킹 · 논블로킹 입출력 · poll · select · 소켓 옵션 · SO_REUSEADDR · 송수신 버퍼

응용 계층을 이루는 프로토콜

HTTP · HTTP/2 · HTTP/3 · QUIC · TLS · Telnet · FTP · SMTP · SNMP · NFS · X 윈도 시스템

트래픽을 중개하는 프록시와 장비

프록시 · 리버스 프록시 · 터널링 · SOCKS · 로드 밸런서 · CDN

HTTP 연결이 갖는 특성

쿠키 · 지속 연결 · 파이프라이닝

이 구역에서 자주 나는 오류와 장애

패킷 손실 · 패킷 재정렬 · 중복 패킷 · 헤드 오브 라인 블로킹 · MTU 블랙홀 · 포트 고갈 · 라우팅 오설정 · 버퍼 오버런 · EMSGSIZE · EAGAIN

이 구역이 지키는 원칙과 성질

견고성 원칙 · 상호운용성 · 종단 간 원칙 · 상태 없는 전달 · 멀티호밍

트래픽을 가르고 막는 장치

네트워크 네임스페이스 · netfilter · 방화벽

이 구역을 재는 지표

대역폭 · 지연 · 처리량

이 구역을 계층으로 나누는 다른 모델

OSI 참조 모델 · 표현 계층 · 인터넷 프로토콜 스위트

다른 이름: network · 통신망