Computer Networking: A Top-Down Approach (7th Edition)를 정리한 글입니다.
What Is the Internet?
인터넷이란 무엇일까?
이 질문에 대해 몇가지로 답할 수 있다.
- 인터넷의 nuts and bolts에 대한 설명
- nuts and bolts : 기본적인 세부사항
- 애플리케이션에 서비스를 제공하는 네트워킹 기반 시설
A Nuts-and-Bolts Description
인터넷은 전세계의 수십억 개의 컴퓨팅 기기들 간에 상호연결된 컴퓨터 네트워크이다.
초창기 컴퓨팅 기기는 주로 전통적인 데스크탑 pc, 리눅스 워크스테이션, 서버 등이었다. 하지만 점차 랩탑, 스마트폰, 태블릿, 워치, 자동차 등의 비전통적인 인터넷 “사물(things)”들이 인터넷에 연결되기 시작했다.
컴퓨터 네트워크라는 단어는 구식이 됐고, 이러한 기기들은 호스트(hosts) 또는 종단 시스템(end systems)라고 불리게 됐다.
종단 시스템은 통신 회선(communication links)이나 패킷 스위치(packet switches)을 통해 서로 연결되어있다. 통신 회선은 동축 케이블(coaxial cable), 구리선(copper wire), 광 섬유(optical fiber), 전파 스펙트럼(radio spectrum) 등의 다양한 종류로 이루어져 있다. 다양한 회선은 다양한 속도로 전송되는데, 이를 전송률(transmission rate)이라고 한다. 한 쪽 종단 시스템이 데이터를 보내려면, 데이터를 조각내서 각 조각에 헤더를 추가한 패킷(packet)을 네트워크를 통해 목적지의 종단 시스템까지 보낸다.
그렇게 해서 통신 회선으로 패킷이 들어오면 패킷 스위치(packet switch)가 패킷을 다른 통신 회선으로 보낸다. 패킷 스위치로는 라우터(router)와 링크 계층 스위치(link-layer switch)가 있다. 출발지 종단 시스템부터 도착지 종단 시스템으로의 이러한 이동 과정을 route 또는 path라고 부른다.
종단 시스템은 인터넷에 인터넷 서비스 공급자(Internet Service Providers, ISP)를 통해 접속한다. ISP는 케이블 모뎀이나 DSL같은 가정용 광대역과 고속 LAN, 모바일 무선 접속 등 다양한 네트워크 접속을 지원한다.
인터넷의 제일 중요한 두 프로토콜은 전송 제어 프로토콜(Transmission Control Protocol, TCP)과 인터넷 프로토콜(Internet Protocol, IP)이다. IP는 라우터와 종단 시스템을 통해 이동하는 패킷의 형식을 구체화한다. 이러한 인터넷의 주요 프로토콜들은 TCP/IP라고 총칭한다.
A Services Description
여기서는 인터넷을 애플리케이션에 서비스를 제공하는 인프라로서의 관점으로 바라볼 것이다. 이메일이나 웹 서핑과 같은 전통적인 애플리케이션 외에도 인터넷 메시지, 실시간 도로 교통 정보 매핑, 음악·영화 스트리밍 등은 분산 애플리케이션(distributed application)이라고 불린다. 이들이 다수의 종단 시스템과 데이터를 교환하기 때문이다.
인터넷에 연결된 종단 시스템은 소켓 인터페이스(socket interface)를 제공한다. 이러한 소켓 인터페이스는 한 종단 시스템에서 실행되는 프로그램이 반대쪽의 프로그램에 데이터를 전달하기 위해 인터넷 기반시설에 요청하는 방법을 지정한다.
What Is a Protocol?
통신을 원활하게 하기 위한 규약
사람으로 비유 (A Human Analogy)
사람은 매 순간 프로토콜을 실행한다.
- 비유 1 : 시간을 묻는 상황 (아래 그림 왼쪽 참고)
- 한 사람이 “Hi”라고 인사를 건넨다.
- “Hi”에 대한 일반적인 반응은 “Hi”를 돌려주는 것이다.
- “Hi”라고 살갑게 답하면 인사를 건넨 사람이 시간을 물어볼 수 있게 된다.
- 가령 “Don’t bother me!”나 “I don’t speak English” 등과 같은 다른 답변은 소통을 원치 않거나 소통이 불가능함을 나타낸다.
- 가끔 어떠한 답변도 듣지 못하는 경우가 있는데, 보통은 이 경우 그 사람에게서 시간을 물어보는 것을 포기하게 된다.
- 한 사람이 “Hi”라고 인사를 건넨다.
이런 식으로 주고 받아지는 메시지와 취해지는 행동들은 인간 프로토콜에 있어 핵심적인 역할을 한다. 만약 서로 다른 프로토콜(매너의 유무, 시간 엄수 여부)을 사용한다면 프로토콜간에 상호작용하지 않을 것이다.
- 비유 2 : 네트워크 강의를 듣는 상황
- 교수의 강의를 이해하기 어려워하고 있을 때, 교수가 강의를 멈추고 “질문 있나요?”라고 묻는다. (메시지가 전송되고 깨어있는 모든 학생들에게 수신된다.)
- 나는 손을 든다. (교수에게 암시적인 메시지를 전송한다.)
- 교수가 웃음과 함께 “네” 라고 확인을 한다. (내가 질문을 하도록 부추기는 메시지를 보낸다.)
- 나는 질문을 한다. (내 메시지를 교수에게 보낸다.)
- 교수가 나의 질문을 듣는다. (나의 질문 메시지를 받는다.)
- 교수가 이에 대한 답변을 한다. (나에게 답변을 보낸다.)
네트워크 프로토콜 (Network Protocols)
네트워크 프로토콜은 메시지 교환과 행동을 취하는 주체가 기기의 하드웨어 또는 소프트웨어 요소라는 점만 제외하면 사람간의 프로토콜과 유사하다. 둘 이상의 통신하는 원격 독립체(remote entity)를 포함하는 인터넷 상의 모든 활동은 프로토콜에 의해 통제된다.
위의 그림 1.2의 오른쪽은 내가 웹서버에 요청을 보내는 상황을 나타낸 것이다.
- 내 컴퓨터가 연결을 요청하는 메시지를 웹 서버에 보내고 답변을 기다린다.
- 웹 서버는 나의 연결 요청 메시지를 받고 연결 응답 메시지를 보내준다.
- 웹 문서를 요청해도 되는 상황이라는 것을 알고나서, 내 컴퓨터는 GET 메시지를 통해 내가 웹서버에서 가져오고 싶은 웹 페이지의 이름을 보낸다.
- 웹 서버가 내 컴퓨터에 웹 페이지를 보내준다.
다양한 의사소통을 하기 위해 다양한 프로토콜이 사용된다. 컴퓨터 네트워킹에 대해 완벽하게 이해하기 위해서는 네트워킹 프로토콜이 무엇이고, 왜 사용되며, 어떻게 동작하는지를 이해해야 한다.
데이터 통신방식 (TCP/UDP)
- 연결 지향(connection-oriented) 프로토콜 : TCP (Transmission Control Protocol)
- 신뢰할 수 있다.(reliable)
- 수신자가 받을 수 있는 만큼 전송한다.(flow control)
- 네트워크 막힘 현상 시 속도를 낮춰서 전송한다.(congestion control)
- e.g., HTTP, FTP, Telnet, SMTP(email)
- 비연결 (connectionless) 프로토콜 : UDP (User Datagram Protocol)
- 유실이 발생할 수 있다.(unreliable data transfer)
- 받을 수 있는지 확인하지 않고 전송한다.(no flow control)
- 네트워크 막힘 현상에 상관없이 전송한다.(no congestion control)
- e.g., Streaming media, DNS, real-time voice
The Network Edge
이 섹션에서는 네트워크 엣지에서 시작해서 다양한 친숙한 요소들(컴퓨터, 스마트폰 등)에 대해 살펴볼 것이다.
앞 장에서는 다양한 기기가 인터넷에 연결되어 있고 이를 종단 시스템(end system)으로 부른다고 했다. (아래 그림 참고) 인터넷의 가장자리에 위치하기 때문이다. 종단 시스템에는 데스크탑, 서버, 모바일 기기 등이 있다. 또한 비전통적인 “사물(things)”들이 새롭게 포함된다.
종단 시스템은 호스트(host)라고도 불리는데, 이들이 웹 브라우저 프로그램 등의 애플리케이션 프로그램을 관리(실행)하기 때문이다.
호스트는 이후에 클라이언트와 서버로 구분된다. 오늘날 대부분의 서버는 데이터 센터에 위치해있다.
- 클라이언트(client) : 데스크탑/모바일 PC, 스마트폰 등
- 서버(server) : 웹 페이지, 스트리밍 비디오 등을 분배하는 강력한 기기
네트워크의 구성 요소는 아래과 같다.
- 네트워크 엣지(network edge)
- 애플리케이션, 호스트
- 네트워크 코어(network core)
- 라우터, 네트워크
- 액세스 네트워크(access networks), 물리 매체(physical media)
- 커뮤니케이션 링크(communication links)
- 종단 시스템 (end system) (=host)
- 애플리케이션 프로그램을 동작시킨다.
- e.g., 웹, 이메일
대표적인 네트워크 모델은 다음과 같다.
- 클라이언트/서버 모델 (client/server model)
- 클라이언트 호스트가 상시 접속된 서버로부터 서비스를 받는다.
- e.g., 웹 브라우저/서버, 이메일 클라이언트/서버
- peer-to-peer(P2P) model
- 전용 서버의 사용을 적게한다.
- e.g., Skype, BitTorrent, KaZaA
Access Networks
액세스 네트워크(access network)는 종단 시스템과 첫 번째 라우터를 물리적으로 연결해주는 네트워크를 의미한다.
Home Access: DSL, Cable, FTTH, Dial-Up, and Satellite
2014년 기준으로, 전세계 가정의 78퍼센트에 인터넷이 보급되어있다. 이제 가정에서 어떻게 인터넷에 연결하는지를 알아보자.
오늘날 가장 널리 사용되는 두 가지 유형의 광대역 주거 접속(broadband residential access)은 디지털 가입자 회선(Digital Subscriber Line, DSL)과 케이블이다. 대개는 지역 전화기 회사에서 DSL 인터넷 액세스도 제공받는다.
(그림 1.5 참고) 고객의 DSL 모뎀은 기존의 전화선을 사용한다. 이렇게 데이터와 전화 신호를 동시에 운반하는 전화선은 아래와 같이 서로 다른 주파수를 사용해서 이들을 해독한다.
- A high-speed downstream channel, in the 50 kHz to 1 MHz band
- A medium-speed upstream channel, in the 4 kHz to 50 kHz band
- An ordinary two-way telephone channel, in the 0 to 4 kHz band
이를 통해 하나의 DSL 링크를 통해 전화 수신과 인터넷 연결을 동시에 할 수 있다.
반면 케이블(cable internet access)은 케이블 TV 회사의 기존 기반시설을 사용한다.
지금은 위의 두 기술(DSL, 케이블)이 대부분 사용되지만, 최신 기술인 FTTH(Fiber To The Home)는 더욱 빠른 속도를 제공한다. FTTH는 CO(central office)로부터 가정까지 광섬유를 직접 연결해준다.
이러한 기술로 가장 간단한 것은 CO에서 각 가정별로 하나의 광섬유를 연결하는 것이다. 이보다 더 흔한 것은 CO를 나갈 때는 하나의 광섬유이고, 가정에 적당히 가까워지면 고객별 섬유로 나뉘어지는 것이다.
이러한 optical-distribution의 spliting을 위한 대표적인 두 가지 방법은 active optical networks (AONs)와 passive optical networks (PONs)이다.
그림 1.7은 PON을 사용한 FTTH의 모습이다.
Access in the Enterprise (and the Home): Ethernet and WiFi
기업이나 대학 등에서는 근거리 통신망(local area network, LAN)을 사용해서 종단 시스템에서 인접한 라우터에 연결한다. 다양한 LAN 기술 중에 이더넷(ethernet)이 가장 일반적이다. 이더넷 사용자는 두 가닥으로 꼰 동축 구리선(twisted-pair copper wire)을 사용해서 이더넷 스위치에 연결한다. 그러면 이더넷 등의 스위치는 더 큰 규모의 인터넷에 연결된다.
하지만 점차 많은 사람들이 랩탑, 스마트폰, 태블릿, 기타 “사물(things)”등으로부터 인터넷에 무선으로 접속한다. 무선 LAN은 액세스 포인트(access point)를 통해 패킷을 주고 받는다. 이 방식은 IEEE 802.11기술(WiFi)에 기반하였다.
Wide-Area Wireless Access: 3G and LTE
점점 많은 사람들이 아이폰이나 안드로이드 기기 등을 통해 이동중에 메시지를 보내거나 음악을 스트리밍한다. 여기에 사용된 기술은 휴대폰으로 기지국에 패킷을 주고받는 것과 같은 기술을 사용한다. WiFi와 달리 이들은 기지국에서 수십 킬로미터 안에만 있으면 된다.
통신회사들은 1Mbps의 속도로 인터넷에 접속할 수 있는 기술인 3G에 막대한 투자를 했지만 이제는 10Mbps 속도의 LTE가 구축되고 있다.
물리적 매체 (Physical Media)
이 장에서는 인터넷에서 널리 쓰이는 다양한 통신 매체(transmission media)들에 대해 알아볼 것이다.
물리적 매체는 다음과 같이 두 종류로 나뉜다.
- 유도 매체 (guided media)
- 고체의 매체를 따라 흐름이 유도된다.
- 광섬유 케이블, 두 가닥으로 꼰 동축 구리선, 동축 케이블 등
- 비유도 매체(unguided media)
- 흐름이 대기나 우주에 전파된다.
- 무선 LAN, 디지털 위성 채널 등
두 가닥으로 꼰 동축 구리선 (twisted-pair copper wire)
제일 저렴하면서 가장 흔하게 사용된다.
예전부터 전화 네트워크에 사용되어왔다.
Twisted pair는 약 1mm 두께의 절연 구리 와이어 두 개로 이루어졌으며, 나선 형태로 꼬여있다.
이를 통한 전송률은 선의 굵기와 거리에 따라 달라진다.
동축 케이블 (coaxial cable)
위와 유사하게 동축 케이블도 두 개의 구리 도체로 이루어져있다.
하지만 두 개는 평행(parallel)이 아니라 중심이 같은(concentric) 형태이다.
케이블 TV 시스템에 흔하게 사용된다.
유도 공유 매체(guided shared medium)로도 사용될 수 있다. 이를 통해 여러 종단 시스템이 한 케이블에 연결되어 수신할 수 있다.
광섬유 (fiber optics)
광섬유는 얆고 유연한 매체로, 빛의 펄스를 전도한다.
하나의 광섬유는 수십~수백 Gbps의 비트 전송률(bit rate)을 자랑한다.
전자기적 간섭(electromagnetic interference)을 받지 않는다.
위 특성들로 인해 해외 링크(overseas links)와 같이 장거리 유도 전송 매체(long-haul guided transmission media)에서 많이 쓰인다.
지상파 라디오 채널 (terrestrial radio channels)
라디오 채널은 전자기 스펙트럼에서 신호를 운반한다.
물리적인 선이 설치될 필요가 없고 벽을 투과할 수 있으며, 모바일 사용자에게 연결성을 제공하고, 먼 거리에 신호를 보낼 수도 있다.
위 특징들은 전파 환경이나 보내지는 거리에 달려있다.
작동하는 거리에 따라 세 가지로 분류할 수 있다.
- 매우 짧은 거리에서 작동하는 경우
- 퍼스널 기기(헤드센, 키보드 등)
- 지역 내에서 작동하는 경우
- 무선 LAN 기술
- 넓은 지역에서 작동하는 경우
- 셀룰러 접속 기술
위성 라디오 채널 (satellite radio channels)
통신 위성은 두 개 이상의 지구 기반의 마이크로파 송·수신기(지상국)를 연결한다.
통신 위성의 종류는 두 가지가 있다.
- 정지궤도 위성 (geostationary satellites)
- 지구 저궤도 위성 (low-earth orbiting(LEO) satellites)
The Network Core
데이터를 전송하는 방식은 다음과 같이 두 가지가 있다.
- 패킷 교환 (packet switching)
- 회선 교환 (circuit switching)
패킷 교환 (Packet Switching)
출발지에서 목적지까지 메시지를 보내기 위해서는 긴 메시지를 패킷이라고 불리는 작은 조각들로 쪼개야한다. 각 패킷은 통신 링크(communication links)와 패킷 스위치(packet switches)(대표적으로 라우터와 링크 계층 스위치가 있다.)를 따라 이동한다.
Store-and-Forward Transmission
대부분의 패킷 스위치가 사용하는 방식이다.
store-and-forward transmission이란, 패킷 스위치가 패킷 전체를 받고 나서야 출구 링크로 패킷의 첫 번째 비트를 전송할 수 있다는 것을 의미한다.
아래와 같이 두 개의 종단 시스템을 연결하는 단순한 라우터의 경우, 들어오는 링크의 패킷을 연결된 유일한 링크로 전송하는 단순한 일만 한다. 출발지에 세 개의 패킷이 있고, 각각은 L개의 비트로 구성되어져 있다.
아래 상황에서 출발지는 패킷 1의 일부를 전송하였고, 패킷 1의 앞부분이 라우터에 도착한 상태이다. 이 상황에서 라우터는 우선 패킷의 비트를 버퍼해두고(= store), 라우터가 패킷의 비트를 모두 수신한 후에야 전송을 시작(=forward)한다.
Queuing Delays and Packet Loss
각각의 패킷 스위치는 여러 링크들과 연결되어 있다. 각 연결된 링크에 대해 output buffer(또는 output queue)를 가지고 있는데, 여기에 라우터가 보내려는 패킷을 저장해둔다. 이 과정에서 아래와 같은 문제가 발생할 수 있다.
- queuing delay : 도착한 패킷이 전송되어야 하는데 링크가 다른 패킷을 전송하느라 바빠서 output buffer에서 대기해야하는 상황
- packet loss : 패킷이 도착했지만 버퍼가 다른 전송되어야 하는 패킷들로 가득찬 경우. 이 경우 도착한 패킷이나 큐에 있는 패킷이 버려진다.
Forwarding Tables and Routing Protocols
- 패킷이 네트워크 내의 라우터에 도착하면, 라우터는 패킷의 목적지 주소를 검사하고 인접한 라우터에 포워딩한다.
- 각 라우터에는 목적지 주소와 출구 링크(outbound link)가 매핑되어 있는 포워딩 테이블(forwarding table)이 있다.
- 라우터는 패킷의 목적지 주소를 검색해서 적절한 출구 링크를 찾는다.
- 그 후에 패킷을 해당 출구 링크로 보낸다.
회선 교환 (Circuit Switching)
회선 교환된 네트워크에서, 종단간의 통신에 필요한 자원들(버퍼, 링크 전송 속도)은 통신 세션동안 점유된다.
패킷 교환된 네트워크에서는, 해당 자원들은 점유되지 않는다. 대신 통신 링크에 접근하기 위해 기다려야 할 수도 있다.
그림 1.13은 회선 교환된 네트워크의 모습이다. 이 예시에서 보이는 네 개의 회선 스위치는 네 개의 링크와 상호연결되어있다. 각각의 링크에는 회선이 네 개가 있고, 이를 통해 한번에 네 개의 연결을 지원한다. 호스트는 스위치 중 하나에 직접 연결되어있다.
그림과 같이 두 호스트가 통신하고싶어하면, 네트워크는 종단간 연결(end-to-end connection)을 개설한다. 즉, 두 개의 링크에서 회선 하나씩을 점유해야한다.
Multiplexing in Circuit-Switched Networks
링크의 회선은 주파수 분할 다중화(frequency-division multiplexing, FDM) 또는 시분할 다중화(time-division multiplexing, TDM)로 구현되어있다.
아래는 FDM과 TDM을 나타낸 것이다.
FDM의 경우, 주파수 영역(frequency domain)이 네 개의 대역(band)으로 쪼개지고, 각 대역폭은 4kHz이다.
TDM의 경우, 시간 영역(time domain)이 프레임들로 쪼개지고, 각 프레임에는 슬롯이 네 개가 있다.
Packet Switching vs Circuit Switching
주로 이야기되는 패킷 교환의 장단점은 다음과 같다.
- 장점
- 회선 교환보다 나은 통신 용량을 제공한다.
- 회선 교환보다 단순하고, 효율적이며, 구현에 드는 비용이 저렴하다
- 단점
- 가변적이고 예측불가한 종단간 지연(end-to-end delay) 때문에 RTS(real-time service)에 적합하지 않다.
Delay, Loss, and Throughput in Packet-Switched Networks
패킷 지연 (Packet Delay)은 여러 사용자가 한번에 라우터에 패킷을 보낼 때 발생한다.
지연의 유형
- 처리 지연 (Processing Delay)
- 큐잉 지연 (Queueing Delay)
- 전송 지연 (Transmission Delay)
- 전파 지연 (Propagation Delay)
처리 지연
패킷의 헤더를 검사하고 어디로 보낼지를 결정하는 과정
큐잉 지연
큐(queue)에서 링크로 보내지기 위해 기다리는 과정
이전에 도착하여 전송을 기다리는 패킷의 수에 달려있다.
전송 지연
패킷의 모든 비트를 링크에 밀어내는데(전송) 걸리는 시간
패킷이 L개의 비트로 이루어져있고 링크의 전송률이 R bits/sec라고 할 때, 전송 지연은 L/R이다.
전파 지연
링크의 시작 부분부터 라우터까지 전파되는데 걸리는 시간
Queueing Delay and Packet Loss
큐잉 지연의 정도는 트래픽 밀도(traffic intensity)에 달려있다.
아래 그림을 보면 밀도가 1에 가까워질 수록 평균 큐잉 지연이 급속하게 증가한다는 것을 알 수 있다.
패킷 유실
큐의 용량은 한정되어있다.
패킷이 도착했는데 큐에 공간이 없다면, 라우터는 해당 패킷을 버릴(drop) 것이다.
그러면 패킷은 유실(lost)된다.
End-to-End Delay
위에서 살펴본 노드 지연(하나의 라우터에서 발생하는 것) 외에도 출발지에서 도착지까지의 지연도 존재한다.
출발지 호스트와 목적지 호스트 사이에 라우터가 N-1개 있다고 하자. 이때의 종단간 지연(end-to-end delay)은 다음과 같이 나타낼 수 있다.
Traceroute
패킷이 거친 경로를 표시하고 전송 지연을 측정하는 프로그램
- 사용자가 목적지의 호스트명을 명시한다.
- 출발지 호스트의 프로그램이 다수의 특별한 패킷을 목적지에 보낸다.
- 이들은 일련의 라우터들을 거쳐서 목적지까지 간다.
- 라우터가 해당 패킷 중 하나를 받으면, 출발지에 자신의 이름과 주소가 담긴 짧은 메시지를 돌려보낸다.
Ref.
- 컴퓨터 네트워크 강의
- twisted-pair copper wire
- coaxial cable
- fiber optics
- 지상국
- https://www.upwardbroadband.com/fixed-wireless-internet-vs-dsl-the-pros-and-cons/
- https://en.wikipedia.org/wiki/Fiber_to_the_x
- http://www2.ic.uff.br/~michael/kr1999/1-introduction/1_02-protocol.htm
- https://www.geeksforgeeks.org/difference-between-store%E2%80%91and%E2%80%91forward-switching-and-cut%E2%80%91through-switching/
- https://networkinterview.com/frequency-division-multiplexing-fdm-vs-tdm/