네트워크 계층은 OSI 7 계층 중 3번째 계층으로,
데이터를 목적지까지 효율적으로 전달하기 위한 라우팅을 담당하는 계층이라고 볼 수 있다.
네트워크 계층에서 중요한 개념으로는 패킷, 라우팅, IP 등의 프로토콜이 있다.
주요 개념
1. 패킷 (Packet)
패킷은 네트워크 계층에서 사용되는 전송을 위한 데이터의 단위이다.
각 패킷은 독립적이며, 데이터와 출발 및 도착지의 IP 주소가 포함된다.
패킷이 전송되는 과정은 라우팅과 밀접한 관련이 있다.
패킷의 구조에 대해선 잠시 뒤에 간단히 알아보자.
2. IP 주소 (Internet Protocol Address)
IP 주소는 네트워크 상에서 장치를 구분하기 위한 고유한 주소이다.
주소 체계론 일반적으로 사용되는 ``IPv4``가 있고 새로 등장한 ``IPv6``가 있다.
IPv4
32비트 주소 체계로, 일반적으로 가장 많이 사용되는 체계이다.
``ZZZ.XXX.YYY.AAA`` 형태로 표현되는 모든 주소가 IPv4 주소 체계이다.
IPv6
128비트 주소 체계로, IPv4의 주소 고갈 문제 해결을 위해 등장했다.
2001:0DB8:0000:0000:0000:0000:1428:57ab
2001:0DB8:0000:0000:0000::1428:57ab
2001:0DB8:0:0:0:0:1428:57ab
2001:0DB8:0::0:1428:57ab
2001:0DB8::1428:57ab
2001:0000:0000:0000:0000:25de:0000:cade
2001:0000:0000:0000:25de:0000:0000:cade
2001:0000:0000:25de:0000:0000:0000:cade
2001:0000:25de:0000:0000:0000:0000:cade
이러한 주소를 본 적 있는가?
이것이 IPv6 주소의 형태이다.
서브넷 마스크라는 개념도 있는데, 이것도 나중에 알아보자.
3. 라우팅 / 라우터 (Router/ing)
라우팅이란 말이 생소할 수도 있다.
게임을 할 때 이런 루트로 가자, 저런 루트로 가자 라는 말을 하거나 들은 적이 있을 것이다.
표기를 달리 해서 그렇지 같은 말이다.
그럼 라우팅의 의미가 길을 찾는 것 또는 그걸 하는 행위라는 것을 쉽게 눈치챌 수 있다.
라우팅
라우팅은 패킷을 목적지까지 보내기 위한 경로를 결정하는 과정이다.
라우터가 라우팅 테이블 등의 정책을 통해 패킷을 효율적으로 보내는 것을 말한다.
라우터
라우터는 네트워크 계층에서 가장 중요한 장비라고 볼 수 있다.
라우터는 라우팅 테이블을 통해 최적의 경고를 설정하고,
이를 통해 패킷을 다른 네트워크로 전달하는 역할을 한다.
``tracert``라는 명령어가 있다.
특정 IP로 가기 위해 거치는 라우터들을 확인할 수 있다.
위 이미지는 한국에서 일본에 있는 게임 서버로 가기 위해 거치는 경로이다.
중간에 싱가폴을 경유하는 것을 볼 수 있는데, 라우팅 정책 설정이 중요함을 보여주는 것 같다.
한국에서 일본을 가는데 싱가폴을 거칠 필요는 없는 거 같은데...
라우터의 중요성을 느끼게 하는 좋은 예시가 아닌가 싶다.
4. 프로토콜
네트워크 계층엔 여러 프로토콜이 있는데, 그중에서 가장 중요한 것은 ``IP``이다.
``IP``는 패킷을 목적지까지 전달하기 위한 주소지정, 데이터 단편화 등을 담당한다.
IP 외에도 ICMP, IGMP, ARP와 같은 프로토콜이 있다.
cmd를 통해서 ``ping``을 보낼 때 사용되는 프로토콜이 ICMP이다.
이렇게 구글에 핑을 보내는 것이 ICMP 패킷을 활용하는 것이다.
와이어샤크에서 확인해 보면 ICMP 패킷이 사용되는 것을 확인할 수 있다.
패킷의 구조
패킷은 데이터 전송을 위한 매우 중요하고 기본적인 요소이다. 중요한 요소인 만큼 그 구조에 대해서도 잘 알고 있어야만 하겠다.
이는 IPv4 패킷의 구조를 나타낸다.
일단 중요한 것 몇 개만 알아보자.
1. Version
말 그대로 버전을 나타낸다. IPv4면 4, 아니면 6인 식.
2. Total Length
패킷의 전체 길이를 나타낸다.
전체 길이를 미리 알고 있다면, 내가 정상적인 패킷을 받았는지 아닌지 판단이 가능해진다.
3. TTL (Time To Live)
패킷이 몇 개의 라우터를 거칠 수 있는지 정해놓은 값이다.
패킷의 수명 이러 고도할 수 있다.
라우터 1개를 거치는 것을 홉이라고 하며,
만약 TTL이 5라고 할 경우 5홉을 거치면 패킷은 수명이 다해 폐기된다.
4. Protocol
전송 계층에서 사용되는 프로토콜의 종류를 나타낸다.
TCP와 UDP가 있다.
5. Source / Destinaion Address
출발지와 목적지의 주소를 나타낸다.
위는 IPv6의 패킷 구조인데, 일단 이렇구나 하고 넘어가자.
IP의 동작 방식
IP는 패킷을 목적지까지 전달하는 기능을 수행하는 비연결형 프로토콜이다.
IP는 데이터 전송의 신뢰성을 보장하지 않고, Best Effort 방식으로 패킷을 전송한다.
신뢰성 보장 등의 역할은 전송 계층에서 TCP가 수행하게 된다.
1. 주소 지정
송수신자의 IP 주소를 확인해 패킷의 전송 경로를 결정한다.
2. 단편화 및 재조립
사이즈가 크면 단편화되어 전송되며, 목적지에서 이를 재조립한다.
3. TTL 설정
무한히 네트워크를 떠돌지 않게 TTL 값을 설정한다.
4. 라우팅
라우팅 테이블을 참조하여 전송까지 하는 것이 IP의 동작이라고 볼 수 있다.
서브넷 마스크
서브넷 마스크란 IP 네트워크에서 네트워크 부분과 호스트 부분을 구분하기 위한 장치이다.
IP 주소를 여러 개로 쪼개어 더 효율적으로 관리하기 위해 등장했다.
1. 개념
IP 주소는 2개의 부분으로 나눌 수 있다.
네트워크 부분 (Network Portion)
네트워크를 식별하는 부분이다.
집 안에 있는 전체 네트워크라고 생각하자.
호스트 부분 (Host Portion)
네트워크 내의 개별 단말을 식별하는 부분이다.
집 안에 여러 컴퓨터가 있으면, 각 컴퓨터가 호스트가 되는 것이다.
서브넷 마스크는 이 두 부분을 구분하기 위해 사용된다.
서브넷 마스크는 32비트로 표현되며, 1은 네트워크, 0은 호스트를 나타낸다.
만약 IP 주소가 ``192.168.0.1``이고, 서브넷 마스크가 ``255.255.255.0``이라면,
255로 차있는 첫 24비트가 네트워크 부분을 의미하게 된다.
따라서 ``192.168.1``이 네트워크 부분이 되고 ``1``이 호스트 부분이 된다.
2. 표현 방법
주로 2가지 방식으로 표현된다.
십진수 표기법
아까 봤던 것처럼 십진수로 표기하는 방법이다.
``255.255.255.0``같이 표기되면 십진수 표현법이다
CIDR 표기법 (Classless Inter-Domain Routing)
네트워크 부분이 차지하는 부분이 얼마나 되는지 주소 뒤에 슬래시(``/``)를 붙여 표현하는 방법이다
``192.168.1.10/24``라고 쓰면, 앞의 24비트가 네트워크 부분이라는 것을 나타낸다.
``/24``는 ``255.255.255.0``와 동일한 마스크를 나타낸다.
3. 목적
IP 주소 절약
하나의 네트워크를 그 안에서 쪼개서 여러 네트워크로 분리할 수 있으면,
안 그래도 부족한 IPv4의 주소를 조금이라도 절약할 수 있다.
네트워크 효율성 제고
트래픽이 분산되는 효과가 있기 때문에 보다 효율적인 통신이 가능하게 된다.
보안 강화
서브넷이 분리되므로 접근 제한에도 용이해진다.
다른 서브넷으로부터의 악의적인 침투를 제한하는 데 사용할 수도 있다.
결론
네트워크 계층은 위와 같은 여러 요소들을 활용하여
네트워크 상에서의 보다 효율적인 통신을 가능케 하는 중요한 역할을 수행한다고 볼 수 있다.
Reference
'Camp > Standard' 카테고리의 다른 글
[OSI 7계층] 응용 계층 (0) | 2024.09.23 |
---|---|
[OSI 7계층] 전송 계층 (0) | 2024.09.06 |
[OSI 7계층] 데이터 링크 계층 (0) | 2024.09.03 |
[OSI 7계층] 물리 계층 (0) | 2024.09.03 |
OSI 7계층이란? (0) | 2024.08.26 |