네트워크 계층(L3)
- IP주소(논리주소)를 이용하여 라우팅을 통해 원격 목적지의 컴퓨터로 데이터(패킷)를 전송
- 같은 네트워크에 속해 있으면 스위치로만 통신이 가능하지만 다른 네트워크에 속해 있으면 라우터의 도움이 필요하다
- 기능 : 경로 설정(라우팅), 트래픽 제어(by 경로 설정)
라우터
- 다양한 경로정보를 수집해 최적 경로를
라우팅 테이블
에 저장한 후 [라우팅]
데이터가 들어오면 이를 참조해 전송한다 [포워딩] - 브로드캐스트를 하는 스위치와는 다르게 목적지가 라우팅 테이블에 없으면 그 데이터는 버린다
- 그렇기 때문에 라우터는 경로정보를 수집하는 것이 매우 중요하다
- 라우터가 경로설정을 할 때는 출발지는 고려하지 않고
목적지 주소
만 사용한다 -
네트워크주소
를 기반으로 라우팅을 한다
라우팅 테이블
-
목적지 주소
,넥스트홉 IP주소
,인터페이스
등이 기록된다
(1) 라우팅
- 라우터가 경로 정보를 얻어 최적경로를 라우팅 테이블에 저장하는 것
(1) 다이렉트 커넥티드 : 라우터가 자신의 네트워크(LAN)에 대한 라우팅 테이블을 자동으로 만드는 것 (L2수준)
(2) 스태틱 라우팅 : 관리자가 목적지 네트워크와 넥스트홉을 라우팅 테이블에 직접 설정하는 것
(3) 다이나믹 라우팅 : 라우터들끼리 자신의 경로정보를 주기적으로 교환해 라우팅 테이블을 만드는 것
다이나믹 라우팅 프로토콜(경로설정 프로토콜)
-
패킷을 목적지로 최단경로로 전달하기 위해 인접한 라우터들과 경로 정보를 주고 받아 경로를 설정
- 역할에 따른 분류
- 거리벡터 : 각 라우터가 인접한 라우터로부터 경로 정보를 습득하는 프로토콜 (RIP, BGP)
- 각 라우터는 자신의 연결정보를 완성한 후 인접한 라우터에게 공유해 교환한다
- 연결정보의 변경이 이루어지면 자신의 연결정보를 다시 인접한 라우터들에게 공유해 교환한다
- 벨만포드 알고리즘
- 링크상태 : 네트워크 내의 모든 연결정보를 고려하는 프로토콜 (OSPF)
- 다익스트라 알고리즘
- 거리벡터 : 각 라우터가 인접한 라우터로부터 경로 정보를 습득하는 프로토콜 (RIP, BGP)
- 동작 원리에 따른 분류
- IGP : 하나의 자율시스템(AS) 내의 라우팅 (RIP, OSPF, BGP)
- EGP : AS 간의 라우팅 (BGP)
. | 거리벡터 | 링크상태 |
---|---|---|
IGP | RIP, BGP | OSPF |
EGP | BGP | . |
- 링크상태 알고리즘은 네트워크 내의 서로 연결되어 있는 모든 라우터의 연결정보를 알아야 하기 때문에
IGP
만 가능하다
- RIP
- 경로 결정 방법 : 홉 카운트
- 거리벡터 프로토콜
- 최대 홉수가 15이기 때문에 소규모에서 쓰인다
- 30초 마다 라우팅 테이블 정보를 브로드캐스팅 / 180초 경과 후에도 라우팅 정보를 받지 못하면 해당 경로 테이블에서 제거
- 느린 정보교환, 홉수제한, 최적경로 선택에 링크속도를 제외시키는 등의 제약으로 잘 쓰지 않는다
-
OSPF
- 경로 설정 방법 : 링크 상태
- 대규모
- 링크상태 프로토콜 (대역폭이 클수록 비용이 적음)
- 네트워크 변화 시에만 라우팅 정보 전송
-
BGP (Border Gateway Protocol)
- 연결형, 신뢰성 (TCP 포트사용)
- 거리벡터 프로토콜
- 서로 인접한 라우터들은 네트워크 연결 시 라우팅 테이블을 교환 한 후 변화 생겼을 경우에 추가적인 교환 발생
(2) 스위칭/포워딩
- 라우팅 테이블을 참조하여 데이터를 전송하는 것
(1) 이그잭트 매치(Exact Match) : 정확하게 정보와 매치하는 곳으로 전송
(2) 롱기스트 프리픽스 매치(Longest Prefix Match) : 가장 비슷한 경로로 전송
ex) 목적지 : 10.1.1.9
목적지 | 인터페이스 |
---|---|
10.0.0.0/8 | Eth1 |
10.1.0.0/16 | Eth3 |
10.1.1.0/24 | Eth2 |
10.1.1.5/32 | Eth1 |
10.1.2.0/24 | Eth2 |
10.1.2.9/32 | Eth3 |
탈락 : 10.1.2.0/24(3자리부터 불일치), 10.1.2.9/32(3자리부터 불일치), 10.1.1.5/32(4자리 불일치)
매칭정보 : 10.0.0.0/8, 10.1.0.0/16, 10.1.1.0/24
최종선택 : 10.1.1.0/24(가장 많이 일치)
★IP
- OSI 7계층 중 네트워크 계층
- 데이터그램(패킷) 기반의 비연결형
- 패킷 분할/조립, 주소 지정, 경로 설정(라우팅)
- 데이터를 수정하지 않고 전송만 함
- IP주소 : 네트워크주소 + 호스트주소
IP 헤더
- 버전 : IP버전(4 or 6)
- 송신, 수신 IP주소
- TTL(Time To Live) : 패킷이 경유할 수 있는 라우터 홉수
- 프로토콜 : 데이터부분이 TCP / UDP 인지 기록
(1) IPv4
- a.b.c.d : 4byte[32bit] → (4자리, 자리별 1byte[8bit]로써 0~255 10진수 범위)
- 기본헤더 : 20byte / 확장헤더 : 40byte
-
특징 : 비연결형, 비신뢰성, 주소 지정, 경로 설정, 최선형 서비스
- 과거 Classful Addressing
클래스 | 네트워크주소 | 주소지정 | 용도 |
---|---|---|---|
A클래스 | (0~127).###.###.### | N.H.H.H | |
B클래스 | (128~191).###.###.### | N.N.H.H | |
C클래스 | (192~223).###.###.### | N.N.N.H | |
D클래스 | (224~239).###.###.### | 멀티캐스트용 | |
E클래스 | (240~255).###.###.### | 예비용 |
- 특수주소
- 0.0.0.0 : 네트워크 자신
- 255.255.255.255 : 브로드캐스트 주소
- 호스트 부분이 모두 0 : 네트워크 자체주소 (ex 200.193.0.0)
- 호스트 부분이 모두 1 : 직접적 브로드캐스트 (ex 200.193.255.255)
- 127.0.0.1 (=127.0.0.0/8) : 루프백 주소
CIDR (Classless Inter-Domain Routing)
- 클래스리스 네트워크
- 기존의 클래스 방식의 IP주소 부여는 가변적이지 못하여 자원낭비가 심하였으며 고갈되는 IP주소의 단기 대책으로 나온 방안 (중기대책 : Private IP와 NAT / 장기대책 : IPv6)
-
서브넷마스크
를 사용하여 네트워크주소와 호스트주소를 한자리까지 세부적으로 정할 수 있다 - 서브넷마스크 : 네트워크 주소로부터 서브넷팅을 위한 호스트 주소를 얻기 위해 사용
- IP주소&서브넷마스트 = 네트워크주소
200 | 193 | 130 | 200 | /26 | |
---|---|---|---|---|---|
IP주소 | 11001000 | 11000001 | 10000010 | 11001000 | |
서브넷마스크 | 11111111 | 11111111 | 11111111 | 11000000 | 26bit까지 |
255 | 255 | 255 | 192 | ||
네트워크주소 | 11001000 | 11000001 | 10000010 | 11000000 | |
200 | 193 | 130 | 192 |
- 네트워크 주소 : 200.193.130.192
- 브로드캐스트 주소 : 200.193.130.255
- 유호 IP 주소 : 200.193.130.193 ~ 200.193.130.254
- IP 갯수 = 64-2
(2) IPv6
- ac:d:e:f:g:h : 7byte[128bit] → (8자리, 자리별 2byte[16bit]로써 0~FF(255) 16진수 범위)
- 기본헤더 : 40byte
- 특징 : 주소길이 확장, 보안기능 강화(IPsec 기본), 품질기능 강화, 자동설정
ICMP
- 목적 : IP를 보완하기 위해 -> 오류 보고, 정보 제공
- IP : 비연결형으로 오류 보고/수정 기능이 없음, 호스트와 관리자를 위한 기능 부재
- 메시지 유형
- 오류보고 메시지 : 라우터나 목적지 호스트가 패킷처리 중 생긴 문제 보고
- 질의 메시지 : 라우터나 호스트로부터 정보 획득 목적
ARP
- IP(논리주소) -> MAC(물리주소) 으로 변환
- 수신지의 MAC주소를 알아내기 위해
브로드캐스트
로 요청한다 - 수신지는 자신의 MAC주소를
유니캐스트
로 응답한다 -
ARP 테이블
에 정보를 저장하여 브로드캐스트를 자주 수행하면 성능이 저하되는 것을 막는다
RARP
- ARP와 반대로 MAC(물리주소) -> IP(논리주소) 으로 변환
- 제한된 기능 더이상 사용되지 않고
BOOTP
,DHCP
로 대체해 사용