kimyu0218
  • [네트워크/KOCW] Chap1. Overview
    2024년 05월 28일 20시 40분 12초에 업로드 된 글입니다.
    작성자: @kimyu0218

    Internet

    the Internet is a network of networks

    인터넷은 전 세계의 수많은 컴퓨팅 디바이스를 상호 연결하는 네트워크로, 노트북, 스마트폰, 태플릿 등 다양한 디바이스에 서비스를 제공한다. 우리는 이러한 디바이스를 host 또는 end system이라고 부른다.

     

    인터넷의 구성 요소를 살펴보기에 앞서, 판매자가 소비자에게 물품을 전달하는 상황을 가정해보자. 판매자는 배송하기 쉽도록 물품의 구성 요소를 여러 상자에 나누어 담고, 각각의 상자에 소비자의 주소를 작성한다. 배송 업체는 포장된 상자들을 싣고, 고속도로, 교차로를 지나 소비자에게 전달한다. 소비자는 상자에 나누어 담긴 구성 요소를 조립하여 하나의 물품을 만든다.

    이 예시를 이용하여 인터넷의 구성 요소를 비유하면 다음과 같다.

    🧑 판매자 & 소비자 = end system
    📦 상자 = packet
    🛻 배송 업체 = packet switch
    🛣️ 고속도로 & 교차로 = communication link

     

    end system은 communication link*와 packet switch로 구성된 네트워크를 통해 서로 연결된다. (= 판매자 to 소비자) 이때, 서로 다른 링크는 다른 속도 (bps = bits/sec) 로 데이터를 전송한다. (= 고속도로의 속도는 일반 도로보다 빠르다)

    *communication link의 예 : 동축 케이블, 광섬유, 전파 스펙트럼 등

     
    송신자는 데이터를 segment로 분할하고, 각 segment에 헤더를 추가한다. (= 물품을 여러 상자에 나누어 담고, 상자에 주소를 작성한다) 이렇게 생성된 결과물을 packet이라고 하며, 이는 네트워크를 통해 목적지로 전송된다. (= 상자가 배송 업체와 여러 도로를 거쳐 배송된다)


    packet switch*는 communication link를 통해 전달받은 packet을 다른 communication link로 전달하여, packet을 최종 목적지로 보낸다. (= 상자는 여러 배송 업체를 거쳐 소비자에게 전달된다) 목적지에서는 packet을 조합하여 기존 데이터를 복원한다.

    *packet switch : router, link-layer switch 등

    network edge

    network edge = end system = host

    network edge는 말 그대로 네트워크의 가장자리를 의미한다. 노트북, 폰, IoT 기기가 이에 속하며, 이러한 end system은 애플리케이션을 실행할 수 있기 때문에 host라고도 불린다.

    access network는 end system을 첫번째 라우터(= edge router)와 연결하는 네트워크다.


    network core

    network core - the mesh of packet switches and links that interconnects the Internet's end system

     

    packet switching

    네트워크에서 데이터를 전달하는 방식에는 packet switching과 circuit switching이 있다. 인터넷에서는 주로 packet switching을 사용한다.

    packet switching은 데이터를 작은 packet으로 나누어 전송하는 방식이다. 송신자는 긴 메시지를 packet이라고 불리는 작은 chunk로 나눈다. 이렇게 나누어진 packet들은 독립적으로 목적지로 전송되며, 도중에 다양한 경로를 통해 이동할 수 있다.

    대부분의 packet switch는 store-and-forward 방식으로 packet을 전송한다. store-and-forward는 packet switch가 전체 packet을 모두 받아야만 아웃바운드 링크로 packet의 첫번째 비트를 전송할 수 있다는 의미다. 즉, 전체 packet을 모두 전달받기 전까지는 packet을 전송할 수 없다. (delay 원인!)
     
    packet switch에는 여러 개의 링크가 붙어있다. 각 링크에는 라우터가 해당 링크로 packet을 보내려 할 때 packet을 저장하는 출력 버퍼 (= output queue) 가 있다. packet이 출력 버퍼에 도착했을 때, 링크가 다른 packet을 전송하느라 바쁜 상황이라면, 도착한 packet은 출력 버퍼에서 대기하게 된다. (queueing delay) 만약 버퍼가 꽉 찼을 경우, 새로 도착한 packet은 버린다. (packet loss)
     

    circuit switching

    circuit switching은 통신을 시작하기 전에 end-to-end 전용 통신 경로를 설정한다. 통신이 진행되는 동안 사전에 설정된 경로를 이용하여 데이터를 전송하며, 이 경로는 다른 통신에서 사용할 수 없기 때문에 일정한 전송 속도를 보장한다.

     

    packet switching vs. circuit switching

    packet switching은 예약 시스템이 없는 레스토랑, circuit switching은 사전 예약이 필수인 레스토랑으로 비유할 수 있다. 예약 시스템이 없는 곳은 테이블을 예약할 필요는 없지만, 빈 자리가 생길 때까지 기다려야 한다. 반면, 사전 예약이 필요한 레스토랑은 예약을 해야 하지만, 도착하자마자 앉을 수 있다는 장점이 있다.

     

    두 방식 모두 장단점을 가지고 있으므로, 상황에 맞게 선택하여 사용해야 한다. packet switching의 경우, delay가 발생할 수 있으므로 전화 통화나 화상 회의 같은 실시간 통신에는 적합하지 않다.

    packet switching circuit switching
    👍 better sharing 👎 inefficiency (전송되지 않는 시간에도 점유 → 자원 낭비)
    👍 less costly (전용 회선 설정 X) 👎 expensive (전용 회선 설정 O)
    👍 flexibility (네트워크 장애 시 다른 경로 사용 가능) 👎 lower flexibility (경로 변경 X)
    👎 delay 👍 lower delay
    👎 packet loss 👍 lower packet loss

     

    delay & packet loss

    packet switch는 여러 개의 링크를 갖고 있다. 각 링크는 해당 링크로 전송되는 패킷들을 임시 저장하는 출력 버퍼 (output queue) 를 갖는다. packet이 출력 버퍼에 도착했을 때, 해당 링크가 다른 packet을 전송하느라 바쁘다면, 출력 버퍼에서 대기하게 된다. (queuing delay) 만약 버퍼가 가득 차 있다면, 도착한 packet은 버려진다. (packet loss)

    packet loss는 한정된 수용량을 갖는 링크가 packet을 더 이상 저장할 수 없을 때 이를 drop하기 때문에 발생한다.

     

    queing delay 외에도 다양한 종류의 delay가 있다. packet은 여러 라우터를 거쳐 목적지에 도달하고, 그 과정에서 다양한 종류의 delay를 겪을 수 있다.

    1. processing delay : packet을 어디로 보낼지 결정하기 위해 헤더를 검사하는 데 소요되는 시간 (+ 비트 오류 확인)
    2. queuing delay : packet이 링크의 output queue에서 기다리는 시간
    3. transmission delay : packet의 모든 비트가 링크를 통해 나가는 데 걸리는 시간
    4. propagation delay : 한 지점에서 다른 지점까지 전파되는 데 소요되는 시간
    ◯◯ delay는 △△과(와) 관련있다,,,
    1. processing - 라우터의 성능
    2. queuing - 네트워크 트래픽 : 동시에 많은 데이터가 전송되면 (= 트래픽 多), 다른 packet이 처리될 때까지 기다린다.
    3. transmission - packet의 길이와 링크의 전송 속도
    4. propagation - 라우터 사이 거리  : `d/s` 링크의 길이`d`와 전송 매체(ex. 구리선, 광섬유)의 속도`s`에 결정된다.

     

    forwarding table & routing protocol

    라우터는 다음 방식으로 링크를 통해 들어온 packet을 다른 링크으로 전달한다. (forwarding)

    1. 송신자는 packet의 헤더에 목적지의 IP 주소를 작성한다.
    2. 라우터는 packet의 목적지 주소를 forwarding table에서 검색하고, 인접한 라우터로 packet을 전달한다.

    각 라우터는 목적지 주소와 아웃바운드 링크를 매핑하는 forwarding table를 가지고 있다. 이때, packet의 목적지 주소는 forwarding table의 인덱스로 사용된다. forwarding table은 라우팅 프로토콜에 의해 설정된다.

    댓글