[네트워크] 네트워크 계층 : 데이터 평면

3 분 소요

포워딩 & 라우팅

  • 포워딩은 패킷이 라우터의 입력 링크에 도달했을 때, 그 패킷을 적절한 출력 링크로 이동시키는 작업을 말한다.
  • 라우팅은 송신자가 수신자에게 패킷을 전송할 때, 패킷의 경로를 결정하는 작업을 말한다. 또한, 이러한 경로를 계산하는 알고리즘을 라우팅 알고리즘이라고 한다.
  • 포워딩은 매우 짧은 시간(수 나노초)이 소요되며 하드웨어에서 실행되는 반면, 라우팅은 조금 더 긴 시간(수 초)가 소요되며 소프트웨어에서 실행된다.


라우터의 네 가지 요소

http://dl.dropbox.com/s/d15yoku6x1jgqmt/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EA%B3%84%EC%B8%B5%20-%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%8F%89%EB%A9%B4-1.png

  • 입력 포트
    • 입력 링크의 물리 계층 기능을 수행한다.
    • 반대편과의 통신을 위해 데이터 링크 계층 기능을 수행한다.
    • 검색 기능을 수행한다.
  • 출력 포트 : 스위치 구조로부터 받은 패킷을 저장하고, 출력 링크로 패킷을 전송한다.
  • 스위치 구조 : 라우터의 입력 포트와 출력 포트를 연결한다.
  • 라우팅 프로세서 : 제어 평면 기능을 수행한다.


라우터 내부에서의 패킷 처리

  • 내부적으로 목적지 IP 주소를 찾은( match ) 다음에 패킷을 스위치 구조를 통해 지정된 출력 포트로 보내는( action ) 작업을 수행한다.
  • 입력 포트 프로세싱
    • 검색을 통해 패킷의 출력 포트가 결정되면, 패킷을 스위치 구조로 보낸다.
    • 패킷을 보내는 과정에서 패킷 스케줄링 알고리즘이 사용된다.
  • 스위치 구조
    • 패킷을 입력 포트에서 출력 포트로 내보내는 작업을 수행한다.
    • 메모리, 버스, 크로스바를 사용할 수 있다.
  • 출력 포트 프로세싱 : 출력 포트 메모리에 저장된 패킷을 가져와 출력 링크를 통해 전송한다.


패킷 스케줄링

  • First-In-First-Out(FIFO)

    http://dl.dropbox.com/s/ga238to59k870sj/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EA%B3%84%EC%B8%B5%20-%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%8F%89%EB%A9%B4-2.png

    • 회선이 현재 다른 패킷을 전송중일 때, 링크 출력 큐에 도착한 패킷은 전송을 기다린다.
  • 우선순위 큐잉

    http://dl.dropbox.com/s/yz3bc0bck613e0p/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EA%B3%84%EC%B8%B5%20-%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%8F%89%EB%A9%B4-3.png

    • 출력 링크에 도착한 패킷은 큐에 도착하면 우선 순위 클래스로 분류된다.
  • 라운드 로빈
    • 우선순위 큐잉과 같이 패킷을 클래스로 분류하지만, 우선순위 큐잉처럼 엄격하게 구분하지 않는다.
  • WFQ(Weighted Fair Queuing)
    • 작업 보존 큐잉(work-conserving) 규칙에선 전송을 위해 큐에서 기다리는 패킷이 있다면, 링크는 유휴 상태가 되는 것을 허용하지 않는다. WFQ는 작업 보존 큐잉 규칙을 따른다.
    • 각 클래스는 가중치를 할당받는다.


IPv4 데이터그램 형식

http://dl.dropbox.com/s/2fxy1in30yjfunk/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EA%B3%84%EC%B8%B5%20-%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%8F%89%EB%A9%B4-4.png

  • TTL(Time-to-live)
    • 데이터그램이 네트워크 상에서 무한히 순환(라우팅 루프)하지 않도록 한다.
    • 라우터가 데이터그램을 처리할 때마다 감소시키고, 0이 되면 라우터가 데이터그램을 폐기한다.
  • 프로토콜 : 목적지의 트랜스포트 계층 프로토콜을 명시한다.
  • 헤더 체크섬 : 라우터가 수신한 IP 데이터그램의 비트 오류를 탐지하는 데 사용한다.


IPv4 데이터그램 단편화

  • 링크 계층 프레임이 전달할 수 있는 최대 데이터 양을 MTU(Maximum Transmission Unit) 라고 부른다.
  • 단편화된 데이터그램 조각은 출발지 주소, 목적지 주소, 원본 데이터그램의 식별자 정보를 포함한다.


