[네트워크] IP 계층(IP Layer) - IP 주소와 라우팅

최지수·2022년 4월 10일
0

네트워크

목록 보기
6/7
post-thumbnail

네트워크 계층의 역할

OSI 7 Layer의 3계층에 속해요. 패킷 포워딩네트워크 간 라우터를 통해 라우팅을 수행해요. IP주소를 사용해서 통신을 해요. 대표 장비로는 라우터Router 또는 L3라고도 불러요.

라우팅(Routing) - 위키백과

  • 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정이다.
  • 최적의 경로는 주어진 데이터를 가장 짧은 거리로 또는 가장 적은 시간 안에 전송할 수 있는 경로다.
  • 라우팅은 전화 통신망, 전자 정보 통신망, 그리고 교통망 등 여러 종류의 네트워크에서 사용된다.

IP 정의와 구조

IP(Internet Protocol)

네트워크 계층에서 통신하는 주요 규칙프로토콜이에요. 처음엔 전송 제어 프로그램의 '비연결' 데이터그램 서비스로 시작해서 '연결 지향' 서비스로 안정성을 보완했어요. 주로 사용하는 네트워크 모델인 TCP/IP의 기원이에요.

IP 구조


기본적으로 헤더와 페이로드Payload로 구성되요. 여기서 헤더는 목적지와 출발지 IP 주소 등을 포함하고, 페이로드Payload는 전송되는 데이터를 의미해요.

IPv4 헤더 구조

현재 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 패킷의 전체 길이를 바이트 단위로 표시되요 \to 최대 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 : 옵션, 거의 사용되지 않고 테스트 및 디버깅 용도로 사용되고 통신에는 관여하지 않아요

IP 주소 클래스

IPv4 기준 ??:??:??:??으로 4개로 나뉘어져요. ??는 0과 255 사이의 정수, 즉 2322^{32}-bit로 구성되요. 여기서 IP 주소의 하나의 공간 단위를 옥텟Octet이라고 해요.

그리고 IP 주소는 네트워크 크기에 따라 5개의 클래스A, B, C, D, E로 구분해요.

네트워크와 호스트

IP 주소는 네트워크호스트 부분으로 나뉘어요. 네트워크는 브로드캐스트 영역이고 호스트는 개별 단말기 영역이에요. 그림을 예로 들면 아래와 같아요.

서브넷 마스크(Subnet Mask)

IP 주소는 네트워크호스트로 구분한다고 했어요. 하지만 할당된 네트워크 영역을 보다 효율적으로 사용하기 위해 이를 나눌 수 있어요.

하나의 네트워크 영역에도 또 다른 단위로 나눌 수 있다는 의미에요. 바로 이 단위를 서브넷Subnet이라고 해요. 서브넷 마스크Subnet Mask를 통해 네트워크를 서브넷으로 구분할 수 있게 해요.

예제를 통해 어떻게 활용되는지 볼게요.

디폴트 게이트웨이
다른 네트워크로 패킷 전송 시 거쳐야 하는 IP 주소

계산법

서브넷 마스크는 2진수로 1인 부분은 네트워크, 0인 부분은 호스트라는 전제하에 지정해요. AND 연산을 통해 네트워크 주소를 확인해요.

예제 1

  • IP : 209.217.12.11 서브넷마스크 : 255.255.255.0
    • 서브넷 네트워크 \to 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 할당 개수는?
    • 네트워크 주소 \to 8.8.8.64
    • 호스트 0이 6개이므로 262^6=64개를 할당할 수 있어요
    • 8.8.64~127까지가 호스트 범위고 8.8.8.64/26으로 표현해요

서브넷 마스크는 LAN 설계할 때 일반적으로 C 클래스256 단위로 많이 나눠요.

Prefix 표기법

??:??:??:??를 간단하게 표현하는 방법이에요. 네트워크 영역의 비트 1의 개수를 의미해요.

라우터(Router)

네트워크 간의 패킷을 전송해주는 장비에요. 위에 설명했듯이, 라우팅Routing을 통해 적절한 경로를 선택시킬 수 있어요. 네트워킹 수행할 때 패킷에서 목적지 IP 주소를 확인하고 하나 이상의 네트워크 간의 패킷의 경로를 선택하여 전송해요.

동작 방식

정적 라우팅

가장 기본적인 라우팅 방식이에요. 일반적으로 많이 쓰이는, 수동으로 경로를 라우터에 설정하여 패킷을 처리하는 방식이에요. 경로는 라우팅 테이블에 목적지 IP 주소와 라우터를 의미하는 인터페이스 정보를 설정해요.

동적 라우팅

경로 정보가 네트워크 상황에 따라 최적의 경로로 변경되어 패킷을 전송해요. 경로 구성을 위해 몇가지 알아둬야할 개념이 있어요.

동적 라우팅 내부 개념
1. ASAutonomous System : 하나의 라우터 집단 또는 단체 구분 단위
2. EGP : AS 간 연결되는 부분, 대표적인 프로토콜로 BGP가 있어요
3. IGP : AS 내부 프로토콜로 RIP, OPSF가 있어요

동적 라우팅 알고리즘은 목적지까지 최적 경로를 계산하고 라우팅 테이블에 업데이트해요. 이에 대한 알고리즘은 Distance Vector 그리고 Link State Routing으로 구분해요.

Distance Vector

분산해서 업데이트하는 방식이에요. 인접 노드와 교환하는 방식으로 각 라우터들에 의해 최소 비용 경로를 계산해요.

비용을 계산하는 기준은 거리방향이에요. 목적지 IP까지 거리 = hop count(라우터간 거리 + 인터페이스 방향)로 계산해서 경로를 구성해요.

인접 라우터들과 주기적으로 라우팅 테이블을 교환해서 확인하고 관리해요. 인접 라우팅 테이블만 관리하기 때문에 메모리 저장소 절약이 되고 비교적 구성이 간단해요. 하지만 변경이 이뤄지지 않아도 주기적으로 업데이트가 이뤄져 무의미한 트래픽이 발생해요. 라우팅 테이블 업데이트 시간Covergence Time이 느려요. 벨만 포드 알고리즘 기반 알고리즘이에요.

중앙 집중형 업데이트 방식으로 라우팅 테이블을 구성해요. 하나의 Topology 안의 정보를 통해 최소 비용 경로를 계산해요. 대규모 네트워크에 적합하고 이벤트 기반의 라우팅 테이블을 관리해요.

방식을 설명드리자면, 회선의 대역폭을 고려해서 가중치를 부여해요. 그리고 네트워크 Topology 경로를 모든 라우터들에게 전달해요. 이때 라우팅 정보가 변경되는 이벤트 건에 대해서만 전파하기 때문에 결과적으로 트래픽이 감소해요. 전체 네트워크 상의 라우터들의 테이블 정보가 동일하게 유지해요. 각 라우터들은 다익스트라 알고리즘을 기반으로 최상의 경로를 계산해요.

profile
#행복 #도전 #지속성

0개의 댓글