Network Layer

이재윤·2021년 2월 27일
0

네트워크

목록 보기
7/9
post-thumbnail

💻Network Layer

  • Sending Host에서 Receiving Host로 datagram들을 전송하는 역할을 한다. (host-to-host)
  • 전송하는 측에서는 segment를 encapsulation하고, 수신 측에서는 decapsulation을 한다.
  • Network Layer는 모든 호스트들이 가지고 있다.

💻Network Layer의 주요 기능

  1. Fowarding

    • 라우터의 input port로 들어온 packet들을 적절한 output port로 이동 시켜준다.
    • Data plain의 기능이다.
    • 빠르게 실행되어야 하므로 H/W에서 실행된다.
  2. Routing

    • 패킷이 이동해야 하는 출발지(source)에서 목적지(destination)까지의 경로를 결정한다.(by routing algorithm)
    • Control Plain의 기능이다.
    • 비교적 오랜시간이 걸리므로 S/W에서 실행된다.

💻Packet Switching

  • Virtual Circuit

    • Connection Service 이다.
    • Data를 전송하기 전 call setup 과정을 거쳐 경로를 결정하며, 전송이 끝나면 연결을 끊는다(tear-down).
    • 전송 되는 각 packet들은 VC identifier(VCI)를 가지고 있다.
    • 경로 상에 있는 라우터들은 연결 상태값을 가지고 있다.
    • 구성요소 (call setup 과정을 통해 결정)
      1. Path
      2. VC number
        각 link의 같은 포트들은 모두 다른 값을 가진다.
        link들 마다 달라질 수 있다.
      3. Fowarding Table
    • Singnal Protocol을 이용해 Data를 전송한다.
  • Datagram Network

    • Connection-less Service 이다.

    • Destination Address를 통해 fowarding을 한다.

    • Fowarding Table

      IP Address는 40억개 이상이 존재하고 있기 때문에, 각각의 IP address로 Fowarding Table를 구성할 경우 table의 데이터들이 기하급수적으로 증가하게 된다
      ∴ Aggregate Table Entries 사용

      • Longest Prefix Matching
        Destination Address와 가장 길게 일치하는 Address Range의 interface를 사용한다.
  • Virtual Circuit VS Datagram Network

    Virtual CircuitDatagram Nextwork
    Connection-Oriented
    (Reseved Path를 소유)
    Connetion-less Service
    목적지 주소(Global Header)는 연결을 설정하는
    패킷에만 있고, 나머지 패킷들은 VC #을 소유
    경로를 다양하게 선택할 수 있어
    모든 패킷에 정보가 담겨 있는 Header를 소유
    모든 패킷들이 같은 경로를 이용하기 때문에
    순서대로 도착
    임의 순서로 도착
    Reliable Transfer 보장Paket들이 discarded 될 수 있다
    비용이 비쌈비용이 저렴하며 효율적

💻Router

  • Router 구조 개요
  • Input Ports
    • Physical Layer(Line Termination)
    • Data Link Layer Protocol
    • Network Layer(Look up, Fowarding, Queueing)
      Fowarding Table을 이용해 해당하는 Output Port를 찾는다.
      • Switch Fabric으로 내보내는 속도가 Queue에 쌓이는 속도보다 느릴 경우, Queue가 꽉 차게 되며 이로인해 delay와 loss가 발생하게 된다.
      • HOL(Head-Of-Line) Blocking

        앞쪽에서 다른 패킷이 막고 있으므로 뒤에서 대기중인 패킷은 사용할 출력 포트가 사용 중이지 않아도 기다려야 하는 현상

  • Switching Fabric
    Input port로 부터 받은 패킷들을 적절한 Ouput Port로 빠르게 이동 시키는 역할을 한다.
    • Memory
      • CPU(Routing Processor) 제어를 한다.
      • Packet들이 memory에 복사된다.
      • 문제점
        1. 메모리 속도에 제한을 받는다.
          ex) 메모리 대역폭이 초당 B라면, 메모리에 읽거나 쓰는 경우 전체 전달 처리량은 B/2이다.
        2. Output Port로 전달하기 위해 메모리에 두번 접근해야 한다.
    • Bus
      • Routing Processor의 개입 없이 Input port와 Output port를 직접 연결하는 공유된(shared) bus를 사용한다.
      • Bus Contention
        공유된 bus를 가지고 있기 때문에, 특정 시점에 한개의 packet만 전송할 수 있다. 만약 bus가 busy 상태에 있다면, Input Queue에 packet이 머무른다.
        ∴ Bus의 속도에 제한을 받는다.
    • Interconnection-network(Cross bar)
      • 단일 공유버스의 대역폭 제한을 극복하기 위한 방법이다.
      • Multiprocessor의 Processor들을 연결하기 위해 개발된 방법을 이용한다.
      • Input Port가 N개, Output Port가 N개라면 총 2N개의 버스를 가질 수 있다.
      • 여러개의 패킷을 병렬로 전달할 수 있다.
      • 다른 Input Port에서 나오는 패킷들이 동일 Output Port로 보내지는 경우 한번에 하나만 전송되고 나머지 하나는 Input Port에서 대기 해야 한다.
  • Output Port

    Input Port 순서의 반대로 배치되어 있다.
    • Queuing
      출력 링크로 내보내는 속도보다 Queue에 쌓이는 속도가 빠를때 발생한다. (Switching Fabric의 속도가 포트 회선 속도보다 빠를때)
      ∴ Queue가 꽉 찼을때, loss와 delay가 발생할 수 있다.
    • Packet Scheduling
      Packet을 어떤 순서로 내보낼지 결정한다.
      1. FIFO
        • Queue에 도착한 순서대로 내보낸다.
      2. Priority Queue
        • 패킷은 우선순위 클래스로 분류되며, 각 클래스마다 고유한 Queue를 가지고 있다.
        • 가장 높은 우선순위 클래스에서 패킷을 전송하며, 동일한 우선순위를 가지는 패킷들은 FIFO로 전송된다.
      3. Round Robin
        • 패킷은 클래스로 분류가 되지만, 우선순위는 존재하지 않는다.
        • Round Robin 스케줄러가 클래스를 번갈아 가며 패킷을 내보낸다.
      4. WFQ(Weighted Fair Queue)
        • Round Robin Queuing의 일반적인 형태디아.
        • Round Robin과 동작은 같지만, 클래스마다 다른 양의 시간을 부여 받는다는 점이 다르다.
  • Routing Processor
    Routing Protocol을 실행하고 Fowarding Table을 계산한다.

0개의 댓글