• [ Network ] Network Layer ( start ~ Dataplane )

    2021. 3. 20.

    by. KimBangg

     

    Trnasport layer = process between applications

     

    Network layer = process between Hosts

    <Purpose : segment를 datagram으로 encapsulate해서 다른 host에게 보내는 것>

     

    모든 Host 와 Router에는 Network layer protocol이 내장 되어 있다.

     

     

    1) What is Routing & Forwarding [ 혼동하지 않는 것은 중요하다 ]

     

    Routing : 패킷을 Source -> Destination 까지 어떤 길로 보내는지에 대한 기획자의 역할 ( = Mapping )

     

    Forwarding : 패킷을 inport -> 적절한 outport로 보내는 것.

     

     

    2) Structure of router Inside

     

    Data plane : forwarding 역할을 수행

     

    Control plane : Routing 역할을 수행

     

    2 -1 ) per-router control plane ( = decentralized routing)

    각각의 라우터에 라우팅 알고리즘이 내재 되어 있음

     

    2-2 ) Logically centralized plane ( = SDN )

    : remote server에서 routing algorithm 을 통해 구한 값을 각 router에 전송해준다

     

    3) Structure of router Inside Detail

     

    3-1 ) input

    1. 들어오는 physical link를 끝내는 역할을 한다 = Termination ( 맨 왼쪽 박스 )

    2. 들어오는 링크의 다른 쪽에 있는 링크 계층과 상호 운용하는 데 필요한 링크 계층 기능을 수행한다.

    3. 라우터의 스위칭 패브릭으로 포워드 되는 데이터그램이 적절한 출력 포트에 나타나도록 룩업 및 포워딩 기능(마지막)

    대표사진 삭제

    사진 설명을 입력하세요.

     

    forwarding 을 위해 Destination Address를 알아야하는데 전부 다 저장하기에는 너무 많기 떄문에, IP를 2진법으로 표현하여 일정길이의 prefix로 interface 번호를 부여한다.

    A,B,C,D / X = x번째 자리 까지 같으면, 같은 interface로 구별한다 = subnet mask

     

    하지만, 32bit의 자리가 제공할 수 있는 수의 한계가 존재하기 때문에 x번째 이상의 개수까지 같은 경우가 발생

    -> 이럴 떄는 longest prefix matching을 이용해서 interface number 부여한다.

     

     

    대표사진 삭제

    대표사진 삭제

    사진 설명을 입력하세요.

     

     

    look up을 통해 목적지를 찾았어도, outport에서 switch fabric을 사용하고 있다면 넘어가지 못하고 대기해야 한다. ( = “match plus action )

    <Switching Fabric>

     

    목적 : input buffer ( 대기열 ) 에 있던 packet들을 적절한 output buffer로 옮겨주는 역할을 한다.

     

    <Type of fabric>

     

    1) Memory ( = CPU의 통제 아래에 있다.)

    1. 새로운 Input이 들어오게 되면, Routing process가 복사를 한 후에 processor memory에 별도로 저장

    2. 저장한 input의 목적지 주소를 빼낸 후, 적절한 output으로 전송.

     

    2) Bus

    Input이 bus 라는 공간으로 거쳐서 output buffer로 보낸다.

    다른 인풋포트에서 보낸 여러개의 패킷이 하나의 라우터로 몰리게 되면, 한번에 한 개의 패킷만 전송될 수 있기 때문에, 나머지는 기다려야 한다. 그렇기 때문에, switching의 속도를 bus의 속도에 의해 제한함으로써, buffer overflow가 되지 않도록 한다.

     

    3) Cross Bar

    2n개의 bus 공간을 만들어서, 막힘 현상 없이 지속적으로 보낸다 ( bus의 단점을 보완 )

    다른 목적지로 가는 경우에는 동시에 보내지는 것이 가능하다!

    하지만, 똑같은 목적지로 갈 경우에는 대기를 한 후에 전송을 해야한다.

    - > input, output queing 에서 자세히 다루겠음!

     

    사진 삭제

    사진 설명을 입력하세요.

     

    <Outport>

    만약, switching fabric 에서 넘겨주는 속도가 output 처리보다 빠를 경우에는 buffer가 생긴다.

    그럴 경우 처리하는 방법은 3가지가 존재한다.

     

    * Packet scheduling

     

    1) FIFO

    먼저 들어온 패킷을 우선적으로 전송한다

     

    2) Priority scheduling ( 패킷의 우선순위를 매긴 후, 우선순위인 패킷 먼저 전송)

    1순위 : real-voice & network management 권한이 있는 packet

    2순위 : not real & personal pakcet

     

    3) working conserving queue ( = 지연시간을 최소화 하려는 방식으로 packet을 전송 )

    - narrowband signal을 먼저 보낸 후 , broad band signal을 나중에 보낸다.

     

    4) Round Robin

    주기적으로 우선순위 1,2번을 교차해서 보낸다.

     

     

    < Input & Output Queuing >

     

    input

    Head of Line Blocking = 똑같은 목적지로 갈 경우에는 대기 한 후에 보낸다

     

    output

    이미 버퍼가 쌓여 있거나, 하나의 목적지로 한번에 패킷이 올 경우 buffer가 걸린다.

     

     

     

     

     

     

     

     

     

    댓글