James F. Kurose & Keith W. Ross의 Computer Networking - A Top-Down Approach 7th edition이라는 컴퓨터 네트워크에 관한 책을 읽으면서 정리를 하고 있다.

Ch.1 - Computer Networks and the Internet은 전반적으로 인터넷이 어떻게 작동하고 어떻게 연결이 되어있는지에 관한 네트워크의 기초에 관한 챕터이다. 모든 내용을 다 담지는 않고 핵심적이라고 생각된 부분들만 정리하고 있다.

Chapter 1 - Computer Networks and the Internet

1.1 What is Internet?


인터넷은 전세계에 퍼져 있는 수 억개의 디바이스들을 연결하는 컴퓨터 네트워크이다. 그리고 이 디바이스(PC, 서버, 스마트폰 등)들을 흔히 host 혹은 end system이라고 부른다. End system(= host)들은 여러 종류의 물리적 매체(동축 케이블, 전선 등)들로 이뤄진 통신링크(communication link)들에 의해서 네트워크로 연결이 되어있다. 하나의 시스템에서 다른 시스템으로 데이터를 전달 할 때 패킷(packet)이라는 정보의 묶음으로 전달이 된다. 인터넷 내에서 이 정보들의 이동은 프로토콜(protocol)로 제어가 된다, 그 중 TCP/IP가 가장 중요한 인터넷 프로토콜이다. 패킷이 전달이 될 때 라우터(router)link layer switch들을 거쳐서 최종 목적지로 도달한다.

그림에서 Key 들은 host들이고, 검은 선들은 통신링크(communication link)를 나타내고, X 표시가 되어 있는 것들은 라우터(router)이다.

Protocol이란?

프로토콜은 2개 혹은 그 이상의 개체간 정보 교환이 이뤄질 때 교환하는 메세지의 형식과 순서를 정의해준다. 또한, 메세지가 전달 혹은 받아질 때 취해야 하는 행동들을 정의해준다.

1.2 The Network Edge


네트워크는 크게 3가지로 분류를 할 수 있다:

  • End system(= host)
  • Access Network, physical media
  • Network Core

End System

End system은 인터넷과 연결된 컴퓨터나 디바이스들을 의미한다. End system도 2가지 카테고리로 나눌 수 있다: 클라이언트(client)와 서버(server). 클라이언트는 주로 스마트폰, 개인 컴퓨터이고 서버는 웹페이지나 비디오 들을 저장하고 분산하는 더 강력한 컴퓨터들이다. 정보들이 최종적으로 이 end system에서 전달 혹은 받아지기 때문에 end system을 edge of network라고도 부른다.

Access Network

Access network는 end system을 첫 라우터(router)부터 목적지 end system까지 물리적으로 이어주는 네트워크를 의미한다.

인터넷에 연결되는 방법(home access)중 가장 많이 사용하는 3가지 종류가 있다.

  1. DSL(Digital Subscriber Line)

DSL은 케이블(cable)과 함께 가장 많이 사용되는 home access중 하나이다. DSL로 인터넷에 접속할 때 지역 전화국이 제공하는 전화선을 사용한다. DSL 모뎀은 디지털 데이터를 높은 주파수로 변환한 다음에 전화선을 통해 전화국의 DSLAM(Digital Subscriber Line Access Multiplexer)로 전달한다. DSLAM에서는 주파수를 다시 디지털 포맷으로 변환을 한다. 전화선과 디지털 데이터는 각각 다른 주파수로 전달이 된다, 그렇기 때문에 기존의 전화 신호와 디지털 데이터가 충돌하지 않고 전화국에 전달할 수 있게 되는 것이다.

다른 주파수를 쓰는 것 뿐만 아니라 주파수의 대역도 각기 다르게 할당됐다: 다운로드 채널은 50kHz ~ 1MHz, 업로드 채널은 4kHz ~ 50kHz, 전화는 0~4kHz . 다운로드 채널에 가장 많은 주파수 대역이 할당된 것은 전송 속도를 빠르게 하기 위함이고, 소비자가 주로 인터넷에서 다운로드 하는 상황이 더 많기 때문이다.

  1. Cable

케이블(Cable)은 전화선이 아닌 케이블 TV 회사의 케이블을 사용한다. 밑에 그림을 보면 알 수 있듯이 동축케이블(coaxial cable)과 광케이블(fiber cable) 둘다 사용되기 때문에 이 시스템을 HFC(hybrid fiber coax)라고도 부른다. 케이블 모뎀이 있어야지만 인터넷에 연결이 가능하다. DSL 모뎀처럼 케이블 모뎀은 물리적 디바이스로 이더넷(Ethernet) 포트로 홈 PC에 연결된다. 케이블 모뎀의 끝에는 CMTS(cable modem termination system)이 있고 DSL네트워크의 DSLAM과 같은 기능을 한다 - 아날로그 신호를 디지털 형식으로 변환한다.

