COMPUTER NETWORKING A Top-Down app 8th

[Network] 1-3. The Network Core

patrick-star 2023. 6. 6. 19:15
728x90

네트워크 코어(Network core)란... 패킷 스위치링크로 이뤄진 망이다. 이를 통해 인터넷의 종단 시스템을 상호 연결한다.
아래 그림은 네트워크 코어를 굵은 선으로 색칠했다.

cf) 패킷 스위치 : incoming 통신 링크 중 하나에 도착한 패킷을 전달받아서 outgoing 통신 링크로 패킷을 전달하는 역할 수행

1. Packet Switching

네트워크 애플리케이션에서 종단 시스템메시지를 서로 주고받는다.

  • 메시지
    • 애플리케이션 제작자가 원하는 내용을 모두 담을 수 있다.
    • 제어 기능을 수행할 수 있다 (ex. Hi라는 메시지에 대한 handshaking 예시 - 그림 1.2 링크)
    • 데이터를 포함할 수도 있다. (이메일 메시지, JPEG 이미지, MP3 오디오 등)

하나의 종단 시스템에서 목적지로 메시지를 전송하려면
출발지(source)에서 긴 메시지를 더 작은 덩어리로 쪼개야 한다. 이 작은 덩어리를 패킷(packet)이라 부른다.

출발지와 목적지 사이에 패킷들통신 링크와 패킷 스위치를 통해 이동한다.
(패킷 스위치의 대표적인 유형으로 라우터링크 계층 스위치가 있다)
각 통신 링크에서 패킷해당 링크의 전체 전송 속도동일한 속도전송된다.

따라서 시작점의 종단 시스템이나 패킷 스위치전송 속도가 R 비트/초 인 링크를 통해 L 비트의 패킷을 보낸다면,
링크는 1초에 R비트만큼 전송하니까 L비트의 패킷이 전송되는 모두 전송되는 시간은 L/R 초가 된다.

Store-and-Forward Transmission (축적 후 포워딩)

대부분의 패킷 스위치는 링크의 입력에서 축적 후 포워딩 전송 방식을 사용한다.

`축적 후 포워딩 전송`이란... 
`패킷 스위치`가 외부 링크로 패킷의 첫 번째 비트를 전송하기 전에 반드시 패킷의 모든 내용을 받아야 한다. 

즉, 수신받은 패킷을 저장하고 나서 외부로 전달하는 방식이다.

좀 더 자세히 알아보기 위해 간단한 네트워크를 생각해보자. 두 개의 종단 시스템하나의 라우터에 의해 연결된 구조다.

라우터는 일반적으로 많은 입력 링크를 갖고 있다.
왜냐하면, 라우터의 역할이 들어오는 패킷(incoming packet)outgoing link로 스위치 해주는 역할을 하기 때문이다.

아래 예시로 설명하면 라우터입력하는 링크에서 연결된 다른 링크로 패킷을 전달하는 역할을 한다.

또한, 예시에는 source 부분3개의 패킷을 가지는데 각각의 패킷이 L 비트로 이뤄져 있고 그걸 destination으로 전송하고 있다.

그림을 보면 패킷 1을 전송하고 있는데 패킷 1의 앞 부분은 이미 라우터에 도착해있다.
라우터축적 후 포워딩 방식을 사용하기 때문에
지금까지 도착한 패킷의 비트를 전송할 수 없고 반드시 패킷의 모든 비트 값을 먼저 저장(buffer, store)해야 한다.

그렇게 패킷의 모든 비트 값을 저장하고 나서 목적지로 전송(transmit, forward)할 수 있다. 이러한 방식을 축적 후 포워딩 방식이라 한다.

축적 후 포워딩 방식을 좀 더 이해하기 위해서 source에서 전송한 패킷이 destinatino에 도착할 때까지 걸린 시간을 계산해보자.
(이때, 전파 지연(propagation delay)은 없다고 가정한다)

cf) 링크의 전송 속도가 R비트 / 초이다. 즉, 1초에 R비트를 보낼 수 있는데 패킷의 비트 값은 L이니까 총 L/R초가 지나야 모든 패킷을 보낼 수 있다.

  • 시간 0 : source에서 패킷 전송
  • 시간 L/R : 시작점에서 패킷 전체가 라우터에 전송됨 & 라우터에서 목적지로 전송 시작
  • 시간 2 * L/R : 라우터에서 전송한 패킷 전체가 목적지에 모두 도착

