개발자/IOT-m2m

사물인터넷 08. 네트워크 계층 프로토콜 Network Layer Protocol

지구빵집 2021. 12. 8. 10:26
반응형

 

 

 

네트워크는 OSI 레벨 3 계층이며 TCP-IP 모델의 인터넷 계층입니다. 물리적 및 MAC 계층과 마찬가지로 네트워크 계층도 IoT 참조 아키텍처의 인프라 계층의 일부입니다.  OSI 7 Layer 쉽게 외우는 법을 참고하세요.

 

이미지 출처 https://shlee0882.tistory.com/110

 

이 계층은 데이터 패킷의 주소 지정(IP) 및 라우팅(Route)을 담당합니다. 이 계층에서 전송 계층의 데이터그램은 데이터 패킷으로 캡슐화되고 IP 주소 지정을 사용하여 대상으로 전달됩니다. IPv4는 지금까지 네트워크 계층의 표준 프로토콜이었습니다. IPv4는 이미 소진되어 IoT 애플리케이션의 확장성에 대처할 수 없는 제한된 주소 공간을 가지고 있습니다. 새로운 IPv6 표준은 수십억 개의 IoT 장치를 처리할 수 있는 충분한 주소 공간을 수용하도록 개발되었습니다. IoT 시나리오를 고려하여 개발된 IPv6 주소 지정을 기반으로 하는 프로토콜 스택도 많이 있습니다. 아래는 네트워크 Layer에서 담당하는 일을 세부적으로 설명한 것입니다. 

 

이 계층에서 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)이다. 
여기에 사용되는 프로토콜의 종류도 다양하고, 라우팅하는 기술도 다양하다.

이 계층은 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 것이 이 계층의 역할이다. 
이 계층의 대표적인 장비는 라우터 이며, 요즘은 2계층의 장비 중 스위치라는 장비에 라우팅 기능을 장착한 Layer 3 스위치도 있다. (여기서 IP주소를 사용한다.)

네트워크 계층(Network layer)은 여러개의 노드를 거칠때마다 경로를 찾아주는 역할을 하는 계층으로 
다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공한다. 

네트워크 계층은 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking) 등을 수행한다. 라우터가 이 계층에서 동작하고 이 계층에서 동작하는 스위치도 있다. 
데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층이다. 
논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이다.

서브네트의 최상위 계층으로 경로를 설정하고, 청구 정보를 관리한다. 개방형 시스템들의 사이에서 네트워크 연결을 설정, 유지, 해제하는 기능을 부여하고, 전송 계층 사이에 네트워크 서비스 데이터 유닛(NSDU : Network Service Data Unit)을 교환하는 기능을 제공한다.

 

널리 사용되는 네트워크 계층 프로토콜은 다음과 같습니다. 

 

• IPv4

• IPv6

• 6LoWPAN

• 6TiSCH

• 6Lo

• IPv6 over Bluetooth Low Energy

• IPv6 over G.9959

 

IP 버전 4(IPv4) –

 

IPv4는 여전히 컴퓨터 네트워킹에 널리 사용되는 네트워크 계층 프로토콜입니다. IPv4 주소는 점으로 구분된 십진수로 표시됩니다. 주소는 TCP-IP 또는 IoT 네트워크를 고유하게 식별하기 위한 네트워크 주소와 식별된 네트워크 내에서 호스트를 식별하기 위한 호스트 주소의 두 부분으로 나누어진 4개의 옥텟(32비트 숫자)으로 구성됩니다. 서브넷 마스크는 호스트(컴퓨터 또는 IoT 장치)를 고유하게 식별하기 위해 32비트 IP 주소와 함께 사용됩니다. 서브넷 마스크도 32비트 숫자입니다. 서브넷 마스크는 호스트 장치의 정확한 위치를 식별하는 데 도움이 됩니다. 라우터는 IPv4 주소에서 네트워크 주소를 추출하고 경로 테이블과 비교하여 네트워크를 식별하고 데이터 패킷이 먼저 대상 네트워크로 전달됩니다. 그런 다음 서브넷 마스크를 사용하여 호스트를 고유하게 식별하고 데이터 패킷을 호스트 장치로 전달합니다.

 

인터넷 프로토콜 버전 4. 출처 위키백과

 

표준에는 A, B, C, D 및 E의 5가지 IPv4 클래스가 있습니다. IPv4 주소의 클래스는 IP 주소의 첫 번째 옥텟으로 식별됩니다. 클래스 A, B 및 C가 가장 일반적으로 사용됩니다. 클래스 D는 멀티캐스팅용으로, 클래스 E는 실험용으로 예약되어 있습니다.

 

IP 주소 클래스 ( IP Address Class ) 출처: https://blog.daum.net/hellstar/22

 