케이블의 중요한 특징 중 하나는 브로드캐스트 미디움이 공유된다는 것이다. 그렇기 때문에, 여러명이 비디오 파일을 다운받고 있으면 매우 느리게 다운로드가 되고, 한 명의 유저만 케이블을 사용 중이면 케이블의 최대 다운로드 속도로 받을 수 있게 된다.

  1. FTTH

요즘에는 더 높은 속도의 인터넷을 사용하기 위해 FTTH(fiber to the home)이라는 기술이 사용되고 있다. 이름 그대로, 광섬유를 집으로 연결하는 것이다. **FTTH에도 여러 방법들이 있는데, 일반적으로 광섬유로 CO(Central Office)와 집들을 연결하는데 그 사이에 광섬유 splitter를 두는 것이다.

엔터프라이즈로 접속하는 방법은 2가지가 있다.

  1. 이더넷(Ethernet)

기업이나 대학교 캠퍼스 같은 경우에 LAN이 end system과 엣지 라우터를 연결한다. 이더넷(Ethernet)은 가장 많이 사용되는 LAN 기술이다. 이더넷 유저들은 연선(twisted-pair copper wire)를 사용해서 이더넷 스위치에 연결되어 있고, 이더넷 스위치는 더 큰 인터넷에 연결이 되어 있다.

  1. Wifi

Wireless LAN 에서, 유저들은 AP(access point)를 통해 패킷들을 전송하고 전달을 받는다. 그리고 이 AP(access point)들은 엔터프라이즈의 네트워크에 연결되어 있고 이 네트워크는 유선으로 인터넷에 연결되어 있다.

Physical Media

위에서 언급했던 동축, 광섬유 등은 물리적 매체(physical media)의 일부분이다. 그리고 이 물리적 매체들은 2가지 카테고리로 분류 된다: 유도체(guided media), 비유도체(unguided media). 유도체는 물리적인 광섬유나 구리 등으로 감싸져있는 매체들을 의미하고, 비유도체는 무선 LAN이나 디지털 위성 신호 등을 의미한다.

  • 연선(Twisted-Pair Copper Wire)

저렴하고 가장 흔히 사용되는 유도체이다. 안에 선들은 주변에 있는 다른 선들로부터의 전기적 간섭을 줄이기 위해 꼬아져 있다.

  • 동축선(Coaxial Cable)

동축선은 특별한 shielding이 있어서 데이터 전송율이 높다.

  • 광섬유(Fiber Optics)

광섬유는 전자기파 간섭을 받지 않고 신호가 멀리까지 잘 유지된다. 그래서, 해저 케이블에 많이 사용된다. 하지만, 광섬유 송신기 및 수신기, 스위치의 가격은 높은 편이다.

  • 지상파 라디오 채널(Terrestrial Radio Channels)

라디오 채널은 전자기 스펙트럼으로 신호를 나른다. 물리적 매체들보다는 에러율이 높지만, 물리적인 선이 필요 없고, 벽을 통과할 수 있고, 모바일에 연결이 될 수 있기 때문에 매력적인 매체이다. 라디오 채널은 전파하는 환경과 신호가 전달 되어야 하는 거리에 크게 의존한다.

  • 위성 라디오 채널(Satellite Radio Channels)

통신을 할 때 두가지의 위성들이 사용된다. 하나는 정지 위성(geostationary satellite)이다. 이 위성은 같은 장소에 영구적으로 정지해 있고 지구 표면에서 약 36,000km 떨어져 있다. 거리가 매우 멀기 때문에 점파 지연이 발생한다. 다른 하나는 LEO(low-earth orbiting) 위성이다. 이 위성은 지구와 가깝지만 같은 장소에 영구적으로 정지해 있지 않는다. 지구를 돌면서 다른 위성과 지상국과 통신을 한다.

1.3 The Network Core


네트워크 코어는 인터넷과 인터넷의 end system을 연결 해주는 역할을 한다. End system들은 네트워크 코어를 통해서 메세지를 주고 받는다. 이 떄 사용될 수 있는 네트워크 전달 방식이 2가지가 있다: 패킷 교환 방식(Packet Switching), 회선 교환 방식(Circuit Switching).

1.3.1 Packet Switching

네트워크 어플리케이션에서 end system들은 서로 메세지를 주고 받는다. Source에서 목적지 end system으로 메세지가 보내질 때, source는 긴 메세지를 패킷(Packet)이라고 불리는 작은 데이터들로 나눈다. 이렇게 만들어진 패킷은 source end system부터 목적지 end system까지 라우터, 스위치, 통신링크(communication link)등을 거쳐서 간다. 이 때, L bit의 패킷을 보내고 전송율이 R bits/sec이면, 패킷을 전송하는데 걸리는 시간은 L/R sec이다.

