CS/네트워크 수업 / / 2021. 4. 23. 22:51

컴퓨터 네트워크 8주차


  • network layer는 호스트에서 호스트까지 패킷을 전달해주는 계층이다. 이 때 사용되는 프로토콜이 IP다.
    • 라우팅: 목적지까지 갈 경로를 탐색
    • 포워딩: 찾은 경로에 맞게 전송
  • network layer는 reliable network service를 제공할까? → 결론부터 말하면 nerwork layer는 신뢰성을 제공하지 않는다. 하지만 그렇다고 해서 착각하지 말아야 할 게, nerwork layer가 신뢰성을 제공하지 않는다고 해서, data link layer와 physical layer 역시 신뢰성을 제공하지 않는다고 생각하면 착각이다. 네트워크에 따라서 다르다. 데이터 링크 레이어는 노드에서 다른 노드로 갈 때까지는 동일한 프로토콜로 운영되면, 다음 노드에서 그 다음 노드까지는 아예 다른 프로토콜로 운영될 수가 있다. 즉, noda a → node b까지는 reliable, node b → node c 까지는 unreliable일 수 있다는 의미이다.
  • network layer는 connection less, 즉 인터넷 프로토콜은 연결 설정 과정이 없다. 단지 위의 계층에서 내려준 데이터를 데이터그램으로 만들어서 라우팅 경로에 따라서 포워딩 해주는 역할만 한다.

  • Network Layer?
    • source host에서 destination host까지 세그먼트를 전송
    • 송신 측에서 세그먼트를 데이터그램으로 encapsulation(세그먼트에 IP datagram의 헤더를 붙임)
    • 수신 측에서는 해당 세그먼트를 받은 후, transport layer로 전달!
    • 이런 네트워크 레이어 프로토콜은 모든 호스트와 라우터에서 사용, transport layer 라우터에서는 필요 없음
    • 라우터는 데이터 그램의 헤더를 검사하고, 거기 쓰여 있는 IP로 목적지까지 가기 위한 경로 (내부 알고리즘에 의해) 라우팅 후 포워딩

    • routing(라우팅): 패킷이 출발지부터 목적지까지 가기 위한 경로 결정. 즉 경로 선택은 라우팅 기능이 하고, 선택된 경로로 실제 차를 인터체인지로 이동시키는 역할은 포워딩이 한다.
    • forwading(포워딩): 라우팅으로 결정된 경로로 가기 위해, 라우터의 input으로 부터 output으로 패킷을 이동시킴.

    Data plane

    • 라우터의 인풋 포트에 도착한 데이터 그램이 라우터의 아웃풋 포트 쪽으로 전송(포워드)되는 방법을 결정. 주로 포워딩 기능을 다룸.

    Control plane

    • 데이터 그램이 출발지부터 목적지까지 가는 동안 마주치게 되는 라우터들 사이에서 데이트 그램을 어떻게 경로 설정할 건지
    • 2 control-plane approahces
      • traditional routing algorithms
      • software-defined networking

    Traditional Routing

    라우터 개별은 각각 라우팅 알고리즘에 의해서, 라우팅 상호 간에 상황을 파악한다. 그래야 어느 라우터로 데이터 그램을 보낼지, 최선의 경로를 파악할 수 있을 테니까. 이것이 전통적인 control-plane이 하는 역할이다. 이렇게 최선의 경로를 라우팅하면 control plane이 포워딩 테이블을 만들면, input으로 들어오는 헤더 정보에 따라서 해당되는 output 포트로 전송해주는 역할을 data-plane이 수행한다.

    Software-defined networking(centralized control-plane)

    개별 라우터와는 별도로 remote controller(일종의 원격 서버)가 라우터에 있는 local control agent와 통신을 하며 라우팅 관련 정보(연결된 다른 라우터 등..)를 주고받는다. 정보를 수집한 remote controller가 개별 라우터에게 포워딩 테이블을 만들어서 local control agent에게 나눠준다. 즉, 중앙의 remote controller가 개별 라우터로부터 정보를 수집한 후, 각각의 라우터에 맞게 포워딩 테이블을 만듦으로서 좀더 효율적인 라우팅과 포워딩이 가능하게 한다.

    네트워크 아키텍쳐 모델

    • 인터넷
      • bandwidth: 속도에 대한 보장 X
      • loss: 손실에 대한 보장 X
      • order: 순서에 대한 보장 X
      • timing: 일정 시간 안에 전송 및 도착 보장 X
      • congestion feedback: 혼잡에 대한 피드백은 기본적으로 인터넷은 제공하지 않음. 그래서 tcp는 패킷 loss를 가지고 추정함
    • ATM(비동기 전송 모드, Asynchronus Transfer Mode): 고속 전송을 위한 네트워크 표준

    네트워크 서비스 모델

    네트워크 아키텍쳐서비스 모델BandwidthLossOrderTimingCongestion Feedback
    Internetbest-effort: 하지만 보장은 안 함속도에 대한 보장X손실에 대한 보장 X순서에 대한 보장하지 않음일정 시간 안에 전송 및 도착 보장 X혼잡에 대한 피드백은 기본적으로 인터넷은 제공하지 않음. 그래서 tcp는 패킷 loss를 가지고 추정함
    ATMCBR(Constant Bit Rate)전송 속도가 일정하게 제공됨손실에 대한 보장 O순서 보장일정 시간 안에 도착보장성 서비스이기 때문에 congestion을 유발하지 않는다
    ATMVBR(Variable Bit Rate)비트 속도가 변하는데도 전송 속도 보장(maximum bit rate랑 minimum bit rate가 다른데도)손실에 대한 보장 O순서 보장일정 시간 안에 도착 보장 보장성 서비스이기 때문에 congestion을 유발하지 않는다
    ATMABR(Available Bit Rate)CBR은 일정한 전송 속도를 유지하고 VBR은 맥시멈과 미니멈을 왔다갔다 하면서 전송을 하고 ABR은 CBR과 VBR이 사용하지 않는 남는 채널 사용. 그래서 최소한의 bit rate만 보장한다.너무 많은 비트를 전송하면 congestion을 유발하기 때문에 그럴 경우 데이터를 버린다. 그래서 loss 보장을 하지 않는다.순서 보장 O시간 보장 O나머지 짜투리 용량을 사용하는 서비스 모델이기 때문에 congestion feedback을 해서 조정을 해줘야 한다.
    ATMUBR(Unspecified Bit Rate): 보장성 하나도 없음XATM은 순서는 다 맞춰주므로 유일하게 loss에 대한 보장을 해준다.XXUBR도 ABR과 마찬가지로 CBR과 VBR이 사용하지 않는 남는 용량을 사용하면 congestion feedback을 받아야 하는 거 아니야? 라고 생각할 수 있지만, ABR과 달리 어떤 것도 보장을 안 받기 때문에 언제든지 버려도 된다.

    라우터의 구조

    • 라우팅 프로세서: 라우팅을 결정
    • high-speed switching fabric: 특정 인풋과 특정 아웃풋을 연결 및 종료를 할 수 있는 기능

    • physical layer: 전기적 신호 수신
    • link layer protocol: data link layer 기능 수행(e.g. 이더넷)
    • decentralized switching
      • 헤더 필드의 값을 사용해서 output 포트를 탐색(input 포트 메모리에 있는 포워딩 테이블을 참조해서)
      • 스위칭 동작이 일어나기 위해서는 input port 처리기의 목적은 빨리 처리하는 것이지만, 데이터 그램들이 switch fabric 포워딩 rate보다 빠르게 도착하면 queue 구조로 저장.

    인터넷에서 사용하던 전통적인 포워딩 방식은: IP 주소에만 근거해서 포워딩하는 destination-based forwarding을 하지만, software-defined networking은 generalized forwarding 방식을 사용한다. 즉, 헤더에 들어가는 모든 값들 중, 필요하다고 판단되는 값들을 조합해서 어디로 포워딩할지 결정한다. 왜 일반화된 포워딩이라고 하냐면, destination-based는 포워딩하기 위해서 오직 IP만 사용하고 generalized 포워딩은 IP 외에 다른 정보도 사용하기 때문에 '일반화' 된 포워딩 모델이라고 한다.

'CS > 네트워크 수업' 카테고리의 다른 글

컴퓨터 네트워크 10주차  (2) 2021.05.04
컴퓨터 네트워크 9주차  (0) 2021.04.26
컴퓨터 네트워크 7주차  (0) 2021.04.14
컴퓨터 네트워크 6주차  (0) 2021.04.07
컴퓨터 네트워크 5주차  (1) 2021.03.29
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유