클래스 A IPv4 주소에서 첫 번째 옥텟은 네트워크를 식별하는 데 사용되고 나머지 세 개의 옥텟은 호스트를 식별하는 데 사용됩니다. 이 주소 지정 클래스는 일반적으로 호스트 장치가 많은 네트워크에서 사용됩니다. 첫 번째 옥텟의 첫 번째 비트는 항상 0으로 설정되므로 첫 번째 옥텟은 1에서 127 사이의 10진수 값을 가질 수 있습니다. 클래스 A 주소의 첫 번째 옥텟 값 127은 루프백 IP 주소 또는 localhost에 대해 예약된 상태로 유지됩니다. 따라서 1에서 126 사이의 값만 계속 사용할 수 있습니다. 클래스 A의 기본 서브넷 마스크는 255.0.0.0입니다. 이 주소 지정 체계를 사용하면 각 네트워크에서 최대 126개의 네트워크와 최대 16777214개의 호스트 장치를 고유하게 식별할 수 있습니다.

 

클래스 B IPv4 주소에서 처음 두 옥텟은 네트워크를 식별하는 데 사용되고 마지막 두 옥텟은 호스트 장치를 식별하는 데 사용됩니다. 클래스 B 주소의 첫 번째 옥텟에 있는 처음 두 비트는 항상 10으로 설정되므로 네트워크 주소의 범위는 128.0.XX에서 191.255.XX일 수 있습니다. 클래스 B 주소의 기본 서브넷 마스크는 255.255.0.0입니다. 이 주소 지정 체계를 사용하면 각 네트워크에서 최대 16384개의 네트워크와 최대 65534개의 호스트 장치를 고유하게 식별할 수 있습니다.

 

클래스 C IPv4 주소에서 처음 세 옥텟은 네트워크를 식별하는 데 사용되고 마지막 옥텟은 호스트 장치를 식별하는 데 사용됩니다. 클래스 C 주소의 첫 번째 옥텟에 있는 처음 세 비트는 항상 110으로 설정되므로 해당 값의 범위는 192에서 223까지입니다. 네트워크 주소의 범위는 192.0.0.X에서 223.255.255.X입니다. 클래스 B 주소의 기본 서브넷 마스크는 255.255.255.0입니다. 이 주소 지정 체계를 사용하면 각 네트워크에서 최대 2097152개의 네트워크와 최대 254개의 호스트 장치를 고유하게 식별할 수 있습니다.

 

클래스 C IPv4 주소가 192.168.8.1이고 서브넷 마스크가 255.255.255.0이라고 가정합니다. 바이너리의 서브넷 마스크는 11111111.11111111.11111111.00000000으로 변환되며, 이는 처음 세 옥텟이 네트워크 주소이고 마지막 옥텟이 호스트 주소임을 의미합니다. 따라서 IP 주소 192.168.8.1에서 192.168.8.0은 네트워크 주소가 되고 000.000.000.1은 호스트 주소가 됩니다.

 

IPv4 표준에는 4,294,967,296개의 주소에 대한 주소 공간만 있습니다. 이 주소 공간은 이미 소진되었으며 수십억 개의 IoT 장치를 수용하도록 확장할 수 없습니다. 그래서 IoT를 위한 주소 공간을 확장하기 위해 IPv6이 도입되었습니다.

 

IPv4와 IPv6의 차이점. 이미지 출처: https://www.juniper.net/kr/ko/research-topics/what-is-ipv4-vs-ipv6.html

 

IP 버전 6(IPv6) –

 

IP 버전 6은 IPv4의 상호 운용 가능한 후속 제품입니다. IPv4의 주소 공간은 대략 43억 개의 장치로 제한됩니다. 2020년까지 200억 개의 IoT 장치가 있을 것입니다. 따라서 미래의 IoT 인프라를 수용할 수 있도록 확장 가능한 IP 주소 지정 표준이 필요했습니다.

 

IPv6주소 구성. 이미지: 한국인터넷정보센터

 

IPv4의 32비트 주소와 비교하여 IPv6에는 128비트 주소가 있습니다. 주소는 8개의 16비트 블록으로 나뉘며 각 블록은 4자리 16진수로 나타낼 수 있습니다. IPv6 주소의 각 블록은 세미콜론으로 구분됩니다. 따라서 일반적인 IPv6 주소는 77AD:45DF:A23D:8:2D:76DF:245:AF와 같습니다. 주소에는 77AD, 45DF, A23D, 8, 2D, 76DF, 245 및 AF의 8개 블록이 있습니다.

 

각 블록은 주소에서 세미콜론으로 구분됩니다.

 

IPv6 표준에는 세 가지 유형의 주소가 있습니다.

 

1) 유니캐스트 주소 – 단일 인터페이스를 식별하기 위한 주소

2) 멀티캐스트 주소 - 서로 다른 노드로 그룹화된 여러 인터페이스를 식별하기 위한 주소

3) 애니캐스트 주소 – 서로 다른 노드에 속한 인터페이스 집합에서 단일 인터페이스를 식별하기 위한 주소

 

IPv6은 128비트 주소를 사용하여 340조 조(38X1038) 장치를 식별하는 데 사용할 수 있으며 이는 지구상의 평방 미터당 약 66760조(667X1021) 장치입니다. 이것은 IoT의 먼 미래에 충분합니다.

 

6LoWPAN –

 

