[ch1] 3. network core - packet switching, circuit switching, network structure

    The network core

    • 서로 연결된 라우터들의 망
    • packet-switching
      • host들은 application-level 메세지를 패킷 단위로 분해
        • packet: 데이터 묶음의 단위
      • 라우터: src로부터 dst로 갈 수 있는 방법을 안내
        • 패킷을 src로부터 dst까지의 path에 있는 link를 통해 다음 라우터로 forwarding함
      • 링크의 전체 용량을 가득채워 전송됨

    Host: sends packets of data

    • host sending function
      • host는 application message를 받음
      • message를 packet으로 나눔
        • size: L bit
      • packet을 network로 전송
        • transmission rate: R
          • link transmission rate = link capacity = link bandwidth
        • transmission delay = L / R (sec)
          • 하나의 패킷을 link로 얼마나 빨리 보낼 수 있을까?
          • link에 packet을 싣는 시간

    Packet-switching: store & forward

    • Store-and-Forward: link로 전송되기 전에 전체 패킷이 라우터에 도착해야함
      • 저장 후 forwarding
    • Example
      • 3개의 packet을 전송하려고 함
      • L = 7.5 Mbits
      • R = 1.5 Mbps
      • one-hop transmission delay: 7.5Mbits/1.5Mbits*sec = 5 sec
      • end-to-end delay
        • transmission delay만 있다고 가정
        • end system - router - end system
        • 2 (hop) * 5 sec = 10 sec
      • total transmission delay: 4 (hop) * 5 sec = 20 sec
    hop 1 2 3 4
    packet #1 #1    
      #2 #2  
        #3 #3

    Packet switching: queuing delay, loss

    • queuing & loss
      • 도착률 > 전송률
        • packet이 queue에 쌓임
        • queue가 가득차게 되면 일부 loss
        • 도착률이 항상 전송률보다 크게 되면 이용 불가능 (unstable system) 

    Two key network-core function

    • routing
      • source-destination route 결정
      • 대표적인 알고리즘: 다익스트라, 벨만포드 최단거리 알고리즘
    • forwarding
      • packet을 적절한 output link로 움직이는 것

    Alternative core: circuit switching

    • resource가 미리 할당 & 점유
    • dedicated link
      • no sharing!
      • 성능 보장
    • 단점: 자원 낭비
      • 더 많은 line/cable이 필요함
      • link의 idle time이 많아짐
    • 전화 네트워크에서 주로 사용

    Packet switching vs. Circuit switching

    • packet switching를 사용하면 더 많은 사용자가 동시에 네트워크를 사용하게 할 수 있음
    • Example
      • link capacity: 1 Mbps
      • 사용자
        • when active: 100 Kbps
        • 전체 시간의 10%만 active
      • circuit switching
        • 1 Mbps / 100 Kbps = $10^6 / 10^5$ = 10
        • 총 10명의 사용자가 네트워크에 동시 접근 가능
      • packet switching
        • 전체 사용자 35명(가정) 중, 11명 이상이 동시에 네트워크에 접근할 확률이 0.0004보다 작음
        • k명이 동시에 접근할 확률
          • $P(active=k)={_N}{C}{_k}{{(0.1)}^{k} {(0.9)}^{N-k}}$
        • $P(active > 10) = 1 - P(active <= 10) = 1-\sum_{k=1}^{10}{P(active=k)}$
          • N = 35를 넣어서 계산하면, 0.04%가 나옴
    • packet switching이 있다 없다한(bursty) 데이터에 적합
      • resource sharing
      • internet에서 잘 동작
    • congestion이 일어날 수 있음 → packet delay and loss
      • reliable data transfer, congestion control를 위한 protocol 필요

    Internet structure: network of networks

    • host들은 access ISP를 통해 인터넷에 연결
      • residential, company, university, mobile ISPs
      • 주거용, 회사, 대학 네트워크는 연결을 위해 ISP에 돈을 지불
    • access ISP는 서로 연결되어야함
      • 그래야 모든 호스트들이 서로에게 패킷을 보낼 수 있음
    • 결과로 나온 network들을 위한 network는 아주 복잡함
      • 수백만개의 access network를 각각의 edge로 연결을 하면 아주 복잡해짐
      • global ISP의 등장 → 여러 ISP가 만들어짐
        • ISP의 크기가 비슷할 때, ISP끼리 연결하면 서로 이득임
          • 별도의 cost없이 더 빠르게 원하는 access net로 갈 수 있음
          • peering link: ISP 연결 link
        • IXP: Internet Exchange Point
          • ISP들끼리 연결 서비스를 제공하는 회사

    • ISP와 access network 사이에는 level (regional net)이 있을 수 있음

    • content provider network (e.g. Google, Microsoft, Akamai, ...)
      • 자신만의 네트워크를 통해 end user에게 가까운 content, service 제공
      • 네트워크가 겁나 크기 때문에, 이 네트워크에 접속해서 다른 네트워크로도 갈 수 있음
      • 그래서 ISP들은 content provider network에 연결하고 싶어함
        • content provider network들은 ISP에 돈을 지불할 필요가 없음
        • 서로 win-win임!
    • 최종적인 구조
      • 중앙에 적은 수의 큰 네트워크
        • tier-1 commercial ISPs (e.g. Level 3, Sprint, AT&T, NTT)
        • content provider network (e.g. Google)

    댓글