IPv4 주소 체계

  • 모든 호스트와 라우터는 IP 데이터그램을 송수신할 수 있으므로, IP는 각 호스트와 라우터 인터페이스가 IP 주소를 갖도록 요구한다.
  • IP 주소는 32비트(4바이트) 길이이며, $2^{32}$개(약 40억 개)의 주소가 사용 가능하다.
  • 서브넷은 호스트 인터페이스와 라우터 인터페이스와의 연결, 혹은 라우터 인터페이스들끼리 연결된 네트워크를 의미한다.
  • 서브넷 마스크는 IP 주소와의 & 연산을 통해 네트워크 부분에 해당하는 정보를 얻기 위해 사용된다.


동적 호스트 구성 프로토콜(Dynamic Host Configuration Protocol, DHCP)

  • DHCP는 호스트가 네트워크에 접속하고자 할 때 IP 주소를 할당해준다.
  • 자동으로 호스트와 연결해주기에 플러그 앤 플레이 프로토콜 혹은 제로 구성 프로토콜이라고도 한다.
  • DHCP는 클라이언트-서버 프로토콜이다.


DHCP서버

  • IP 자동 할당과 분배 기능을 수행한다.
  • DHCP 서버는 일정한 IP 대역을 가지고 있고, 네트워크에 연결된 장치가 IP를 필요로 하는 경우, 제한된 대역 안에서 IP를 발급해 주고, 발급해준 IP를 일정 시간동안 사용하지 않는 경우에는 다시 IP를 회수하여, 다른 장치에서 요청이 있을 때 발급해 준다.


DHCP 동작

http://dl.dropbox.com/s/bw978yyap3vsr1z/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EA%B3%84%EC%B8%B5%20-%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%ED%8F%89%EB%A9%B4-5.png

  1. DHCP 서버 발견(discover)
    • 클라이언트는 DHCP 서버에 발견 메세지를 보낸다.
    • 목적지 주소는 브로드캐스팅 IP 주소 255.255.255.255 로 설정하고, 출발지 IP 주소는 0.0.0.0 으로 설정한다.
    • DHCP 발견 메세지를 포함하는 IP 데이터그램은 서브넷에 연결된 모든 노드로 브로드캐스팅된다.
  2. DHCP 서버 제공(offer)
    • DHCP 서버 발견 메세지를 받은 DHCP 서버는 DHCP 제공 메세지를 클라이언트로 응답한다.
    • 목적지 IP 주소는 브로드캐스트 주소인 255.255.255.255 로 설정해 서브넷의 모든 노드로 이 메세지를 브로드캐스트한다.
    • 서브넷에는 여러 DHCP 서버가 존재하기 때문에, 클라이언트는 여러 DHCP 제공 메세지로부터 가장 최적의 위치에 존재하는 DHCP 서버를 고른다.
    • 제공 메세지는 트랜잭션 ID, 클라이언트에 제공된 IP 주소, 네트워크 마스크, IP 주소 임대 기간을 포함한다.
  3. DHCP 서버 요청(request)
    • 하나 이상의 DHCP 제공 메세지를 받아, 클라이언트는 최적의 DHCP 서버를 선택하고, 해당 서버에 제공 메세지로부터 받은 정보들을 파라미터로 요청 메세지를 보낸다.
  4. DHCP 서버 반응(ack)
    • 서버는 요청된 파라미터를 확인하는 DHCP ACK 메세지를 클라이언트로 응답한다.
  • 위 절차가 끝나면, 클라이언트는 DHCP 할당 IP 주소를 임대 기간 동안 사용할 수 있다.
  • 호스트가 이동시, 위 절차가 새로 수행되며 이로 인해 TCP 연결이 끊긴다는 결점이 있다.


네트워크 주소 변환(Network Address Translation, NAT)

  • NAT은 출발지 및 도착지의 IP 주소와 포트 번호를 바꿔가며 네트워크 트래픽을 주고 받는 기술이다.
  • NAT 라우터는 하나의 IP 주소를 갖는 하나의 장비처럼 작동한다. 또한, 외부에서 들어오는 홈 네트워크의 상세한 사항을 숨긴다.
  • NAT의 장점
    • IP 주소 부족 문제 해결
      • 공인 IP 주소를 전체 사용자에게 할당하지 않아도 된다.
      • 하나의 공인 IP 주소에 여러 호스트가 연결해 인터넷에 접속할 수 있다.
    • 보안성
      • 외부는 내부 네트워크 정보를 알 수 없다.
      • 트래픽이 외부로 나갈 때에는 사설 IP가 공인 IP 로 변경되기 때문에 공격자는 라우터 안쪽의 사설 IP를 모르므로, 공격이 어렵다.
  • IP 주소와 포트 번호가 적혀있는 NAT 변환 테이블을 이용해 내부 호스트를 판단한다.


IPv6

  • 큰 IP 주소 공간이 필요함에 따라 새로운 IP 프로토콜 IPv6가 개발되었다.
  • 새로 도입된 변화는 다음과 같다.
    • IPv6는 IP 주소 크기를 기존 32비트에서 128비트로 확장했다.
    • 애니캐스트 주소가 도입되었다.

카테고리:

업데이트:

댓글남기기