따라서, 시작점에서 목적지까지 하나의 패킷이 전송되는 시간은 2 * L/R 초 이다.

만약에, 스위치에 비트값이 전송되자 마자 곧바로 목적지로 전달했다면 L/R 초가 걸렸을 것이다. 이 부분은 1-4에서 자세히 다루겠다. 라우터는 전달 이전에 모든 패킷을 수신받고 저장해서 처리해야 한다.

그렇다면, 그림에 있던 3개의 모든 패킷이 시작점에서 목적지까지 전송되는 전체 시간은 얼마나 걸릴까

  • 시간 0 : source에서 패킷 1 전송
  • 시간 L/R : 시작점에서 패킷 1 전체가 라우터에 전송됨 & 라우터에서 패킷 1이 목적지로 전송 시작
  • 시간 L/R : 시작점에서 패킷 2 전송
  • 시간 2 * L/R : 시작점에서 패킷 2 전체가 라우터에 전송됨 & 라우터에서 패킷 2가 목적지로 전송 시작
  • 시간 2 * L/R : 목적지에서 패킷 1이 모두 도착 & 시작점에서 패킷 3 전송
  • 시간 3 * L/R : 시작점에서 패킷 3 전체가 라우터에 전송됨 & 라우터에서 패킷 3이 목적지로 전송 시작
  • 시간 3 * L/R : 목적지에서 패킷 2가 모두 도착
  • 시간 4 * L/R : 목적지에서 패킷 3 모두 도착

4 * L/R 만큼의 시간이 필요하다.

이제 하나의 패킷시작점에서 목적지로 이동하는 경로에서 모든 링크의 속도가 R 비트/초이고 N개의 링크가 있다고 하자.
그러면, N개의 링크가 있으니까 N-1개의 라우터가 존재할 것이다.

                링크         링크         링크         링크      링크         링크
시작점(source) ----- 라우터 ----- 라우터 ----- 라우터 ----- ... ----- 라우터 ----- 도착점(destination)

같은 논리를 적용한다면 시작점에서 목적지로 이동하는데 총 걸리는 시간은 N * L/R 초가 된다.
링크를 하나씩 지날 때 마다 L/R 초만큼 소요되기 때문에 총 N * L/R 초가 소요된다.

그렇다면... N개의 링크를 거쳐서 P개의 패킷이 전송되는 시간은 몇 초일까.

최초 패킷 1이 모두 전송된 시간은 N * L/R 초이다. 

그렇다면 패킷 2는 N * L/R 초 동안 링크 1개를 제외한 모든 링크를 지났다. ⇒ (N+1) * L/R 초가 지나야 한다. 
패킷 3은 N * L/R 초 동안 링크 2개를 제외한 모든 링크를 지났다. ⇒ (N+2) * L/R 초가 지나야 한다. 
패킷 4는 N * L/R 초 동안 링크 3개를 제외한 모든 링크를 지났다. ⇒ (N+3) * L/R 초가 지나야 한다. 
패킷 5는 N * L/R 초 동안 링크 4개를 제외한 모든 링크를 지났다. ⇒ (N+4) * L/R 초가 지나야 한다. 
... 

이런식으로 가면 P개의 패킷이 모두 목적지로 전송되었을 때 소요된 총 시간은 (N + P-1) * L/R 초가 된다.

Queuing Delays and Packet Loss

각각의 패킷 스위치많은 링크들과 연결되어 있다.
연결된 링크 입장에서보면 패킷 스위치는 output buffer(output queue)이다. 그곳에서 라우터가 다른 링크로 전송하려고 하는 패킷을 저장한다. 아웃풋 버퍼패킷 스위칭의 중요한 역할을 한다.

만약에 도착한 패킷어떤 링크를 통해 전송되어야 하는데 해당 링크가 다른 패킷을 보내야해서 이용할 수 없다면,
도착한 패킷아웃풋 버퍼에서 대기할 수 밖에 없다.

그래서, 전송 후 포워딩으로 인한 지연 뿐만 아니라 아웃풋 버퍼에서 발생하는 queuing delay(큐잉 지연)도 발생하게 된다.
이러한 delay(지연)들은 가변적이고 네트워크의 혼잡도(congestion)에 따라 달라진다.

아웃풋 버퍼의 공간은 한정적(finite)이기 때문에 도착한 패킷은 버퍼가 완전히 꽉 차있다는 걸 알게 된다.
이때, 도착한 패킷을 버리거나 이미 큐에서 대기하던 패킷을 버리는 패킷 손실(packet loss)이 발생한다.

