1.1 인터넷이란 무엇인가?
위의 질문을 답하기 위한 방법으로는 다음과 같이 두 가지로 존재한다.
- 인터넷을 구성하는 기본적인 하드웨어 & 소프트웨어 구성요소에 대한 기술 (1.1.1)
- 분산 애플리케이션에 서비스를 제공하는 네트워킹 인프라스트럭처 관점에서의 인터넷을 기술 (1.1.2)
1.1.1 구성 요소로 본 인터넷
아래의 그림은 인터넷의 구성요소를 나타낸 것이다.
인터넷(Internet)
- Network of Network
- 전 세계적으로 수십억 개의 컴퓨팅 장치를 연결하는 컴퓨터 네트워크
호스트(host), 종단 시스템(end system)
- 컴퓨터 네트워크에 연결된 컴퓨팅 장치
- e.g., 서버 (데스크탑 PC, 리눅스 워크스테이션, 웹페이지 등), 인터넷에 연결된 모든 인터넷 ‘사물들’ (TV, 스마트 워치 등)
통신 링크(communication link)
와패킷 스위치(packet switch)
의 네트워크로 연결된다.
통신 링크(communication link)
- 다양한
전송률(transmission rate, 링크 대역폭 또는 bandwith)
을 이용해패킷(packet = 데이터)
을 전송한다.
- 전송률의 단위 : bps(bits per second, 초당 비트 수)
- 동축케이블, 구리선, 광케이블, 라디오 스펙트럼을 포함한 다양한 물리 매체로 구성된다.
패킷(packet)
- 송신 종단 시스템에서 수신 종단 시스템(목적지)으로 보내진다.
- 송신 종단 시스템이 보내고자 하는 데이터를
세그먼트(segment)
로 나누고, 각 세그먼트에헤더(header)
를 부착하여 수신 종단 시스템으로 전송한다.
- 패킷은 목적지에서 원래의 데이터로 다시 조립된다.
패킷 교환기, 패킷 스위치(packet switch)
- 입력 통신 링크 중 하나
- 도착하는 패킷을 받아서 출력 통신 링크의 하나로 그 패킷을 전달한다. (최종 목적지 방향으로 패킷을 전달)
- 대표적인 두 종류
링크 계층 스위치(link-layer switch)
: 보통 네트워크 코어에서 사용라우터(router)
: 보통 접속 네트워크에서 사용
경로(route, path)
- 패킷이 송신 종단 시스템에서 보내진 후 수신 종단 시스템에 도달하는 동안 거쳐온 일련의 통신 링크와 패킷 스위치를 말한다.
- 패킷은 컴퓨터 네트워크를 통한 경로를 따른다.
ISP(Internet Service Provider)
- 패킷 스위치와 통신 링크로 이루어진 네트워크
- 종단 시스템에게 다양한 네트워크 접속을 제공한다. (가정용 초고속 접속, 고속 LAN 접속, 이동 무선 접속 등)
- CP(content provider)에게 인터넷 접속을 제공 → 웹 사이트나 비디오 서버를 인터넷에 직접 연결할 수 있게 된다.
- ISP들의 상호 연결
- 하위 계층 ISP는 국가 & 국제 상위 계층 ISP를 통해 서로 연결한다. - 상위 계층 ISP들은 서로 직접 연결된다.
- 각 ISP 네트워크는 따로 관리되고, IP 프로토콜을 수행하며, 네이밍(naming)과 주소배정 방식을 따른다.
💡 인터넷은 종단 시스템을 서로 연결하는 것이므로 종단 시스템에 접속을 제공하는 ISP들도 서로 연결되어야만 한다.
프로토콜(protocol)
- 인터넷에서 정보의 송수신을 제어한다.
- 가장 중요한 프로토콜 둘을 통칭하여 TCP/IP라고 한다.
TCP(Transmission Control Protocol)
IP(Internet Protocol)
: 라우터와 종단 시스템 사이에서 송수신되는 패킷 포맷을 기술한다.
Standards
- IETF(Internet Engineering Task Force)
- 국제 인터넷 표준화 기구
- RFC(Requests for Comment) : IETF 표준 문서
- TCP, IP, HTTP, SMTP 같은 프로토콜을 정의
- IEEE 802 LAN 표준위원회
- 이더넷과 무선 와이파이 표준을 기술
1.1.2 서비스 측면에서 본 인터넷
인터넷은 애플리케이션에 서비스를 제공하는 Infrastructure
- 애플리케이션은 서로 데이터를 교환하는 많은 종단 시스템을 포함하고 있기 때문에
분산 애플리케이션(distributed application)
이라고 부른다.
- 인터넷 애플리케이션은 종단 시스템에서 수행되며, 네트워크 코어에 있는 패킷 교환기에서 수행되지 않는다.
💡 패킷 교환기는 종단 시스템 간의 데이터 교환을 쉽게 해주지만, 데이터의 시작과 끝인 애플리케이션에는 관심을 갖지 않는다.
소켓 인터페이스(socket interface)
한 종단 시스템에서 수행되는 애플리케이션이 다른 종단 시스템에서 수행되고 있는 프로그램으로 데이터를 보내도록 하기 위해서는 인터넷에 어떻게 지시할 것인가?
한 종단 시스템에서 수행되는 프로그램이 다른 종단 시스템에서 수행되는 특정 목적지 프로그램으로 데이터를 전달하도록
어떻게 인터넷 인프라스트럭처에 요구하는지를 명시한 것을
소켓 인터페이스
라고 한다.→ 인터넷에 접속된 종단 시스템들은 소켓 인터페이스를 모두 가지고 있다.
💡 소켓 인터페이스는 송신 프로그램이 따라야 하는 규칙의 집합이며, 인터넷은 이 규칙에 따라 데이터를 목적지 프로그램으로 전달하게 된다.
1.1.3 프로토콜이란 무엇인가?
둘 이상의 통신 개체(entity)가 어떤 일을 함께 수행하려면 이들이 다같이 인식하는 프로토콜 즉, 통신 규약이 필요하다.
아래의 그림은 사람 프로토콜과 컴퓨터 네트워크 프로토콜을 나타낸 것이다.
- 메세지의 송수신과 메시지를 송수신할 때 취하는 행동은 프로토콜의 중심에 있다.
- 따라서 하나가 다른 프로토콜을 수행한다면 그 프로토콜은 다른 이들과 상호작용할 수 없으며, 원하는 작업을 수행할 수 없다.
네트워크 프로토콜
- 통신하는 둘 이상의 원격 개체가 포함된 인터넷에서의 모든 활동은 프로토콜이 제어한다.
- e.g.,
혼잡 제어(congestion-control) 프로토콜
: 종단 시스템에 존재하며, 송수신자 간에 전송되는 패킷 전송률을 조절한다.- 라우터에서의 프로토콜 : 출발지(source)에서 목적지(destination)까지의 패킷 경로를 설정한다.
💡 프로토콜은 둘 이상의 통신 개체 간에 교환되는 메시지 포맷과 순서뿐만 아니라, 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다.