일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ERD
- trie
- map
- Github
- branch
- 게임 서버 아키텍처
- string
- PROJECT
- MongoDB
- Prisma
- 그래프 탐색
- 그리디
- Express.js
- 백준 1918번
- JavaScript
- ccw 알고리즘
- 트라이
- vector insert
- Keys
- 이분 탐색
- HTTP
- html5
- insomnia
- pm2
- DP
- MySQL
- router
- localstorage
- 자바스크립트
- Next
Archives
- Today
- Total
dh_0e
[Network Layer] Delivery and Forwarding of IP Packets 본문
Network Programming/Network Layer
[Network Layer] Delivery and Forwarding of IP Packets
dh_0e 2025. 4. 22. 01:42Delivery
- Network Layer의 주기능
- 하나의 subnet안에서 일어나는 direct delivery와 indirect delivery가 있음
Direct Delivery
- 직접 전달 (Direct Delivery)은 패킷이 같은 물리적 네트워크 상에 있는 목적지 호스트로 전송되는 경우.
- 두 가지 경우가 해당됨:
- 송신자와 수신자가 같은 네트워크 상에 있을 때
- 마지막 라우터 → 최종 호스트로 전달하는 상황
예시
- A라는 호스트에서 B라는 호스트로 보낼 때, 둘 다 동일한 LAN 상에 있음 → 직접 전달
- 라우터에서 나가서 마지막 수신 호스트까지 가는 것도 직접 전달에 포함
Indirect Delivery
- 간접 전달 (Indirect Delivery)는 목적지까지 도달하기 위해 여러 라우터를 경유해야 하는 경우
- 보낸 쪽은 목적지 IP 주소를 사용하여 라우팅 테이블에서 다음 라우터(next hop)의 주소를 결정
예시
- Host A → Router 1 → Router 2 → Host B
- → Host A는 직접 Host B에 보낼 수 없음 → Router 2가 Host B와 같은 네트워크에 있으므로 최종 전달 담당
- Host A → router1은 indirect, router2 → B는direct인 이유: "Direct Delivery"라는 말은 "최종 목적지"가 같은 네트워크에 있을 때만 씀
Forwarding Based on Destination Address
- Forwarding은 패킷을 목적지로 향하게 하기 위해 다음 홉으로 넘기는 행위
- 라우터 혹은 호스트가 라우팅 테이블을 사용해 수행
- ➤ 목적지로 가는 경로 중 하나일 수 있음 (끝일 수도, 중간일 수도 있음)
- 인터넷 네트워크에서는 라우팅 테이블에 필요한 항목의 수가 많아져 테이블 조회가 비효율적임
Next-Hop Method
- 경로 전체가 아닌 다음 라우터의 주소만 저장
- 라우팅 테이블이 간결해지고 속도 향상
Network-Specific Method
- 호스트가 아닌 네트워크 단위로 경로 설정
- 모든 호스트를 나열하는 대신 → 네트워크 하나당 한 줄
장점
- 라우팅 테이블 크기 감소
- 탐색 속도 향상
Host-Specific Method
- 특정 호스트에 대한 개별 경로 지정
- 효율은 떨어지지만 세밀한 제어 가능
Default Method
- 라우팅 테이블에 기본(default) 경로 한 줄만 적어도 됨
- 모든 미지정 목적지는 이 경로로 전달됨
Address Aggregation (Forwarding Based on Destinaition Address)
문제점
- CIDR 사용 시 → 라우팅 테이블 항목 폭발적으로 증가
해결책: 주소 집계(Aggregation)
- 여러 조직의 주소 → 하나로 묶어 관리
- R1이 관리하는 주소들
- 140.24.7.0/26
- 140.24.7.64/26
- 140.24.7.128/26
- 140.24.7.192/26
- 합치면 전체 범위: 140.24.7.0 ~ 140.24.7.255 → 즉, 140.24.7.0/24
주소 집계 조건 정리
- 주소들이 연속적이어야 함
예: 140.24.7.0, 140.24.7.64처럼 64단위로 끊기는 건 OK - 서브넷 마스크가 같아야 함
예: 모두 /26 - 정렬된 상태여야 함
→ 라우터가 블록을 순차적으로 묶을 수 있어야 함
Longest Mask Matching (Forwarding Based on Destinaition Address)
- 가장 긴 마스크부터 검사 → 더 정확한 경로 선택
핵심 개념
목적지 주소와 가장 많이 일치하는 라우팅 테이블 항목을 선택하는 방식
- CIDR에서는 주소가 /24, /26, /27 등 길이 다른 마스크 존재
- 이때 가장 정확한 경로를 찾으려면, 가장 긴 prefix(마스크)를 우선적으로 검사해야 함
예시
- 목적지: 140.24.7.200
- 마스크: /27 → 140.24.7.192
- /24 먼저 검사하면 잘못된 경로로 전달됨
Hierarchical Routing (Forwarding Based on Destinaition Address)
- 라우팅 테이블이 너무 커지는 문제를 해결하려면?
→ 계층적(hierarchical) 구조를 만들면 됨 - 예를 들어, 지역 ISP(local ISP)는 하나의 큰 주소 블록을 할당받을 수 있음
- 그 블록은 특정 prefix 길이(/n)를 가짐
Geographical Routing (Forwarding Based on Destinaition Address)
- 계층적 라우팅을 더 확장해서 → 지리적 위치 기반 라우팅 도입
- 전 세계를 지역 단위로 나눠 블록 부여 (예: 아시아, 유렵 등 대륙별로 주소 블록)
- 연구 단위, 특수한 상황에서만 제안되며 현재 거의 사라짐
- 유럽 외 지역의 라우터들은
→ 유럽 목적지에 대해 단 하나의 항목만 유지 - 미국 외 지역의 라우터들도 마찬가지로
→ 미국 목적지에 대한 한 항목만 유지
✅ 이렇게 하면 라우팅 테이블이 더 작아짐
✅ 글로벌 라우팅의 효율성 향상
Structure of Router (Forwarding Based on Label)
- 기존에는 IP 패킷의 목적지 주소를 기반으로 라우팅 테이블을 검색해서 경로를 결정했음
- 라우팅이 아니라 스위칭(Switching)으로 동작 가능
- 단순히 인덱스(번호)로 테이블을 접근해서 전달
Components (라우터의 구성 요소)
Four components
- Input ports
- Output ports
- Routing processor
- Switching fabric
Input ports
- 입력 포트는 라우터의 1~2계층 역할을 담당함
즉, 물리 계층 + 데이터 링크 계층
- 신호(전기적/광학적)로부터 비트 데이터를 조립
- 수신된 프레임에서 IP 패킷을 추출(디캡슐레이션)
- 프레임 수준에서 발생할 수 있는 오류 검출 및 수정
- 스위칭 패브릭으로 넘기기 전
→ 포트에는 버퍼/큐가 있어 패킷들을 잠시 보관함
Output Ports
- 입력 포트에서 했던 작업을 역순으로 수행
- 즉, IP 패킷을 프레임으로 캡슐화, 비트를 전송 신호로 변환
- 최종 목적지 또는 다음 라우터로 전송
Routing Processor
- 네트워크 계층의 핵심 기능인 라우팅 결정을 담당
- 목적지 IP 주소를 사용해서
- 다음 홉(next hop)의 주소 찾고
- 어느 출력 포트로 보낼지 결정
- "테이블 룩업"이라고 불림
→ routing table에서 다음 주소를 찾기 때문
Switching Fabrics
- 예전 라우터는 일반 컴퓨터였음
- 버스(bus) 또는 메모리(memory)를 통해 입력 → 출력 전송
- Circuit switching(옛날 거) 통신에만 사용
- 요즘 라우터는 전용 스위치 구조를 사용
ex) Crossbar Switch
- 입력 포트와 출력 포트를 격자 형태(grid)로 연결
- 각 교차점(crosspoint)에 전자 스위치가 있어서 선택적으로 연결 가능
'Network Programming > Network Layer' 카테고리의 다른 글
[Network Layer] ICMPv4 (Internet Control Message Protocol Version 4) (0) | 2025.04.23 |
---|---|
[Network Layer] ARP (Address Resolution Protocol) (0) | 2025.04.22 |
[Network Layer] IPv4 Datagrams (1) | 2025.04.22 |
[Network Layer] IPv4 Address (0) | 2025.04.21 |
[Network Layer] Network Layer 기초 (0) | 2025.04.20 |