Forwarding Tables and Routing Protocols (p.25 ~ 26)

2. Circuit Switching

기본적으로 데이터를 링크와 스위치를 통해 이동시키는 2가지 접근이 있다. 바로 circuit switchingpacket switching이다.
이전까지 packet switching에 대해서 다뤘고 이제부터는 circuit switching에 대해서 다룰 것이다.

circuit-switching 네트워크에서는
경로(버퍼, 링크, 전송 속도)를 지나면서 필요한자원들이 종단 시스템끼리 통신을 지속하는동안 저장된다.

packet-switching 네트워크에서는 이러한 자원들이 저장되지 않는다.
세션의 메시지는 요청에 따라 자원을 사용하고 결과적으로 통신 링크에 접속하기 위해서 대기해야 할 수 있다.

ex) 두 개의 식당이 있다. 하나는 예약을 해야 하는 식당이고 다른 하나는 예약이 필요없고 받지도 않는 식당이라 하자.

  • 예약을 필요로 하는 식당 : 집을 나서기 전에 전화를 해야한다는 번거로움이 있다. 하지만, 도착하면 즉시 자리에 앉아서 주문할 수 있다.
  • 예약이 없는 식당 : 예약 때문에 귀찮을 일이 없다. 하지만 도착하면 기다려야 할 수도 있다.

전통적인 전화 네트워크는 회선 스위치 네트워크의 예시 중 하나였다. 누군가가 전화를 통해 다른 사람에게 연락한다고 생각해보자.
발신자(sender)가 정보를 보내기 전에 발신자와 수신자 사이에 네트워크가 설정되어 있어야 한다. 이를 bona fide 연결이라 한다. 해당 연결에서 발신자와 수신자 사이의 스위치는 연결을 하는 동안 연결 상태를 유지해야 한다.

이러한 연결을 회선(circuit)이라 한다.

네트워크가 회선을 설정하면 연결이 지속되는 동안 네트워크 링크에서 일정한 전송 속도를 보장한다.
발신자와 수신자 사이에 주어진 전송 속도가 보장되었기 때문에 발신자는 데이터를 보장되어 있는 일정한 속도로 수신자에게 데이터를 전달할 수 있다.

위 그림은 회선 교환 네트워크를 나타낸다. 이 네트워크는 4개의 회선 스위치4개의 링크에 의해 서로 연결되어 있다.
각 링크들4개의 회선을 갖고 있다. (호스트를 각각 A,B,C,D라 할 때 A-B, B-C, C-D, D-A) 즉, 동시에 4개의 연결을 지원할 수 있다. 호스트들은 스위치 중 하나와 직접 연결되어 있다

스위치 : 동그라미
링크 : 스위치와 스위치 사이에 연결 단위 (아래 그림에서는 4개의 선을 하나로 보면 링크 1개)
회선 : 링크를 구성하는 각각의 선 1개

두 호스트가 서로 통신하고 싶을 때, 네트워크는 두 호스트간에 전용 종단 간 연결(dedicated end-to-end connection)을 설정한다.
따라서, A가 B랑 통신하고 싶다면 네트워크는 반드시 먼저 각각의 두 링크에서 각각 하나의 회선을 예약해야 한다.

위 그림에서는 1번째 링크의 2번째 회선2번째 링크의 4번째 회선전용 종단 간 연결로 사용했다.

각 링크에는 4개의 회선이 있으므로, 종단 간 연결에 의해 사용되는 각 링크는 연결의 지속되는 동안
링크의 전체 전송 용량의 1/4를 제공한다. 왜냐하면, 전체 링크 속도를 각각의 회선이 나눠갖기 때문이다.

예를 들어 인접한 스위치 사이의 각 링크의 전송 속도가 1 Mbps이면,
각 종단 간 회선 교환 연결은 250 kbps의 전용 전송 속도를 얻게 된다.

반대로 패킷 교환 네트워크에서 인터넷처럼 패킷을 전송하고 싶다고 하자.
회선 교환 네트워크처럼 통신 링크를 통해 패킷이 전달될 것이다. 하지만, 다른점이 있다면 링크를 예약하지 않고 패킷을 전송한다는 점이다.