IPv6 저전력 무선 개인 영역 네트워크(6LoWPAN)는 무선 개인 영역 네트워크용 IPv6 표준 기반 네트워크 계층 프로토콜입니다. 물리 계층의 802.15.4 프로토콜을 기반으로 하는 이 표준은 WSN(무선 센서 네트워크)에서 IoT 센서 및 장치의 주소 지정을 위해 개발되었습니다. 이 프로토콜은 모든 장치(제약된 장치 및 대형 장치)와 메모리 부족, 네트워크 손실 등 제한된 기능을 가진 저전력 장치에 인터넷 프로토콜을 구현하기 위한 IPv6의 수정된 버전입니다. IPv6은 250Kbps 전송 데이터 속도의 주파수 범위 2.4GHz에서만 동작합니다.

 

6LoWPAN Protocol Stack

 

6LoWPAN 네트워크는 게이트웨이(WiFi 또는 이더넷)를 통해 인터넷에 연결되며, 게이트웨이는 장치가 인터넷과 통신할 수 있도록 일부 프로토콜 변환 프로세스를 수행합니다. 특히, 적응 계층은 통신 오버헤드를 줄이기 위해 다음 세 가지 최적화를 수행합니다.

 

1) 헤더 압축 – IPv6은 127바이트의 패킷 헤더 길이를 지원합니다. 따라서 6loWPAN은 IPv6의 오버헤드를 줄이기 위해 IPv6 패킷의 헤더 압축을 정의합니다.

2) 단편화 – IPv6의 최소 MTU 크기(최대 전송 단위)는 1280바이트입니다. 반면 IEEE 802.15.4에서 프레임의 최대 크기는 127바이트이다. 따라서 IPv6 패킷을 조각화해야 합니다. 이것은 적응 계층에 의해 수행됩니다.

3) 링크 레이어 포워딩 – 6LoWPAN은 링크 레벨 짧은 주소를 사용하여 링크 레이어에서 수행되는 라우팅 아래 메시도 지원합니다. 이 기능은 6LoWPAN 네트워크 내에서 통신하는 데 사용할 수 있습니다.

 

The 6TiSCH Architecture 이미지 https://www.researchgate.net/figure/The-6TiSCH-Architecture_fig1_327332441

 

6TiSCH –

 

IETF에서 개발한 6TiSCH는 802.15.4 MAC 계층 프로토콜용 IPv6 표준입니다. 이 표준은 IPv6 주소가 IEEE 802.15.4e MAC 계층의 TSCH(Time-Slotted Channel Hopping) 모드를 통과하도록 허용하므로 IPv6 적응 계층이 산업 자동화 및 LLN(저전력 손실 네트워크)에 사용될 수 있습니다.

 

6Lo -

 

IETF 그룹에서 개발한 6Lo(Networks of Resource-Constrained Nodes)는 6LoWPAN 및 6TiSCH에서 제외된 데이터 링크를 위한 IPv6 기반 네트워크 액세스 프로토콜입니다. 예를 들어, BLE, NFC, IEEE 802.11ah 및 기타 많은 MAC 계층 프로토콜을 통한 IPv6 표준화가 이 표준에 포함될 것입니다.

 

IPv6 over Bluetooth Low Energy –

 

이것은 Bluetooth 4.0 MAC 계층 프로토콜에 대한 IPv6 적응 계층 표준입니다. 이 표준은 BLE 스택 내에 L2CAP(Logical Link Control and Adaptation Protocol) 패킷의 분할 및 재조립 기능이 이미 있으므로 6LoWPAN의 단편화 기능을 제외합니다.

 

IPv6 Over Bluetooth Smart 이미지 https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/ipv6-brewed-coffee-over-bluetooth-smart

 

G.9959를 통한 IPv6 –

 

이것은 G.9959 MAC 계층 프로토콜에 대한 IPv6 주소 지정 표준입니다. G.9959는 PAN(Personal Area Network)에서 저전력 장치의 무선 네트워킹을 위해 설계된 네트워크 액세스 프로토콜 스택입니다.

 

따라서 IPv6 및 이를 기반으로 하는 프로토콜 스택은 IoT 애플리케이션의 미래입니다. 미래형 IoT 인프라를 위한 충분한 주소 공간이 있습니다. 다음 자습서에서는 전송 계층 프로토콜에 대해 설명합니다.  

 

아래 이미지는 중요한 개념 같아서 참고삼아 가져옴. IPv6-Brewed Coffee Over Bluetooth Smart 참고

 

 

BLE 6LoWPAN defines two roles for Bluetooth Smart devices: the 6LoWPAN node role and 6LoWPAN edge router role.

 

1. Coffee machine – connected to the nRF51 Development Kit playing the role of BLE 6LowPAN node role and an MQTT client. 2. Raspberry PI – playing the role of BLE 6LoWPAN router providing connectivity to the internet to the coffee machine by routing packets between its Bluetooth and Ethernet network interfaces. 3. PC symbolizing a cloud server. The PC provides the software infrastructure of the demo.

 

여기까지. 모르고 하는 것. ^^

 

 

 

반응형