본문 바로가기

Computer Network/Ch1)introduction

Ch1-3) Network core: Packet/circuit switching, Internet structure

 

  • Network core이란? Mesh of interconnected routers !
  • 이 때 Host는 application layer의 msg를 packet이라는 단위로 나눈다
    • 각 패킷은 **출발지(host)**에서 목적지까지 가는 동안 여러 라우터를 거쳐 이동한다. 각 라우터는 패킷이 목적지로 가는 경로를 찾고, 그 경로에 맞는 다음 라우터로 패킷을 포워딩(forwarding) 한다.
  • 데이터가 포워딩 할때에는, 항상 full link capacity로 포워딩한다.

그럼, packet이 어떻게 이동하는지 자세히 알아보자

먼저, Packet의 이동과정에 대해서 알기 위해서는 다음과 같은 개념을 알아야 한다.

Store-and-forward

  • Packet은, store-and-forward라는 방식을 통해서 이동하게 된다.

  • 위와 같은 형태의 패킷 전송 과정에 대해 생각해보자
  • 우선, 위는 하나의 라우터로 연결되고 2개의 end-system이 있는 예시이다.
  • 이때 destination에 보내려는 packet은 총 3개로, 각각 L bits로 구성되어 있고, 전송 속도는 R bps라고 하자. 또한, 전파 속도는 빛에 가까운 속도로 전파 속도에 대한 지연은 존재하지 않는다 가정하자.
  • 만약 Packet 한개를 destinatnion에 보내는 경우를 생각해보면 각 시각별로 다음과 같다.
    • 0초 : 라우터에 도착할 때까지 소요되는 시간은 L/R s 이다.
    • L/R초 :이때 라우터도, destination에 패킷을 보내기 시작한다.
    • 2L/R초 : 라우터가 보낸 packet이 destination에 도착한다.

→ 이때 Transmission delay(패킷을 링크로 전송할 때 걸리는 시간)는 L/R초이며, End-to-end delay(출발지 host에서 목적지 host에 도착할 때까지 걸리는 시간)는 2L/R초이다.

  • 만약 Packet 3개를 destiation에 보낸다고 생각해보자.
    • 0초 : 출발지 Host가 패킷 1 전송 시작
    • L/R초 : 패킷 1 링크에 도착 , 패킷 2 전송 시작
    • 2L/R초 : 패킷 1 dst 도착, 패킷 2 링크 도착, 패킷 3 전송 시작
    • 3L/R초 : 패킷 2 dst 도착, 패킷 3 링크 도착
    • 4L/R초 : 패킷 3 dst 도착

→ 이때의 end-to-end delay는 4L/R초이다.

위와 같은 예시에서, 다음과 같은 결론을 도출할 수 있다. 만약 출발지에서 목적지 노드까지 N개의 링크로 구성된다면,

  • End-to-end delay = N * L/R 이다.

Queuing delay and Loss

  • 도착하는 패킷은 버퍼에서 대기해야한다. 그런데 만약, 그 링크가 버퍼를 이미 전송하고 있는 사이 도착했다면, 전송이 끝날때까지 대기해야하는 “Queuing delay”가 발생할 수 있다.
    • 정확히는, 라우터에 도착하는 속도(도착률)이 라우터가 처리할 수 있는 속도보다 빠를 때 발생한다.
      • ex) 입력 링크로 패킷이 100Mb/s로 들어오지만, 출력 링크가 1.5Mb/s일 때
  • 또한, 만약 Queue가 다 꽉찼다면, 입력 링크로 들어오는 패킷은 더이상 패킷을 수용하지 못하게 되어 패킷이 손실된다.

 

그렇다면, 패킷을 어느 링크로 전송해야하는지는 어떻게 정하는 걸까?

Network-core 에는 두가지 주요 기능이 존재한다.

 

  1. Forwarding table
  • 각 패킷은 패킷을 어디로 보내야 할 지에 대한 정보를 담은 패킷 헤더를 가지고 있다.
    • 출발지에서, 패킷 헤더에 목적지의 IP 주소를 포함한다.
  • 또한, 각 라우터는 목적지 주소 (혹은 일부)를 출력 링크로 매핑할 수 있게 하는 Forwarding table을 갖고 있다.
    • 패킷이 라우터에 도착하면, 라우터는 패킷의 IP주소를 조사한다.
    • 이후 Forwarding table을 참고하여 출력링크로 보내게 된다.
  • 이 Forwarding table은 Routing algorithms을 통해서 설정되게 된다. (5장에서 자세히 논의)