만약, 다른 패킷이 동시에 링크를 통해 전송되야 해서 링크 중 하나가 혼잡(congestion)한 상태라면, 패킷은 송신 측 통신 링크의 버퍼에서 대기해야 하고 이로 인해 delay가 발생한다.
인터넷은 패킷을 제때 전달하기 위해서 최선을 다하지만, 제때 도착한다고 보장할 수는 없다.

Multiplexing in Circuit-Switched Network (p.28 ~ 29)

패킷 교환 방식 vs 회선 교환 방식

  • 패킷 교환 방식
    • 단점 : 패킷 교환 방식이 실시간 서비스에 적합하지 않다. 왜냐하면, 종단간 지연(delay)이 가변적이고 예측할 수 없기 때문이다.
    • 장점
      • 회선 교환 방식보다 전송 용량을 더 잘 공유할 수 있음
      • 회선 교환 방식보다 훨씬 간단하고 효율적이고 비용이 적게 든다

그런데, 왜 패킷 교환 방식이 더 효율적인걸까. 간단한 예시를 살펴보자.

ex) 사용자가 1 Mbps 속도의 링크를 공유하고 있다 & 각각의 사용자는 activity와 inactivity를 번갈아서 진행함
- activity : 사용자가 100kbps의 속도로 데이터를 생성할 때
- inactivity : 사용자는 데이터 생성 X

그리고 사용자는 오직 10% 시간만 activity를 수행하고 나머지 90%는 커피 먹으면서 쉰다고 가정하자.

  • 회선 교환 방식
    100kbps 속도가 모든 사용자에게 한 번에 반드시 보장되어야 한다.
    그렇기 때문에 속도를 보장하면서 동시에 사용할 수 있는 사람이 10명( = 1Mbps / 100kbps)밖에 되지 않는다.
  • 패킷 교환 방식
    ex1)

특정 사용자가 active할 확률이 0.1이다.
만약, 35명의 사용자가 있다면 11명 이상이 동시에 active 한 사용자가 있을 확률이 대략 0.0004이다.

즉, 동시에 사용하는 사람이 10명 이하인 경우 데이터의 전체 도착 속도는 1Mbps 이하이며 이는 링크의 출력 속도와 같거나 작다.
따라서, 사용하는 사람이 10명 이하로 있을 때 사용자의 패킷은 delay없이 진행될 것이고 이는 회선 교환 방식에서도 마찬가지다.

만약, 10명 이상의 사람들이 동시에 사용한다고 했을 때, 패킷의 전체 도착 솓고는 링크의 출력 속도를 넘어서면서 출력 큐가 커지기 시작할 것이다. (전체 도착 속도가 1Mbps 이하로 내려가면 그때 다시 작아진다.)

여기서는, 10명 이상의 사람들이 동시에 사용하는 확률이 매우 낮기 때문에 패킷 교환 방식회선 교환 방식과 똑같은 속도를 제공한다. 하지만, 3배 이상의 사용자를 허용하면서 똑같은 속도를 제공한다.

ex2)

10명의 사용자가 있는데 1명이 1000bit 패킷을 갑자기 생성했고 다른 사용자는 아무런 패킷을 생성하지 않았다.

  • 회선 교환 방식 : 활성 사용자가 모든 데이터를 보내는데 10초가 걸린다.
  • 패킷 교환 방식 : 활성 사용자가 지속적으로 1Mbps 속도로 데이터를 전송할 수 있다. 왜냐하면, 1명 빼고 아무도 데이터를 생성하지 않기 때문이다. 따라서, 1초 내외로 데이터를 전송할 수 있다.

2가지 예시를 통해 패킷 교환 방식의 속도가 더 빠르다는 걸 알아봤다.
또한 링크의 전송 속도를 교환하는 방식에서 큰 차이가 있다는 것도 확인했다.

  • 회선 교환 방식 : 사용량과 상관없이 전송 링크의 사용량을 미리 할당한다.
  • 패킷 교환 방식 : 사용량에 따라 링크 사용량을 할당한다.

물론 두 방식 모두 많이 사용하고 있지만 트렌드는 패킷 교환 방식으로 가고 있다.
심지어 오늘날의 회선 교환 방식 전화망도 천천히 패킷 교환 방식으로 옮겨가고 있다.

3. A Network of Network

앞서 ISP를 통해서 종단 시스템이 인터넷에 접속한다고 했다. 접속 ISP(access ISP)는 유선/무선 연결을 제공할 수 있다.

