본문 바로가기
컴퓨터 네트워크

네트워크 14강 - Inside Router, IP

by N.Damgom 2020. 8. 11.

라우터는 네트워크 코어를 구성한다. 라우터에 대해 자세히 알아보고 네트워크 계층 프로토콜인 IP에 대해서도 알아보자.

 


라우터 아키텍처

  • 라우터는 Control Plane과 Data Plane으로 구성된다.
    • Control Plane
      • 라우터의 두뇌 부분에 해당한다.
      • Control Plane의 프로세서가 라우팅 알고리즘을 실행하고 포워딩 테이블을 업데이트한다.
      • 포워딩 테이블 :  Input으로 들어온 패킷을 어떤 Output Port로 보낼지 적혀있는 테이블이다.
      • 소프트웨어적이다.
    • Data Plane
      • 빠른 속도를 위해 하드웨어적으로 구현되어 있다.
      • 데이터 전송을 담당한다.
      • Input Port, Switching Fabric, Output Port로 구성되어 있다.

https://m.blog.naver.com/PostView.nhn?blogId=mayooyos&logNo=221019351231&proxyReferer=


Input Port

  • 하위계층 레이어인 Physical Layer ( Line Termination)과 Link Layer도 포함되어 있다.
    • 각각은 비트 신호를 프레임으로 생성하고, 한 링크를 잘 건너왔는지 분석한다.
  • Look Up, Forwading, Queueing
    • Datagram의 헤더 필드의 목적지와 Input port 메모리의 포워딩 테이블(이건 Control Plane이 업데이트한다.)을 봐서 어디로 갈지 (Output Link)를 결정하고 버퍼에 넣는다. (Queueing).
    • 왜 버퍼에 넣을까?
      • Switching Fabric에 들어가기를 기다린다.
      • 여담으로 네트워크 얘기를 하다 보면 자꾸 버퍼가 나온다. 여러 시스템이 연결된 아키텍처에서는 시스템 간 파이프라이닝을 위해 버퍼가 필요하다는 것을 알 수 있다.
  • Input 포트에서 하는 일을 요약하자면
    • 링크를 건너온 데이터그램을 받아서 포워딩 테이블을 봐서 어디로 갈지 결정하고 대기시킨다.

 


Switching Fabric

  • Switch 한다는 건 무엇일까?
    • 맨 처음에 ISP 얘기를 할 때 모두가 모두에 대해 연결한다면 매우 비효율적이라고 했다.
    • 네트워크들 사이에 ISP ( 라우터라고 생각하자)를 둠으로써 각 호스트들은 ISP에만 연결하면 다른 호스트들과 연결할 수 있었다.
    • 여기서 ISP가 스위칭한다고 한다.
  • Switching Fabric이란?
    • 여러 개의 Input Port와 Output Port들을 스위칭하는 패브릭이다.
    • 패브릭은 비유적인 표현이고 그냥 복잡한 회로 뭉태기라고 생각하자.
  • Head of Line Blocking
    • 스위칭 패브릭에 Input Port들에서 데이터가 들어오는 속도가 스위칭하는 속도보다 느리면 Input Port의 큐에 쌓인다.
    • 한 Output Port에는 동시에 하나의 데이터그램만 지날 수 있으므로 같은 Output Port로 나가려 하는 두 Datagram이 동시에 Switching Fabric에 들어오는 경우 Output Port Contention이 생긴다. 이 경우 Contetion으로 인해 기다리는 데이터그램 뒤에 Contention이 없는 데이터그램은 Contetion이 없는데도 기다리게 된다.
  • Switching Fabric의 종류
    • Memory : CPU의 컨트롤을 직접적으로 받고 시스템 버스를 두 번 타야 하므로 느리다. 초기에 사용되었음
    • Bus : Single Bus는 Bus Contention이 쉽게 발생한다.
    • Interconnection : 여러 개의 버스를 교차해서 Bandwidth를 극복한다.
      • 하드웨어의 처리속도를 높이기 위해 데이터그램을 Fixed Lengh Cell로 분할해서 속도를 높일 수 있다.

Output Port

  • 마찬가지로 Link에 실어 보내기 위해 버퍼가 필요하다.
  • 어느 것을 먼저 내보낼지 큐 스케줄링이 필요하다.
    • 인터넷은 FCFS를 사용하나 다른 네트워크에선 우선순위 등을 사용할 수도 있음

라우터의 버퍼의 크기는 어떻게 해야 할까?

  • 버퍼의 크기는 네트워크 패킷 흐름의 유동성에 비례해야 한다.
  • 따라서 RTT * LinkCapacity를 생각할 수 있겠다.
  • 통계적으로 Smooth 해질 수 있기 때문에 (CLT를 생각하자!) root(호스트의 수)로 나눠도 된다.

