1.2 네트워크 엣지
호스트의 역할
호스트는 네트워크 애플리케이션 프로그램을 "호스팅"하기 때문에 호스트이다. 호스트 안에서 전송되는 네트워크 애플리케이션 프로그램은 특정 메세지를 다른 컴퓨터의 상대방에게 주고받는다는 특징이 있다. 따라서 사용자의 "애플리케이션 메세지"가 발생한다. 호스트는 이 메세지를 "패킷"으로 짤라 액세스 네트워크라는 링크로 내보낸다. 패킷의 길이가 L비트이고 액세스 네트워크로 연결되는 패킷의 전송률이 R이라면 호스트에서 내보내는데 걸리는 시간은 L/R sec이다.
링크의 종류는 크게 guided/unguided media로 나눠진다. guided는 물리적인 와이어를 사용하는 링크다, guided인 copper는 이더넷 케이블로, fiber와 Coax는 hfc 케이블로 사용된다. headend로 연결되는 링크는 COax, headend를 연결하는 링크는 fiber를 사용하는데 이는 Fiber가 coax보다 bandwidth가 넓기 때문이다.UNGUIDED는 radio(셀룰러, 와이파이)가 있다. 물리적인 와이어가 아닌 공기 중에서 전파가 된다.
twisted pair(tp)는 copper cablE의 다른 이름이다. 이더넷을 케이블링하기 위해 사용되는데 대역폭에 따라 카테고리5(100)와 6(10)으로 나뉜다.
coaxial cable은 bandwidth가 넓어 broadband라고도 한다. 그렇기에 hfc를 케이블한다.
fiber optic cable은 light pulse의 케이블을 담당한다. 전송률이 매우 높고 에러 발생률이 매우 적다는 특징이 있다. light pulse 이므로 주변의 전기적 노이즈의 영향을 잘 받지 않기 때문이다.
Radio는 물리적인 와이어가 없다. 따라서 시그널이 장애를 만나면 여러 방향으로 튀는 REFLEXIOn이나 막힘이 발생할 수 있다. 그렇기에 주변 노이즈의 영향을 받거나 레이저 시그널끼리 충돌하기도 한다. 그렇지만 물리적인 링크 없이도 통신이 가능하다는 장점이 있다. lan(WIfi) wide-area, satellite등의 radio가 있다.
1.3 네트워크 코어
네트워크 코어에는 라우터와 스위치들이 복접하게 연결되어 있다. 하지만 결국 메세지를 목적지에 전달해야 한다는 목표는 같은데 이 방식은 CIRCUIT SWITCHING과 packet switching이 있다
circuit switching은 주로 전화 네트워크에서 사용된다. 특징은 유저 메세지를 전달하기 위해 반드시 call이 있어야 한다는 점이다. 유저가 call을 하면 반드시 call set up 과정을 거친다. call set up 역할은 두 가지인데 source로부터 destinaion까지의 경로를 결정하고 그 경로상의 자원을 예약한다(resource reservation). 콜셋업이 완료되고 나서야 소스쪽에서 목적지로 자원(비트)이 파이프라인을 따라가듯 쭉 밀려내려가는 것이다.
circuit switching에서는 네트워크의 자원(resource)을 분할하는 작업이 항상 있어야 하는 점이 중요하다. 자원 분할이 없으면 한 사용자만 자원을 사용하고 다른 사용자는 아무도 자원을 사용하지 못하는 문제가 발생하기 때문이다. 자원을 미리 분할하고 CAll이 들어오면 아직 사용하지 않은 자원을 한 덩어리 보내는 방식인 것이다. 그 분할 방식은 FDM과 TDM으로 나뉜다.
FDM(frequency division)은 자원을 유저 수에 따라 몇 개의 대역으로 나누고 사용자별로 다른 대역을 할당한다.
반면 TDM(time division)은 링크에 가용한 자원 전체를 사용하게 하되 시간을 분할해 시간을 할당하는 방식이다.
전화 네트워크에서 적합한 circuit switching은 인터넷과 같은 데이터 네트워크에서는 불합리적이다. 두 명이 전화를 할 때처럼 특정 커넥션이 연결되는 중이면 그 연결에는 데이터가 돌이 않더라도 접근이나 사용이 불가능하므로, 인터넷처럼 중간에 데이터자원이 돌지 않는 경우에는 낭비 현상이 발생한다. 따라서 packet switching 방식이 등장했다.
packet switching의 주요 세 가지 개념이 있다. 먼저 패킷 스위칭은 예약이 없다.(no call set-up, no resource reservation) 필요가 발생하면 그때그때 리소스를 할당하기 때문이다. 또한 링크의 capacity를 분할하고 여러명이 나눠서 쓰는 것이 아닌, 한 데이터가 일단 링크를 차지하면 링크의 전체를 쓰는 특징이 있다. 그러나 한 메세지의 크기가 매우 길다면 다른 메세지가 처리되는데 오랜 시간을 기다려야 한다는 단점이 있다. 따라서 메세지를 packet이라는 chunk로 짤라주고 액세스 네트워크로 밀어준다. 패킷의 크기를 일정히 한다면 각 패킷이 링크를 점유하는 시간을 일정하게 할 수 있다.
두번째. 또한 패킷 스위칭에서는 call setup이 되어있지 않으므로 패킷에 목적지가 반드시 명시되어 있어야 한다. 그래야 라우터가 주소를 보고 결정할 수 있다.
세번째, 라우터는 패킷을 받기 전까지는 목적지를 알 수 없으므로 일단 저장하고 후에 패킷 전체를 받으면 주소를 Paring 해서 목적지로 전달한다(store & forward).
만약 패킷의 크기가 L 비트이고 링크의 bandwidth가 R bps 이면 링크를 통과해 다음 라우터까지의 시간은 L/R sec이다. 다음 라우터는 다시 그 패킷을 저장하고 나서야 전송할 수 있으므로 그 다음 라우터까지의 시간은 다시 L/R sec이 된다.
만약 어떤 중간 라우터에서 다른 라우터로 패킷을 보내는데, 현재 패킷을 보내는 속도보다 그 다음 패킷을 저장하는 속도가 더 빠를 때 라우터의 queue안에는 딜레이가 발생한다.이를 queueing delay라 한다. 이는 자원을 reserve 하지 않아 예측할 수 없으므로 발생한다. 버퍼의 자원은 한정되어 있으므로 패킷이 자꾸 쌓이는 와중에 새로운 패킷이 쌓이면 packet loss 가 발생한다. 이런 경우가 자주 발생하는 상황을 congestion이라 한다.
위 사진은 패킷과 circuit 스위칭 방식을 비교한 것이다. 1mb짜리 링크에서 각 사용자는 "active"할 동안 초당 100kb를 필요로 한다. 액티브하는 시간은 전체의 10퍼센트의 불과하다. circuit 스위칭을 사용하면 10명까지 사용사를 수용할 수 있다. 링크 대역폭을 가장 잘 분할하면 100kb로 분할 할 수 있기 때문이다. 그러나 패킷 스위칭은 분할을 하지 않으므로 열 명의 인원이 동시에 링크를 사용하지 않는다. 패킷이 계속 active한 상태가 아니라 사용자가 active였다가 아니었다가를 반복하기 때문에 휠씬 많은 수의 사용자를 수용할 수 있다. resource sharing이 훨씬 효율적이라는 것이다. 그러나 패킷 스위칭은 리소스를 예약하지 않아 congestion이 발생할 수 있다. 특히 오디오나 라디오 앱에서는 딜레이가 없는 것이 굉장히 중요하므로, circuit 방식을 사용한다. 패킷 스위칭에서는 queuing delay가 발생하면 데이터의 딜레이가 길어지기 때문이다.
패킷 스위칭은 bursty data(데이터가 확 몰려왔다가 안몰려왔다가 하는 패턴의 데이터) 에 적합하다. 러소스 셰어링과 콜셋업이 없어 훨씬 단순하고 간단하기 때문이다.
네트워크 코어의 라우터는 네트워크의 네트워크로 연결되어 있다. 즉 구조를 가지고 있는 것이다. 이 구조는 경제적이거나 국가 정책간의 이유로 복잡한 구조를 가진다.
액세스 네트워크에서 다른 엑세스 네트워크로 연결되기 위해서는 서로 연결되어 있어야 한다. 액세스 네트워크를 일대일로 연결하는 방법이 있지만 이는 액세스 네트워크 수가 n개일 때 O(N^2)개의 커넥션이 필요하므로 확장성이 매우 낮다.
그래서 Global ISP(인터넷 서비스를 제공하는 사업자)가 모두 연결된 라우터 네트워크를 갖고 있다. 이를 이용하면 액세스 네트워크가 어느 한 라우터에 연결돼있기만 하면 다른 라우터에 반드시 전달되어 그 라우터에 연결된 엑세스 네트워크로 이동할 수 있다. 그러나 ISP 회사는 하나가 아닌 여러개이기 때문에 특정 회사의 ISP끼리는 연결 가능하지만 다른 회사끼리는 불가능하다.
따라서 대규모의 ISP는 서로간의 peering link를 가진다. 따라서 하나의 ISP에 연결되면 그것을 타고 다른 회사의 ISP로 들어갈 수 있다. 이러한 각 ISP를 연결하는 사업자를 internet exchange point(IXP)사업자라 한다. 따라서 ISP들이 IXP를 통해서 연결될 수 있다.
그러나 매우 방대한 ISP라도 넓은 지구의 모든 도시에 링크를 설치할 수 없다. 따라서 특정 지역을 담당하는 regional ISP가 생겨난다. 또한 지역의 크기에 따라서도 regional ISP의 계층이 생겨나는데 작은 지역에서의 ISP가 큰 지역에 연결되고 또 그 큰 지역에서 대규모 ISP로 연결되는 형태이다. 따라서 regional isp는 multitire hierarchy를 가진다. 더 낮은 계층의 isp는 바로 위 isp의 provider isp이고 위 isp는 아래 isp의 consumer isp가 된다.
provider isp가 consumer isp에게 인터넷에 접속하도록 라우터가 연결될 수 있는 접속점을 주어야 하는데 그것이 point of presence다.
보통 맨 상위의 ISP끼리만 peering link를 맺고 각 ISP의 하위 regional isp는 상위의 isp에만 연결되는데, 가끔 regional isp끼리 peering link를 맺기도 한다. 그 이유는 settlement-free를 위한 것이다. 각 regional isp는 궁극적으로 한 isp에 연결되는데, 각 regional isp끼리 데이터를 보내려면 상위 isp를 거쳐야 한다. 그러나 각 지역간의 트래픽이 크게 발생할 경우 지역간 직접 peering link를 연결하여 상위 isp로 가는 트래픽의 양과 비용을 줄일 수 있다. 또한 지역간 트래픽에 대해서는 비용을 지불하지 않는 계약을 맺을 수 있는데 이것이 settlement-free이다.