여기서 접속 ISP는 통신사, 케이블 회사가 아니라 학생, 교직원 들에게 인터넷 접속을 제공하는 대학, 직원들에게 인터넷 접속을 제공하는 회사일 수 있다.

하지만, 종단 사용자접속 ISP를 통한 제공자(content provider)와 연결하는 건 인터넷을 구성하는 수십억 개의 종단 시스템과 연결되어 있는 퍼즐의 1조각의 불과하다. 이 퍼즐을 완성하려면 접속 ISP끼리 서로 연결되어 있어야 한다.

이를 네트워크의 네트워크라고 하고 이번 섹션에서는 이에 대해 다룰 것이다.

네트워크의 네트워크의 발전의 대부분은 성능에 대한 고려보다는 경제 및 국가의 정책에 의해서 발전해왔다.
오늘날의 인터넷 네트워크 구조를 이해하기 위해서 단계적으로 네트워크 구조의 시리즈를 구축할 것이다.
각 새로운 구조는 현재 우리가 가지고 있는 복잡한 인터넷에 대한 더 나은 근사치가 될 것이다.

전체적인 목표접속 ISP들을 서로 연결해서 모든 종단 시스템이 다른 종단 시스템에 패킷을 전달하는 것이다.
물론 접속 ISP들끼리 직접 연결하는 걸 생각할 수 있겠지만 비용이 너무 많이 든다. (수천개의 접속 ISP가 있으니까 통신 링크가 엄청 많이 필요하기 때문)

Network Structure 1 : 모든 접속 ISP들이 하나의 글로벌 전송 ISP와 연결

(상상의) 글로벌 전송 ISP는 네트워크의 라우터 이자 통신 링크가 된다.
물론, 광범위한 네트워크를 만드는데 비용이 많이 필요하다.
이익이 되려면 각각의 접속 ISP들에게 글로벌 ISP와 접속 ISP가 교환하고 있는 트래픽의 양을 고려해서 비용을 청구해야 한다.
이러면 접속 ISP는 고객이 되고 글로벌 전송 ISP는 공급자가 된다.

이러면서 몇몇 회사들이 돈을 벌기 위해서 자신만의 글로벌 전송 ISP를 만들고 운영하기 시작한다. 이를 통해 Network Structure 2가 만들어진다.

Network Structure 2 : 수백만 개의 접속 ISP와 여러 개의 글로벌 전송 ISP 가 존재

여기서 글로벌 전송 ISP들끼리 서로 연결되어 있어야 한다. 그렇지 않다면 다른 회사의 글로벌 전송 ISP를 사용하는 접속 ISP와는 통신할 수 없기 때문이다.

전체적인 구조로 보면 글로벌 전송 ISP 기업상위 단계로 있고 접속 ISP하위 단계에 위치한다는 걸 볼 수 있다.
이는 글로벌 전송 ISP모든 접속 ISP에 가까이 접근할 수 있을 뿐만 아니라 경제적으로도 그렇게 하는 것이 바람직하다고 가정한다.

Network Structure 3 : 여러 계층의 ISP 구조

ISP가 전 세계적인 망을 구축하고 있더라도 ISP가 없는 도시가 분명이 존재한다.
때문에, 지역에 존재하는 접속 ISP연결하기 위한 지역 ISP(regional ISP)가 존재할 수 있다.
각각의 지역 ISP최상위 ISP와 연결한다.
(최상위 ISP는 실제 존재하는 것으로 모든 도시에 존재하지는 않는다. 대략 12개 정도 존재한다.)

정리하면 최상위 ISP가 존재하고 지역에는 지역 ISP들이 여러개 존재하는 상황이다.
이러한 구조에서 접근 ISP는 연결되어 있는 지역 ISP에게 돈을 지불한다. 지역 ISP는 연결되어 있는 최상위 ISP에게 돈을 지불한다. 따라서, 각 단계마다 소비자-공급자 관계가 생겼다.

최상위 ISP는 최상위에 존재하니까 돈을 지불하지 않는다.
좀 더 복잡하게 가면 몇몇 지역에서는 굉장히 큰 지역 ISP가 있어서 더 작은 지역 ISP더 큰 지역 ISP랑 연결되어 있는 구조도 있을 수 있다. (ex. 중국 / 접근 ISP - provincial ISP - national ISP - 최상위 ISP)

이런식으로 여려 단계의 계층 구조를 Network Structure 3이라고 한다.

