Network layer

  • IP(Internet protocol)가 제일 중요
  • 세그먼트를 데이터그램으로 캡슐화
  • Router 동작

두 가지 중요한 기능

  • forwarding : input포트로 받은 후 output으로 보낼 경로가 많다 -> 적절한 router로 내보내는 과정을 의미(단일 교환)
  • routing : 어떻게 보낼 것인지 정하는 과정 -> 어느쪽으로 보내야하는지 전체적인 흐름을 봐야함(출발지에서 목적지까지의 계획과정)

Data plane

  • 데이터를 받으면 address를 보고 어느 곳으로 보낼 것인지 결정하는 것 -> 라우터마다 해야 할 일(forwarding)

Control plane

  • routing알고리즘이나 SDN(소프트웨어 정의 네트워킹)을 이용 -> 복잡함
  • 라우터들이 추가되면 알고리즘 수정을 해야함 -> software - defined networking을 사용(규칙을 부여)

Per-router control plane

  • 각각의 라우터들은 rocal forwarding table을 가지고 있음 - Routing Algorithm(control plane)에 의한 것
    • 헤더의 값에 따라서 어느 링크로 전송할지를 정함 - data plane

 

  • 현재는 Remote controller로 모든 라우터를 관리하고 각각의 라우터들에게 명령을 내려 라우터들이 simple해졌으며 추가적인 processing이 필요없게 되었음

 


Network sevice model

  • 정확한 전달
  • 40msec 이하의 딜레이 보장
  • 순차적인 데이터그램 전송
  • 최소 대역폭 보장
  • 패킷과 패킷 사이의 시간 변화의 제약

Network layer sevice models

 

  • 서비스 모델, 대역폭 보장, 무손실 보장, 순서, 타이밍, 혼잡 피드백의 기준이 있음
  • 우리가 사용하는 인터넷의 경우 최선을 다하는 서비스모델에 아무런 보장과 피드백이 없음
  • CBR, VBR, ABR, UBR 등의 서비스 모델이 존재
  • 그러나 이러한 모델들은 공유하기가 어렵고 실제로 보장하기가 어려움