그렇다면, Packet switching 말고 source를 주고받을 수 있는 방식은 없을까?

→ 바로 Circuit switching이다.

Circuit Switching

  • Circuit Switching 방식에서는 , 출발지와 destination 사이에 dedicated된 source 회선이 존재한다.
    • 일종의 전용 통로이며, 출발지와 목적지 사이의 데이터 전송이 끝날때까지 예약되어 다른 통신에 의해서 간섭이나 공유받지 않는다.
    • 이로 인해 고정된 성능이 보장되며, 통신 속도와 품질이 일정하게 유지된다.
  • 또한, 이러한 특징 때문에 특정 회선이 사용되지 않을 때에도 idle 상태로 남게되어 자원이 낭비될 수 있다.
  • 전통적인 통화 네트워크에서 주로 사용했다.

→ 하지만, 이러한 idle 상태의 resource를 낭비하는 것을 방지하기 위해 , 다음과 같이 하나의 회선에서 Multiplexing을 수행할 수 있는 2가지 방법이 나오게 되었다.

1. FDM (Frequency Division Multiplexing)

  • Optical , electromagnetic frequency를 여러개의 주파수 대역으로 쪼개어, 각 사용자에게 할당해준다.
  • 하나의 케이블에서 여러명의 사용자가 동시에 데이터를 전송할 수 있게 된다.
  • 각각의 사용자는 할당된 좁은 주파수 대역 안에서 최고 속도까지 데이터 전송이 가능하다. (bandwidth)

 

 

2. TDM (Time Division Multiplexing)

 

 

 

  • 시간이 일정한 slot으로 나누어져, 각 사용자가 자신에게 할당된 슬롯동안만 데이터를 전송할 수 있도록 하는 기법이다.
  • 통신은 넓은 주파수 대역에서 이루어지므로, 최대 전송 속도로 데이터를 보낼 수 있지만, 전송 가능한 시간은 자신에게 할당된 시간 슬롯 동안에만 가능하다.
  • 전송률 = 한 슬롯 안의 비트 수 × 프레임 전송률
  • Round-robin 과 유사한 형태이다.

Packet switching vs Circuit switching

  • Packet과 Circuit switching의 장단점을 비교해보자.
  • 우선, Naive하게 떠올려 보았을 때 각각의 장단점은 다음과 같다.
  • Packet switching의 장점
    • 전송 용량의 공유 측면에서 더 효율적이다.
      • Circuit switching에서는 자원이 항상 각각의 사용자에게 배정되어야한다.
      • 이때 할당된 회선은 idle 상태로 resource를 점유하고 있기에, 효율이 떨어진다.
      • 즉, Circuit switching에서는 사용하지 않는 네트워크 자원( FDM 상에서 사용하지 않는 frequency 혹은 TDM에서 유저가 없어 사용하지 않는 Time)이 놀게 된다.
    • 또한, Circuit switching보다 구현이 간단하다.
  • Packet switching의 단점 ?
    • 패킷 교환은 트래픽이 몰리는 실시간 서비스에 적합하지 않을 수도 있을것이다
    • Queing Delay에서 얼마만큼의 delay가 발생할 지 예측할 수 없다.
  • 다음과 같은 2가지 시나리오를 바탕으로, 더 나은 switching 알고리즘을 생각해보자.
1. 사용자가 1 Mbps 링크를 공유한다고 가정하고, 각 사용자들은 활동 시간과 비활동 시간을 반복한다고 하자.
사용자는 전체 시간에서 10%만 활동하며 나머지 90% 시간에는 활동하지 않는다.
  • 활동시간 : 100kbps의 속도로 데이터를 생산 / 비활동 : 데이터 생산 x
  1. Circuit switching
    • 100kbps가 항상 각각의 사용자에게 배정되어야 한다.
    • 만약 TDM같은 경우, 100ms마다 1개의 슬롯이 배정된다고 하면, 10명의 사용자가 동시에 Circuit switching을 수행할 수 있다.
  2. Packet switching
    • 사용자가 전체 시간의 10%만 활동하기에, 10명 이하의 동시 사용자가 자원을 사용할 확률은 99.96%이다. 이때 데이터의 통합 도착률은 링크의 threshold인 1Mbps보다 작다.
    • Queing delay가 발생할 확률은, 한번에 10명 이상의 동시 사용자가 링크에 데이터를 보내는 경우이므로, 이는 0.04%로 굉장히 작다.

→ Packet swtiching이 효율적 !