Network Structure 4 : 접속 ISP, 지역 ISP, 최상위 ISP, PoP, multi-homing, peering, IXP로 구성된 네트워크

오늘날의 인터넷과 유사하게 만들려면 Network Structure 3에 더해서
PoP(Point of Presence), multi-homing, peering, IXP(Internet eXchange Points)가 더 있어야 한다.

  • PoP : 소비자 ISP와 공급자 ISP가 연결되어 있는 공급자 네트워크에서 같은 지역에 있는 1개 이상의 라우터의 그룹

공급자의 PoP와 연결소비자 네트워크에서
소비자 네트워크는 소비자 네트워크의 라우터PoP에 있는 라우터직접 연결하기 위해 제3의 통신 공급자에게 고속 링크를 빌릴 수 있다.

  • multi-homing

모든 ISP(최상위 ISP 제외)는 둘 이상의 공급 ISP와 연결하기 위해서 멀티 홈을 선택할 수 있다.

cf) 멀티-홈 : 하나의 네트워크나 기관이 여러 개의 인터넷 서비스 제공자(ISP)와 연결되어 있는 상태

ex) 접근 ISP둘 이상의 지역 ISP멀티홈 할 수 있다. 또는 둘 이상의 지역 ISP와 최상위 ISP와도 멀티홈 할 수 있다.
지역 ISP여러 개의 최상위 ISP멀티 홈할 수 있다.

ISP가 멀티 홈하면, 공급자 중 하나가 장애가 발생해도 지속적으로 패킷을 주고받을 수 있다.

  • peer

앞서, 고객 ISP가 사용하는 만큼 공급자 ISP에게 비용을 청구한다고 했다.
이 비용을 줄이기 위해서 같은 level에 있는 ISP들 끼리 peer할 수 있다.
이는 자신들의 네트워크를 직접 연결함으로써 서로 간의 트래픽이 직접적인 연결을 통해 지나가도록 하는 것이다.

ex) 두 ISP가 peer ⇒ 비용이 발생하지 않는다. 최상위 ISP가 서로 통신할 때 비용이 발생하지 않는 것도 같은 내용이다.

peering과 고객-공급자 관계에 대한 관련된 자세한 내용 : Van der Berg 2008

  • IXP(Internet Exchange Point)

제 3의 회사들은 IXP를 만들 수 있다. IXP란 여러 개의 ISP가 peer할 수 있는 만나는 지점을 의미한다.
IXP는 대부분 자신들만의 스위치를 갖고 있는 독립적인 건물이다. 2020년 기준 600개의 IXP가 존재한다.

Network Structure 5 : 오늘날의 인터넷

아래 그림은 Network Strucuture 5를 묘사한 그림이다. Google은 content-provider 중에서는 가장 선도하는 기업 중 하나다.
구글은 19개의 주요 데이터 센터가 있고 각 센터는 수백만개의 서버를 갖고 있다.
또한 각각 백여개의 서버를 갖고 있는 작은 데이터 센터를 갖고 있고 각 센터들은 IXP에 위치한다.

구글은 전 세계적인 범위를 갖고 있지만 구글만의 네트워크구글의 서버를 통해서만 트래픽을 전달하기 때문에 인터넷 구조 상으로 분리해야 한다.

아래 그림과 같이 구글 네트워크peering을 통해 상위 단계와 하위 단계를 연결되어 있기는 하지만
대부분의 접속 ISP가 여전히 최상위 ISP와 연결되어 있기 때문에 구글 네트워크 또한 최상위 ISP와 연결되어 있고 이용한 만큼 비용을 지불하고 있다. 구글의 네트워크 인프라에 대한 자세한 내용은 Section 2.6에서 다룬다.

정리

오늘날의 인터넷은 복잡하다. 12개의 최상위 ISP와 수백만개의 하위 ISP가 존재한다.
ISP는 범위에 따라 다양하다. 여러 대륙, 대양, 국경 등등 여러 조건에 따라 다양한 범위를 갖고 있다.

하위 단계 ISP상위 단계 ISP와 연결되어 있고 상위 단계 ISP는 서로 연결되어 있다.

사용자와 공급자하위 단계 ISP의 손님이고 하위 단계 ISP상위 단계 ISP의 손님이다.

최근에는 주요 공급자(ex. Google)들이 자신만의 네트워크를 만들어서 하위 단계의 ISP와 직접 연결하는 것도 가능해졌다.

출처 : 컴퓨터 네트워킹: 하향식 접근 8th Edition