Router architecture

  • Swiching를 통해 전달
  • routing processor 소프트웨어로 연산하여 rule을 보냄 -> 어느 output port로 전달할 것인지
    • Input port functions

    • line termination : physical layer - 비트 레벨 수신
    • link layer protocol(receive) : data link layer - 이더넷 같은 것들
    • lookup, forwarding - queue존재, decentralized switching(분산형 스위칭)
      1. 헤더 값과 테이블을 비교하여 어느 출력 포트로 보낼 것인지 정함
      2. 입력 속도면에서 완벽한 입력처리
      3. 큐잉 : switch fabric에서 전달하는 속도보다 빨리 보낼 수 없으므로 대기열에 저장해둠
      4. 대상 IP주소에만 기반한 전달
      5. 일반화 된 전달 : 모든 헤더 필드 값 집합을 기반으로 한 전달

    • 범위들 중 겹치는 범위만 기억하면 쉽다 -> 앞 부분만 비교하고 해당하는 링크에 전달하기만 하면 되기 때문

    • prefix matching

    1. Longest prefix matching : 대상 주소와 일치하는 가장 긴 주소 접두어를 사용

    2. AND연산자로 확인

    • TCAM (Ternary Content Addressable Memories) : 테이블 크기에 상관없이 한 클럭 주기로 주소 검색

    • Switching fabrics

     

      • 입력 버퍼에서 적절한 출력 버퍼로 패킷 전송
      • switching rate : 패킷이 입력에서 출력으로 전송 될 수있는 속도
      • 3종류의 switching fabrics

    1. memoy : CPU를 직접 제어하는 ​​전통적인 컴퓨터, 패킷이 시스템의 메모리에 복사 됨 -> 메모리 대역폭에 의해 제한되는 속도
      1. 개선 방법 : hardware 사용
    2. Bus 공유 : 여러 곳에서 동시에 접속시 버스를 사용하는 하나의 연결때문에 여러 연결들이 대기 -> 비어있는 공간이 존재하게 됨

    3. interconnection network : 버스를 cross하여 연결 -> 대기시간이 없어짐 -> 제한을 줄일 수 있음 -> 두 개가 동시에 동일한 목적지로 전송되는 경우 하나의 패킷(input port) 전달 될 수 있기 때문에 입력을 기다려야한다.

    • Input port queuing

     

    • 매우 빨라진 input들 때문에 queuing delay가 생기게 됨
    • fabric의 전송 속도보다 input의 전송속도가 빠르면 drop도 발생
    • HOL (Head-of-the-Line) blocking : 대기열 앞에있는 데이터 그램은 대기열에있는 다른 패킷들이 앞으로 이동하는 것을 방지합니다.

         

         

        1. 위 그림처럼 같은 output port로 이동하는 패킷이 동시에 전송 되고 있다고 생각해보자
        2. 여기서 첫 번째 input port가 선택 되었다면 세 번째 input port는 대기해야 할 수 밖에 없음
        3. 초록색 패킷의 경우 빨간색 패킷이 모두 output port로 이동할 때까지 대기해야하는 문제가 생김(빨간색 패킷에 의해 blocking)
        • Output ports

        • output에서 queuing이 발생 -> output에서는 혼잡 발생
        • 데이터 그램이 전송 속도보다 빠르게 패브릭에서 도착할 때 버퍼링 필요 -> 큐잉(fabric에서 빨리 들어오면 저장시켜 놓음)
        • 스케쥴링 분야는 전송을 위해 대기중인 데이터 그램 중에서 선택
        • priority scheduling : 우선순위 스케줄링 -> 망중립성 유지
        • output port의 queueing

        1. 스위치를 통한 도착율이 출력 회선 속도를 초과 할 때 버퍼링
        2. 큐잉(지연)과 출력 포트 버퍼 오버 플로우로 인한 손실

        버퍼링 계산

        • 10Gbps의 링크 C, RTT가 250msec라면 2.5Gbit의 buffer가 존재

        • N은 TCP흐름(flow의 수)인데 작은 양의 동적인 큐잉 분석에 기반을 둔다면 무시해도 상관은 없음


        Scheduling mechanisms

        • scheduling : 링크에 보낼 다음 패킷 선택

        • FIFO(first in first out) 스케줄링 : 대기열에 도착한 순서대로 전송

        • discard policy : 큐가 꽉차서 버리는 경우에 어떻게 버릴 것 인가?

          1. tail drop : 도착 패킷 버리기

          2. priority : 우선 순위 기준으로 삭제 / 제거

          3. random : 무작위로 드롭 / 제거

        • Scheduling policies

          • priority : 우선 순위가 가장 높은 대기열에있는 패킷을 보냄

          1. 순위에 따라 que를 두어 각각에 저장

          2. 순위에 따라 순서를 정하여 처리

         

          • Round Robin (RR) scheduling : 여러개를 접하더라도 우선순위 없이 순서대로 번갈아가며 처리(순차적)

          • Weighted Fair Queuing(WFQ) : 데이터가 많이 쌓인 que를 먼저 처리

          • 그러나 위 세가지 방식은 공정성에 어긋나기 때문에 아직까지도 사용되지 않고 순차적으로 처리하고 있음

        '네트워크 설계' 카테고리의 다른 글

        [11월21일]IP addressing  (0) 2018.11.25
        [11월19일]IP:Internet Peotocol  (0) 2018.11.23
        [11월12일]TCP congestion control  (0) 2018.11.17
        [11월07일]Chapter 3 - transport: TCP  (0) 2018.11.16
        [11월5일]GBN과 SR  (0) 2018.11.14

        + Recent posts