일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- vector insert
- 그래프 탐색
- branch
- html5
- map
- trie
- Prisma
- 백준 9527번
- 이분 탐색
- Next
- Github
- Keys
- pm2
- ERD
- insomnia
- DP
- localstorage
- 게임 서버 아키텍처
- HTTP
- Express.js
- 자바스크립트
- ccw 알고리즘
- MongoDB
- PROJECT
- string
- 트라이
- JavaScript
- 그리디
- MySQL
- router
Archives
- Today
- Total
dh_0e
[Network Layer] Network Layer 기초 본문
Packet Switching at Network Layer
- Connectionless Service (비연결형 서비스)
- 네트워크 계층은 connectionless service를 제공하기 위해 설계됨
- 각각의 패킷은 독립적으로 전달 → 서로 다른 경로 or 같은 경로를 통해 도착할 수 있음
- 패킷 스위칭 방식: 서로 다른 경로로 가기 때문에 도착 순서 보장 X
- 네트워크 계층의 책임: 패킷을 출발지에서 목적지까지 전송
전송 전 별도의 연결 설정 없음. IP는 best-effort delivery만 제공함 (신뢰성 보장 X).
- Connection-Oriented Service (연결형 서비스)
- 모든 패킷이 같은 경로로 전달되도록 가상 연결 (virtual circuit) 을 설정
- 전송 전에 경로 설정 필요
- 설정 이후에는 모든 데이터그램이 동일한 경로로 흐름
가상 연결을 만든 후 동일한 경로로 전송. MPLS 같은 경우 연결형 방식.
Network Layer Services (Source Computer)
- Source Computer에서의 역할
- 종단 간 통신을 위한 Logical Addressing(논리적 주소(IP)) 사용
- Logical Addressing: 네트워크 계층은 end-toend 통신을 제공함 (종단간)
- 통신하고자 하는 두 컴퓨터는 universal identification(공인 IP 기준) service 가 필요함
- 출발지 컴퓨터는 목적지 주소를 설정하고 패킷을 생성
- 종단 간 통신을 위한 Logical Addressing(논리적 주소(IP)) 사용
통신하려는 두 호스트는 서로를 식별할 수 있는 IP 주소가 필요함.
Network Layer Services (Router)
- 라우터에서의 역할
- 라우터는 항상 두 개의 링크 계층과 상호작용함
- 들어오는 링크 계층, 나가는 링크 계층
- 들어온 패킷을 확인하고 다음 홉으로 전달
- 라우터는 항상 두 개의 링크 계층과 상호작용함
Valid datagram?
- 수신한 데이터그램이 유효한지 검사함.
- 유효하지 않으면 Discard datagram (폐기)
1. Find next-hop logical address (논리 주소 찾기)
- 목적지 논리 주소(DA)를 보고, 다음으로 가야 할 노드의 IP 주소(NA)를 찾음.
- → 라우팅 테이블을 참고함.
2. Find next-hop MAC address (MAC 주소 찾기)
- IP 주소(NA)로부터 실제 전송에 필요한 MAC 주소를 얻음.
- → 여기서 ARP 프로토콜 사용!
- → 이때, 빨간 글씨처럼 ARP cache는 로컬 PC에 저장된 매핑 테이블.
3. Fragment (단편화)
- 전송할 데이터그램 크기가 MTU보다 크면 조각(fragmentation) 냄.
- → MTU는 인터페이스마다 다르기 때문에, MTU 테이블 참고함.
4. Fragment 결과 예시
- 아래 박스처럼 여러 개의 조각난 프래그먼트가 만들어지고 각각 MAC 헤더 붙어서 전송됨.
- ARP cache: PC 자체 매핑 테이블 (IP 주소를 물리적 주소(MAC 주소)로 변환하는 데 사용됨)
- Fragment: 네트워크 계층에서 데이터를 MTU에 맞게 조각내어 전송
- MTU(Maximum Transfer Unit): 한 번에 전송할 수 있는 데이터의 최대 크기 (즉, 네트워크에서 한 프레임으로 전송 가능한 최대 바이트 수)
- DA: 목적지 논리 주소 (IP)
- NA: 다음 홉 IP 주소
- MAC: MAC 주소
- H: 데이터그램 헤더
라우터는 두 링크 계층 사이에서 동작하며 IP 계층은 중간자 역할 수행.
네트워크 계층(IP 계층)에서는 데이터가 MTU보다 클 경우, 이를 조각 내어 전송하며, 수신 측에서 다시 조립한다. MTU는 한 번에 전송 가능한 최대 데이터 크기를 의미한다.
Network Layer Services (Destination Computer)
- 목적지 컴퓨터의 역할
- 여러 조각(Fragments)으로 나뉜 패킷을 재조립
- 재조립이 완료된 데이터는 상위 계층(Transport or other layers)으로 전달
목적지 호스트는 모든 fragment가 도착해야만 데이터를 복구 가능함.
재조립 시간이 지나면 파기
Other Network Layer Issues: Error Control
- IP(Network Layer Protocol) 의 오류 제어 방식
- 전체 오류 제어는 안 함
- 오직 헤더에 checksum 필드를 추가해서 헤더의 오류만 감지
- 두 Hop 사이에서 헤더에 corruptions나 changes가 있는지 판단
- 라우터마다 checksum 재계산 필요 (헤더 일부가 변경되기 때문)
- 라우터에서 데이터 처리되는 도중에는 Error checking X
- IPv6에는 checksum 존재 X
IP(Network Layer Protocol)는 헤더 오류만 체크하고, 데이터 전체 오류 제어는 전송 계층(TCP)이 담당함.
Other Issues: Routing, Security
- Routing (라우팅)
- 네트워크 계층의 핵심 역할
- 라우터는 라우팅 테이블을 생성하고 갱신
- 라우팅 프로토콜 (예: RIP, OSPF)이 이를 도와줌 (동적으로)
- Security (보안)
- IP 자체는 보안을 고려하지 않고 설계됨
- 보안이 필요할 경우 IPSec(주로 TLS/SSL) 등의 추가 계층을 도입
라우팅은 별도의 프로토콜이 관리하며, IP 자체에는 보안 기능이 없음.
✅ 총정리 키워드 요약
개념설명
IP (Internet Protocol) | Network layer의 핵심 프로토콜 (IPv4 / IPv6) |
Connectionless | IP는 연결 없이 각 패킷 독립 전송 |
Connection-Oriented | 전송 전 경로 설정 후 일관된 전송 |
Source Computer | IP 주소를 설정하여 패킷 생성 |
Router | 입력/출력 링크 계층 사이에서 패킷 전달 |
Destination Computer | Fragment 재조립 후 상위 계층에 전달 |
Checksum | 헤더 오류만 감지, 데이터 오류는 감지 X |
Routing | 라우팅 테이블로 다음 홉 결정 |
Security | IP에서는 기본적으로 없음, IPSec 등 별도 사용 |
'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] Delivery and Forwarding of IP Packets (1) | 2025.04.22 |
[Network Layer] IPv4 Address (0) | 2025.04.21 |