대부분의 패킷 교환 방식은 store and forward 전송 방법**사용한다. 이 방식에서 라우터나 스위치는 패킷의 일부분이 들어오면 패킷 전체가 받아질 때 까지 패킷의 일부분을 저장을 한다. 해당 패킷이 완벽하게 다 받아졌을 때만 다른 링크로 전송을 한다.

밑에 그림을 예시로 패킷 교환 방식에서 패킷이 source에서 목적지로 전달 될 때 까지 시간이 얼마나 걸리는지 계산해보려고 한다. 패킷의 크기가 L bit이고 전송율이 R bits/sec라고 가정을 해보자. 처음에 source에서 라우터까지 패킷이 도달하는데 걸리는 시간은 L/R sec이다. 그러고 나서 라우터는 L/R sec를 걸려서 목적지에 패킷을 보낸다. 즉, 2L/R sec일 때 목적지에 패킷1이 도착하게 됨과 동시에 라우터에 패킷2가 도착하게 되는 것이다. 3L/R sec 일 때, 패킷2가 목적지에 도착하고 패킷 3이 라우터에 도착하게 된다. 그리고 4L/R sec일 때 패킷 2개가 목적지에 도착하게 되는 것이다.

Queueing Delays and Packet Loss

각 라우터와 스위치는 패킷을 저장하는 outer buffer(= outer queue) 갖고 있다. 만약 패킷이 도착해서 전송될 준비가 되어 있음에도 연결되어 있는 링크가 바쁘면 패킷은 outer buffer에서 기다려야만 한다. 패킷이 outer buffer에 있는 딜레이를 queuing delay라고 부른다. **이 딜레이는 가변적이고 네트워크의 혼잡도 상황에 달려있다.

또한, outer buffer의 크기는 제한적이기 때문에, outer buffer가 꽉 차있어서 들어오는 패킷이 저장될 공간이 없다면 packet loss가 발생할 수 있다.

Forwarding Tables and Routing Protocols

패킷이 라우터에 도착하게 되면 라우터는 패킷이 가려고 하는 목적지 end system의 IP 주소를 읽는다. 라우터는 IP주소와 forwarding table을 보면서 연결되어 있는 링크들 패킷의 IP 주소에 해당하는 곳으로 가는 링크로 패킷을 보낸다. 이 부분은 5 장에서 더 자세히 다룰 예정이다.

1.3.2 Circuit Switching

회선 교환 방식(Circuit Switching)에서 end system간 통신이 필요할 때, 둘을 연결하는 링크들을 점거해버린다. 전통적인 전화 네트워크가 이 방식을 사용한다. 한번, 집에서 친구네로 전화를 건다고 생각해보자. 전화 하려고 할 때 전화기 간 네트워크가 연결이 되고, 데이터의 전송율이 일정한 양만큼 보장이 된다. 대신에 이미 네트워크가 사용중이게 되기 때문에 다른 전화 연결을 받을 수 없게 된다. 이 방식의 장점으로는, 네트워크를 통체로 사용하기 때문에 라우터에서 queue로 데이터를 관리할 필요가 없게 되서 queueing 딜레이가 발생하지 않는다, 그래서 데이터가 확실하게 전송되는 것이 보장된다. 단점으로는 회선을 점거중이기 때문에 사용하지 않더라도 연결이 되어있으면 새로운 end system과 연결을 할 수 없어 자원이 낭비된다.

회선은 frequency-division multiplexing(FDM) 혹은 time-division multiplexing(TDM)으로 구현이 돼있다. FDM은 각 연결당 링크가 특정 주파수를 할당하는 방식이다. FM 라디오국에는 88 MHz ~ 108MHz의 주파수 대역이 할당 돼있고 각 라디오국은 정해진 주파수 대역만 사용한다. TDM은 정해진 시간을 slot이라고 불리는 여러 프레임으로 나눠서 할당을 하는 방식이다.

640,000 bits의 데이터를 회선 교환 방식으로 A에서 B로 전달한다고 생각해보자. 이 때, 네트워크는 24개의 slot을 가진 TDM 방식을 사용하고, bit rate는 1.536Mbps이고, end-to-end 회선 연결하는데 500msec 걸린다고 가정해보자. 각 회선은 (1.546Mbps / 24) = 64 kbps의 전송율을 갖고, (640,000bit/64kbps) = 10 sec이다. 처음에 연결하는데 500msec가 걸리기 때문에 총 걸리는 시간은 10.5sec이다. 패킷 교환 방식과는 달리 전송 시간은 링크의 수에 영향 받지 않는다.

1.4 Delay, Loss, and Throughput in Packet-Switched Networks