2. 10명의 사용자가 있다고 가정하자. 1번과 동일하게, 사용자는 1 Mbps 링크를 공유한다.
한 사용자가 한번에 1,000비트 패킷을 1,000개 생성하고 다른 사용자는 패킷을 생성하지 않는다.
  1. Circuit Switching
  • 만약 1번 사례와 마찬가지로 TDM이라고 가정하고, 한 프레임은 10개의 슬롯, 각 슬롯은 1000비트로 구성되어있다고 가정하자. 사용자는 데이터 전송을 위해 1개의 슬롯만 사용할 수 있다. 이때 프레임에 있는 다른 9개의 슬롯은 사용하지 못하는 상태이다. ( 100ms마다 1개의 프레임)
  • 따라서 사용자가 100만 비트를 모두 전송하려면, 100초가 소모된다.
  1. Packet Switching
  • 그냥 1Mbps가 다 찰 때까지 데이터를 보내면 되므로, 1초만에 모두 데이터를 전송할 수 있다.

→ Packet Switching이 효율적 !

이를 정리해보면 아래와 같다.

  • Packet switching은, data를 폭발적으로 전송해야 하는 경우에 효율적이다.
    • 모든 사용자가 네트워크 자원을 효율적으로 사용할 수 있고, 간단하며 사전 작업이 필요없다. (Circuit switching의 call 설정)
  • 하지만 너무 많은 사용자가 동시에 데이터를 보내면 혼잡해질 수 있다.
    • 혼잡 제어 알고리즘과, reliable protocol이 필요하다.

→ 그렇다면, Packet switching을 어떻게 하면 Circuit switching처럼 안정적으로 만들 수 있을까?

  • 바로 Bandwith를 보장하는 것 : 일정한 대역폭을 안정적으로 사용할 수 있도록 환경세팅이 필요
  • 마치 사람에 비유하자면, Circuit switching은 식당을 예약해놓고 사용하는것, Packet switching은 패스트푸드점에서 음식을 주문해놓고 기다리는 것과 같다.

 

-> 이제 이러한 Switching을 적용한 Internet structure에 대해서 공부해보자.

Internet Structure

  • Internet structure을 공부하기 전, 우리의 목적은 바로 end node인 access net을 서로 연결하는 것이다.

우선, Internet Structure에 대해 알아두어야 할 것이 몇 가지 있다.

  • Host들은, Residential / enterprise 등 다양한 ISP를 통해 인터넷에 연결된다.
  • 이러한 ISP들은, 서로 연결 되어 있어야 host들끼리 packet을 주고받을 수 있다.
  • 또한, 이러한 ISP들은 국가별 규제에 따라서 설정되었기 때문에 이 ISP들을 연결하는 “네트워크의 네트워크”를 만든다는 것은 매우 복잡한 일이다.
  • 이제 전 세계적인 Internet structure가 어떻게 발전되어 왔는지 알아보자.
  1. 먼저, 아래와 같은 그림에서는 각각의 개개인을 직접 잇는 형태인데, 이는 엄청난 비용과 시간을 소모해야 한다.

 

2. 그렇다면, 우리는 당연히 end system에 있는 host들을 있는 하나의 Global ISP를 설치하는 것을 생각해볼 수 있다.

  • 이 상황에서는 Global ISP가 수십만개의 access ISP와 가까이 있는 곳에 라우터를 둔다.
  • 이때 Global ISP는 각각의 접속 ISP에 연결을 위한 돈을 청구한다.

 

 

 

3. 그렇다면, 다른 기업들도 이러한 돈을 버는 형태를 인지하고, 자기의 회사의 Global ISP를 구축하는 것은 매우 자연스러운 일이다.

 

 

4.이렇게 Global ISP가 여러개 생긴다면, end system host들에게 데이터를 전송하기 위해서 Global ISP끼리의 Communication이 필요하게 된다. 이를 IXP ( Internet exchange point)라고 부르고, 사람들은 이 상위 계층인 IXP에 비용을 지불하지 않기 위해, 같은 계층에 있는 ISP끼리 트래픽을 공유하는 Peering(그냥, IXP 통과하지 말고 우리끼리 잇자 ! )을 시작한다.

 

5.또한, 모든 도시에 ISP를 설치할 수 없기에, 어느 지역을 담당하는 Regional ISP가 생기게 된다. 뿐만 아니라 Google과 같은 기업에서, 컨텐츠를 제공할 때 상위 계층에 트래픽 정보를 줌으로써 발생하는 비용을 줄이고, 자신들의 컨텐츠에 대한 궁극적인 통제권을 가지기 위해 Content provider Network가 등장한다. (상위 계층을 우회 : bypass)