[컴퓨터네트워크] 02. (4)Network Layer(네트워크 계층) - IP 패킷의 포워딩

2024. 4. 7. 01:13·Network

(4) Network Layer(네트워크 계층) - IP 패킷의 포워딩


IP 패킷의 포워딩

  • 포워딩에서 IP 주소의 역할
  • 포워딩은 패킷을 목적지로 가는 경로로 위치시키는 것
  • 2가지 방안
    • Forwarding based on Destination IP Addres
    • Forwarding based on Destination Label

Destination Address Forwarding

  • Forwarding based on Destination Address
    • 전통적 방식(Traditional approach)
      • 정적(포워딩 테이블)
    • 현재 대부분의 방식(Prevalent today)
      • 동적(ex. OSPF, BGP)
  • 포워딩 테이블이 필요함
  • 호스트가 패킷을 보낼 때나, 라우터가 패킷을 수신하고 포워딩 할 때, 라우팅 테이블을 보고 목적지로 가는 다음 홉을 찾는다

Classless 주소 방식에서 포워딩 테이블

  • Packet -> Extract destination address -> search table --> Interface number and next-hop address -> To other moudles or protocols
  • 헤더를 통해 어떤 곳으로 갈지 결정
  • LPM 방식을 사용하고, 끝까지 못 찾으면 default에 해당하는 Interface로 간다
    • Cf) 브릿지의 경우 찾지 못하면 flooding을 함
  • Prefix 비트를 이용하여 포워딩을 할 수도 있다 (LPM 방식)

  • ex) R1에서 목적지의 주소가 180.70.65.140인 패킷이 수신된 경우
  • 첫 열의 마스크(/26) 적용 -> 결과값 180.70.65.128 -> 매칭 안됨(AND 연산 결과) -> 다음 열 테스트
  • 두번째 열 마스크(/25) 적용 -> 결과값 180.70.65.128 매칭됨 -> 다음 홉과 인터페이스 정보를 추출하여 해당 인터페이스로 포워딩

Hierarchical Routing

  • 계층적 라우팅
    • Internet : backbone > 국가 ISP > 지역 ISP > 단말 ISP
    • 전화망 : 국가코드, 지역번호
  • 네트워크를 계층적으로 배치하면, 포워딩 테이블의 항을 줄일 수 있다.
    • cf) flat한 주소인 MAC address
  • ex) Regional ISP는 120.14.64.0에서 시작하는 16384개의 주소 할당 (120.14.64.0/18) Regional ISP는 4096 주소를 갖는 4개의 서브 블록으로 분할(/20 서브블록 4개) Local ISP는 512 주소를 갖는 8개의 서브 블록으로 분할(/23 서브블록 8개) Small ISP는 4 주소를 갖는 128개의 서브 블록으로 분할(/30 서브블록 128개)

 

Forwarding based on Label

  • 1980년대에, IP 라우팅을 스위칭으로 변경하여 연결지향형의 프로토콜처럼 동작하는 노력 시도
  • 연결지향형 네트워크에서 (Virtual-circuit), 스위치는 패킷의 레이블(label)을 보고 포워딩
  • 라우팅은 라우팅 테이블을 검색
  • 스위칭은 테이블을 인덱스처럼 엑세스
    • 탐색 없이 바로 엑세스
  • DA를 기반으로 한 Forwarding 은 검색하는데 시간이 오래걸리지만, 레이블을 기반으로 한 Forwrading은 검색 소요 시간이 없음

  • 탐색에 시간이 오래 걸림

  • 배열의 인덱스로 배열의 요소를 바로에 접근하는 것처럼 빠름

 

MPLS

  • Multi-Protocol Label Switching
  • backbone의 core에서 빠르게 처리하기 위해서 사용
  • MPLS 라우터는 라우터 및 스위치로 동작
    • 라우터로 동작 시, 목적지 주소 기반 포워딩
    • 스위치로 동작 시, 레이블에 근거하여 포워딩
  • 레이블 스택
    • 계층형 네트워크 지원
    • 스택과 같이 추가 가능
  • IP Packet(IP header + IP Payload)에 MPLS 헤더가 붙음
  • core안에 core를 만들어 Label을 계속해서 붙일 수 있음

라우터

  • 라우터 : 네트워크 계층에서 사용되는 패킷 스위치
    • SW 기반으로 처리하기엔 느리기 때문에, HW 기반으로 처리함
  • 라우터는 2가지로 설정 가능
    • 데이터그램 스위치(IP 주소 기반)
    • 가상회선 스위치(미리 경로 결정)

'Network' 카테고리의 다른 글

[컴퓨터네트워크] 03. Network Layer Protocols(2) - ICMPv4  (0) 2024.04.10
[컴퓨터네트워크] 03. Network Layer Protocols(1) - 네트워크 계층 프로토콜  (0) 2024.04.10
[컴퓨터네트워크] 02. (3)Network Layer(네트워크 계층) - DHCP, NAT  (0) 2024.04.07
[컴퓨터네트워크] 02. (2)Network Layer(네트워크 계층) - IPv4 주소  (0) 2024.04.07
[컴퓨터네트워크] 02. (1)Network Layer(네트워크 계층) - 네트워크 계층 서비스 / 성능, 패킷 스위칭  (0) 2024.04.07
'Network' 카테고리의 다른 글
  • [컴퓨터네트워크] 03. Network Layer Protocols(2) - ICMPv4
  • [컴퓨터네트워크] 03. Network Layer Protocols(1) - 네트워크 계층 프로토콜
  • [컴퓨터네트워크] 02. (3)Network Layer(네트워크 계층) - DHCP, NAT
  • [컴퓨터네트워크] 02. (2)Network Layer(네트워크 계층) - IPv4 주소
lumana
lumana
배움을 나누는 공간 https://github.com/bebeis
  • lumana
    Brute force Study
    lumana
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • Java N
        • Basic
        • Core
        • Collection
        • 멀티스레드&동시성
        • IO, Network
        • Reflection, Annotation
        • Modern Java(8~) N
        • JVM
      • Spring
        • Framework
        • Boot
        • MVC
        • Transaction
        • AOP
        • AI
      • DB Access
        • JPA
        • Spring Data JPA
        • QueryDSL
        • Jdbc
        • JdbcTemplate
      • Project&&Service
        • Performance
        • TroubleShooting
        • Refactoring
      • WEB
        • HTML
        • CSS
        • React
        • HTTP
        • Application
      • Database
      • Network
      • OS
      • 컴퓨터구조
      • 시스템 프로그래밍
      • Algorithm
        • Divide&Conquer
        • Sort
        • Greedy
        • DP
        • Backtracking
        • NP-Complete
        • Graph
      • Data Structure
        • 자료구조
        • C++ STL
        • Java Collection
      • 소프트웨어 공학
        • 시험 공부 정리
        • Theorem
      • Computer Science
      • Programming Language(Sub)
        • Python
        • C
        • C++
        • Rust
        • Theory
      • Unix_Linux
        • Common
      • PS
        • BOJ
        • Tip
        • 프로그래머스
        • CodeForce
      • Book Review
        • Clean Code
      • Math
        • Linear Algebra
      • AI
        • DL
        • ML
        • DA
        • Concepts
      • 우아한테크코스
        • 프리코스
      • Project Review
      • LegacyPosts
      • Android
      • Apple
        • Mac
        • IPhone
        • IPad
      • 모니터
      • Diary
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
lumana
[컴퓨터네트워크] 02. (4)Network Layer(네트워크 계층) - IP 패킷의 포워딩
상단으로

티스토리툴바