1.4.1 Overview of Delay in Packet-Switched Networks

패킷이 source에서 라우터와 스위치를 거쳐 목적지 end system에 도달하기까지 많은 딜레이들이 발생한다: 노드 처리 지연(nodal processing delay), 큐잉 지연(queuing delay), 전송 지연(transmission delay,) 그리고 전달 지연(propagation delay); 이 모든 것을 합쳐서 total nodal delay라고 부른다.

위 그림을 보면서 각 딜레이들을 설명하고자 한다. Nodal processing 딜레이는 라우터가 패킷의 헤더를 읽고 어느 방향으로 패킷을 보낼지 정하는 부분이다. 처리가 끝나면 패킷은 queue에 저장된다. Queue에서 패킷은 링크로 전송되기 전까지 queuing 딜레이를 겪고, 이 딜레이는 먼저 몇개의 패킷이 queue에 있느냐에 따라서 달라진다. Queue에 들어와있는 패킷들이 많으면 딜레이 시간은 길어지고, 하나도 없다면 딜레이는 0가 된다. Transmission 딜레이는 패킷의 길이인 L bits에 라우터 A에서 B까지 가는 전송율 R bits/sec를 곱한 값이다, LR. 이 딜레이는 모든 패킷의 bit를 링크로 보내는데 걸리는 시간이다. 패킷의 bit들이 링크로 옮겨지면 이제 라우터 B로 전달되어야 한다. 링크의 시작부터 라우터 B까지 걸리는 시간을 propagation 딜레이라고 한다. 이 딜레이는 물리적 매체 혹은 거에 영향을 받는다.

1.4.2 Queueing Delays and Packet Loss

각 라우터와 스위치는 패킷을 저장하는 outer buffer(= outer queue) 갖고 있다. 만약 패킷이 도착해서 전송될 준비가 되어 있음에도 연결되어 있는 링크가 바쁘면 패킷은 outer buffer에서 기다려야만 한다. 패킷이 outer buffer에 있는 딜레이를 queuing delay라고 부른다. **이 딜레이는 가변적이고 네트워크의 혼잡도 상황에 달려있다.

L bit가 패킷의 길이고 R이 전송율 그리고 a 가 패킷이 queue 도착하는 평균 rate일 때, La/R 비율을 traffic intensity라고 부른다. 만약 La/R > 1이면, queue에 도착하는 bit의 평균 rate가 queue에서 전송되는 bit의 평균 rate보다 높다는 의미이다. 즉, queuing 딜레이가 발생하게 되는 것이다. 반면에 La/R이 0에 가까울수록 평균 queuing 딜레이는 줄어든다.

queue(혹은 outer buffer)의 크기는 제한적이기 때문에, queue가 꽉 차있어서 들어오는 패킷이 저장될 공간이 없다면 packet loss가 발생할 수 있다. 역설적이게도 queue의 저장공간이 유한하기 때문에 traffic intensity가 1에 가까워져도 패킷 딜레이가 무한대로 가지 않는다, 대신에 패킷이 loss되는 상황이 생긴다.

Throughput

딜레이나 패킷 loss 외에도 컴퓨터 네트워크에서 성능에 크게 영향을 주는 것은 바로 end-to-end throughput이다. Host A에서 Host B로 큰 파일을 네트워크로 전송하는 상황을 생각해보자. Instantaneous throughput은 Host B가 파일을 받을 때의 rate(bits/sec)이다. 만약 파일일 F bits로 이뤄져있고 Host B가 F bits를 다 받는 데 T sec가 걸린다면, average throughput은 F/T bits/sec이다.

1.5 Protocol Layers and Their Service Models


네트워크는 너무 복잡하고 크기 때문에 layered된 구조를 갖는다. 각 layer들은 맡은 역할이 있고 모듈처럼 다른 layer들과는 독립적으로 작동을 한다. Layered된 구조의 장점은 layer들이 독립적이기 때문에 한 layer에서 수정사항이 생겨도 다른 layer에 영향을 끼치지 않는다는 것이다. OSI 7 계층(Application, Presentation, Session, Transport, Network, Link, Physical layers)은 이러한 구조의 대표적인 예이다. 메세지를 전달하려고 할 때 OSI 7계층 맨 위에 있는 Application layer에서 처리를 하고 메세지를 밑 layer에 전달한다. 메세지를 전달받은 layer도 똑같이 자신의 역할에 맡게 처리를 하고 밑 layer로 전달한다. 이 때 메세지를 전달 받은 layer는 이전 layer에서 작업한 내용을 건드리지 않고 header 내용을 추가만 하고, 이러한 개념을 encapsulation이라고 부른다. Physical layer로 메세지가 전달이 되면 다른 노드로 매체를 통해 메세지를 전달한다.