IP : Internet Protocol

  • 말 그대로 인터넷 상에서 통신을 위한 프로토콜이다.
  • 네트워크 레이어에는 세 가지 프로토콜이 있다.
    • 라우팅 프로토콜 : RIP, OSPF, BGP
      • 경로 계산 데이터를 주고받는다
      • 즉 Control Plane과 관련이 있다.
      • 나중에 하나씩 살펴보자!
    • ICMP : Internet Control Message Protocol의 약자이다.
      • 에러 리포팅, 컨트롤 메시지 교환 등을 한다.
    • IP  : Internet Protocol
      • 주소, 데이터그램 형식, 패킷 핸들링을 담당한다.
      • Data Plane과 관련이 있다.

 


IP 헤더

https://www.docsity.com/en/ip-datagram-format-computer-networks-lecture-slides/286905/

  • 프로토콜을 살펴볼 때 헤더를 보면 그 프로토콜이 무슨 기능을 하는지 알 수 있다.
  • 하나씩 살펴보자
    • TCP와 마찬가지로 20바이트 + a로 구성된다.
    • ver : IPv4인지 v6인지 아이피 버전을 나타낸다.
    • head len : 헤더의 길이를 4바이트 단위로 나타낸다.
    • type of service : IP 패킷의 우선순위를 정한다.
    • length : 헤더 + 데이터의 길이를 나타낸다.
    • 16 bit id : 패킷의 ID로, 패킷이 분할되었을 때 재조립을 위해 사용된다.
    • flgs : 패킷이 단편화되었는지 / 단편의 마지막인지 나타낸다.
      • 세 비트로 구성
      • 첫 번째비트는 0
      • 두 번째비트는 단편화 유무에따라 1/0
      • 세 번째 비트는 더 있는지 유무에 따라 1/0
      • 단편화되어있고 자신이 마지막이면 010이다.
    • fragment offset : 패킷 조립 시에 offset에 8을 곱한 값이 시작 위치가 된다.(300인 경우 2400부터)
    • Time to live
      • 처음에는 임의로 정해진 TTL값으로 시작해서(윈도우 : 128, 리눅스 : 64) 한 홉 당 1씩 감소한다.
      • 0이 되면 패킷은 버려지고 ICMP로 송신자에게 알린다.
      • 네트워크를 떠도는 패킷이 없도록 한다.
    • Upper Layer : 상위 계층이 TCP인지 UDP인지 ICMP인지 알려준다.

IP 단편화와 재조립 ( Fragmentation, Reassembly )

  • MTU : Maximum Transmission Unit
    • 링크를 지날 수 있는 Frame의 최대 크기이다.
    • 인터넷은 다양한 링크들로 구성되어 있으므로 각자 다른 MTU를 가진다.
  • IP 패킷이 링크를 지날 때 그 링크의 MTU보다 크면 독립적인 Datagram으로 분할된다.
  • 네트워크 코어의 복잡성을 줄이기 위해서 단편화가 일어나는 것은 어쩔 수 없지만 재조립은 최종 목적지에서 하게 된다.
  • 4000 바이트 길이의 데이터그램이 1500 MTU의 링크를 지나면서 3개로 분할되는 과정을 살펴보자.
Length ID Fragemetation Flag Offset
4000 x 000 0
1500 x 011 0
1500 x 011 185
1040 x 010 370
  • 4000 byte 길이의 데이터그램은 헤더 20 byte + 데이터 3980 바이트이다.
  • 첫번째 단편화된 데이터그램은 0~1480바이트의 데이터를 나타낸다.
  • 두번째 단편화된 데이터그램은 1480~2960바이트의 데이터를 나타내므로 offset은 1480 / 8 = 185
  • 세번째 단편화된 데이터그램은 2960~3980바이트의 데이터를 나타내므로 offset은 2960 / 8 = 370

 


IP Addressing

  • IP란?
    • IP는 네트워크 인터페이스의 주소이다.
    • IP는 서브넷 주소 + 호스트의 주소로 이루어져 있다.
  • Subnet (서브넷) 이란?
    • 라우터의 개입 없이 통신할 수 있는 네트워크이다.
  • CIDR : Classless Inter Domain Routing
    •  클래스에 따라 Subnet Portion이 정해진다. Subnet Portion이 작으면 더 많은 호스트를 수용할 수 있으므로
    • 대형 기관에 적합하다.
    • IP주소에 클래스를 별로 호스트 수를 정하면 낭비가 IP 주소 낭비가 심하다.
    • 클래스 없이 Subnet Portion을 가변적으로 정하자.

 

 

더보기

본 게시물은 kocw 이화여자대학교 이미정 교수님의 컴퓨터 네트워크 강의를 듣고 정리한 글임을 밝힙니다.

내용상 틀린 부분이 있을 수도 있으며 이에 대한 책임을 지지 않습니다.

틀린 부분이나 오타 지적은 댓글로 남겨주세요.

www.kocw.net/home/cview.do?cid=e44bdd9b3a3f9bb5