OSI 7 Layer의 3계층에 속해요. 패킷 포워딩과 네트워크 간 라우터를 통해 라우팅을 수행해요. IP주소를 사용해서 통신을 해요. 대표 장비로는 라우터Router
또는 L3
라고도 불러요.
라우팅(Routing) - 위키백과
- 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정이다.
- 최적의 경로는 주어진 데이터를 가장 짧은 거리로 또는 가장 적은 시간 안에 전송할 수 있는 경로다.
- 라우팅은 전화 통신망, 전자 정보 통신망, 그리고 교통망 등 여러 종류의 네트워크에서 사용된다.
네트워크 계층에서 통신하는 주요 규칙프로토콜
이에요. 처음엔 전송 제어 프로그램의 '비연결' 데이터그램 서비스로 시작해서 '연결 지향' 서비스로 안정성을 보완했어요. 주로 사용하는 네트워크 모델인 TCP/IP
의 기원이에요.
기본적으로 헤더와 페이로드Payload
로 구성되요. 여기서 헤더는 목적지와 출발지 IP 주소 등을 포함하고, 페이로드Payload
는 전송되는 데이터를 의미해요.
현재 IP
는 최대 255:255:255:255 범위의 구조로 정의되어 있어요. 헤더의 크기는 최소 20-byte에요.
헤더 구조
1. Version : IP의 버전, IPv4
2. Header Length : 헤더의 길이에요. 4-byte 단위로 최소 520-byte
부터 최대 1560-byte
의 범위를 가져요
3. Type of Service : 서비스 품질
4. Total Packet Length : IP 패킷의 전체 길이를바이트
단위로 표시되요 최대65,535
5. Identifier, Flag, Offset : IP Fragment 필드를 단편화와 재조합하는데 사용되는 값이에요. 한번에 보내기 큰 패킷을 작은 단위로 전송되는 경우에 사용되요
6. Time to LiveTTL
: IP 패킷의 수명
7. Protocol ID : 데이터에 포함되는 상위 계층의 프로토콜 정보
(TCP
: 6,UDP
: 17)
8. Header Checksum : 오류 검출 코드
9. Source/Destination IP Address : 출발, 목직지 IP 주소
10. IP Hedaer Options & Padding : 옵션, 거의 사용되지 않고 테스트 및 디버깅 용도로 사용되고 통신에는 관여하지 않아요
IPv4 기준 ??:??:??:??으로 4개로 나뉘어져요. ??
는 0과 255 사이의 정수, 즉 -bit로 구성되요. 여기서 IP 주소의 하나의 공간 단위를 옥텟Octet
이라고 해요.
그리고 IP 주소는 네트워크 크기에 따라 5개의 클래스A, B, C, D, E
로 구분해요.
IP 주소는 네트워크
와 호스트
부분으로 나뉘어요. 네트워크
는 브로드캐스트 영역이고 호스트
는 개별 단말기 영역이에요. 그림을 예로 들면 아래와 같아요.
IP 주소는 네트워크
와 호스트
로 구분한다고 했어요. 하지만 할당된 네트워크 영역을 보다 효율적으로 사용하기 위해 이를 나눌 수 있어요.
하나의 네트워크 영역에도 또 다른 단위로 나눌 수 있다는 의미에요. 바로 이 단위를 서브넷Subnet
이라고 해요. 서브넷 마스크Subnet Mask
를 통해 네트워크를 서브넷으로 구분할 수 있게 해요.
예제를 통해 어떻게 활용되는지 볼게요.
디폴트 게이트웨이
다른 네트워크로 패킷 전송 시 거쳐야 하는 IP 주소
서브넷 마스크는 2진수로 1인 부분은 네트워크
, 0인 부분은 호스트
라는 전제하에 지정해요. AND
연산을 통해 네트워크 주소를 확인해요.
예제 1
- IP :
209.217.12.11
서브넷마스크 :255.255.255.0
- 서브넷 네트워크 209.217.12.0
255.255.255.0
은 호스트 영역 0이 8개이므로 2의 8승 256개 IP 할당,209.217.12.0/24
로 표현해요예제 2
- IP
8.8.8.114
, 서브넷 마스크255.255.255.192
의 네트워크 주소와 IP 할당 개수는?
- 네트워크 주소
8.8.8.64
- 호스트 0이 6개이므로 =64개를 할당할 수 있어요
- 8.8.64~127까지가 호스트 범위고
8.8.8.64/26
으로 표현해요
서브넷 마스크는 LAN 설계할 때 일반적으로 C 클래스256
단위로 많이 나눠요.
??:??:??:??
를 간단하게 표현하는 방법이에요. 네트워크 영역의 비트 1의 개수를 의미해요.
네트워크 간의 패킷을 전송해주는 장비에요. 위에 설명했듯이, 라우팅Routing
을 통해 적절한 경로를 선택시킬 수 있어요. 네트워킹 수행할 때 패킷에서 목적지 IP 주소를 확인하고 하나 이상의 네트워크 간의 패킷의 경로를 선택하여 전송해요.
가장 기본적인 라우팅 방식이에요. 일반적으로 많이 쓰이는, 수동으로 경로를 라우터에 설정하여 패킷을 처리하는 방식이에요. 경로는 라우팅 테이블에 목적지 IP 주소와 라우터를 의미하는 인터페이스 정보를 설정해요.
경로 정보가 네트워크 상황에 따라 최적의 경로로 변경되어 패킷을 전송해요. 경로 구성을 위해 몇가지 알아둬야할 개념이 있어요.
동적 라우팅 내부 개념
1. ASAutonomous System
: 하나의 라우터 집단 또는 단체 구분 단위
2. EGP : AS 간 연결되는 부분, 대표적인 프로토콜로 BGP가 있어요
3. IGP : AS 내부 프로토콜로RIP
,OPSF
가 있어요
동적 라우팅 알고리즘은 목적지까지 최적 경로를 계산하고 라우팅 테이블에 업데이트해요. 이에 대한 알고리즘은 Distance Vector 그리고 Link State Routing으로 구분해요.
분산해서 업데이트하는 방식이에요. 인접 노드와 교환하는 방식으로 각 라우터들에 의해 최소 비용 경로를 계산해요.
비용을 계산하는 기준은 거리
와 방향
이에요. 목적지 IP까지 거리 = hop count
(라우터간 거리 + 인터페이스 방향)로 계산해서 경로를 구성해요.
인접 라우터들과 주기적으로 라우팅 테이블을 교환해서 확인하고 관리해요. 인접 라우팅 테이블만 관리하기 때문에 메모리 저장소 절약이 되고 비교적 구성이 간단해요. 하지만 변경이 이뤄지지 않아도 주기적으로 업데이트가 이뤄져 무의미한 트래픽이 발생해요. 라우팅 테이블 업데이트 시간Covergence Time
이 느려요. 벨만 포드 알고리즘 기반 알고리즘이에요.
중앙 집중형 업데이트 방식으로 라우팅 테이블을 구성해요. 하나의 Topology 안의 정보를 통해 최소 비용 경로를 계산해요. 대규모 네트워크에 적합하고 이벤트 기반의 라우팅 테이블을 관리해요.
방식을 설명드리자면, 회선의 대역폭을 고려해서 가중치를 부여해요. 그리고 네트워크 Topology 경로를 모든 라우터들에게 전달해요. 이때 라우팅 정보가 변경되는 이벤트 건에 대해서만 전파하기 때문에 결과적으로 트래픽이 감소해요. 전체 네트워크 상의 라우터들의 테이블 정보가 동일하게 유지해요. 각 라우터들은 다익스트라 알고리즘을 기반으로 최상의 경로를 계산해요.