네트워크 계층의 역할
TCP/IP 통신의 핵심을 담당하는 네트워크 계층의 주요 역할에 대해 소개합니다.
네트워크 계층의 위치
네트워크 계층은 다른 계층과 달리 주된 프로토콜이 IP 하나밖에 없습니다.
통신 방법의 차이를 흡수
네트워크 계층에는 통신 방법의 차이를 흡수하는 기능이 있습니다. 이에 의해 통신 방법이 다른 네트워크 상에 있는 컴퓨터끼리도 주고받기가 가능하게 되는 것입니다.
통신 상대를 지정
네트워크 계층은 '누가 누구에게 전달할지'라는 통신에 있어서 가장 중요한 정보를 다루고 있습니다. 통신 상대를 정하기 위해서 네트워크상에 존재하는 모든 기기에는 고유의 주소 같은 것이 할당되어 있습니다.
목적지까지의 경로를 결정
목적지 컴퓨터까지의 경로는 하나만 있다고 한정할 수 없습니다. 목적지까지의 경로가 여러 개 있는 경우, 적절한 경로를 사용하여 전달하는 것도 네트워크 계층의 역할입니다.
IP 프로토콜
네트워크 계층의 중심이 되는 프로토콜인 IP의 주요 기능을 소개합니다.
데이터 링크 계층에 전달
송신측에서는 트랜스포트 계층으로부터 데이터를 받아서 목적지를 특정하는 번호(IP 주소) 등을 기록한 IP 헤더를 붙여서 데이터 링크측에 전달합니다. 데이터에 IP 헤더를 붙인 것을 IP 데이터그램이라고 합니다
Best Effort 방식으로 데이터 전송
IP 데이터 전송은 Best Effort 방식입니다. Best Effort란 '노력은 하지만 결과는 보장하지 않는다'라는 뜻입니다. 헤더가 깨지지 않았는지 확인하거나 목적지의 주소지가 존재하는지 아닌지 정도의 판단 처리는 하지만, 재전송 처리는 수행하지 않습니다.
최적의 경로로 보내기
IP에는 목적지까지의 경로나 통신 상태를 보고 지금 가장 빨리 목적지에 전달하려면 어떤 경로가 좋은지를 판단해서 보내는 기능이 있습니다.
트랜스포트 계층에 전달
수신측에서는 IP 헤더에 쓰여진 목적지의 주소(IP 주소)를 확인하고 자기 앞으로 온 것만 받습니다. 그리고 트랜스포트 계층의 지정된 프로토콜에 전달합니다.
IP 주소(IPv4)
IP 주소란 이름 그대로 IP가 목적지를 판단하기 위해 사용하는 '컴퓨터의 주소'입니다.
IP 주소와 IPv4
IP 주소는 네트워크상의 기기르 구별하기 위한 번호입니다. 기존에 사용하던 IPv4와 새로운 IPv6가 있습니다. IPv4는 32자리 비트열로 이루어지며, 기본적으로는 당므과 같은 구조로 되어 있습니다.
네트워크부(네트워크 고유의 번호가 들어갑니다) + 호스트부(각각의 컴퓨터를 나타내는 번호가 들어갑니다. 기본적으로 자유롭게 할당할 수 있지만 모두 0이거나 1은 제외입니다.)
완전히 똑같은 주소를 갖고 있는 컴퓨터가 여러 대 존재한다면 '컴퓨터를 지정한다'는 목적을 이룰 수 없습니다. 그래서 번호의 중복을 피하기 위해 ICANN이라는 기관이 중심이 되어 전 세계의 IP 주소를 관리하고 있습니다.
네트워크부와 호스트부의 경계
IP 주소만으로는 네트워크부와 호스트부의 경계를 알 수 없습니다. 그래서 서브넷 마스크(또는 넷마스크)라는 값을 사용하여 경계를 나타냅니다.
IP 주소(IPv6)
IPv4로는 IP 주소가 고갈될 우려가 있어 IPv6가 도입되었고, 대응이 진행되고 있습니다.
IPv6
IPv4로 나타낼 수 있는 IP 주소는 약 43억 개입니다. 언뜻 충분해 보이지만 인터넷의 보급에 따라 그걸로도 부족해지기 시작했습니다. 그 해결책으로서 생각해낸것이 IPv6이고 128비트로 이루어져 있습니다.
IPv4 | IPv6 | |
주소의 길이 | 32비트 | 128비트 |
주소의 개수 | 2^32 | 2^128 |
표기 방법 | 10진법 | 16진법 |
암호화 기능 | 옵션 | 기본 |
멀티캐스트 | 비대응 | 대응 |
IPv6 표기 방법
IPv6는 주솟갑을 16비트마다 ':'으로 구분하고, 16진수로 표기합니다.
생략 규칙
IPv6는 생략해서 짧게 표기할 수도 있습니다. 생략 규칙은 다음과 같습니다.
- 필드 선두부터 연속되는 '0'은 생략할 수 있다
- 0인 필드가 연속되는 경우는 0을 생략할 수 있다.
서브넷 마스크 표기
IPv6도 IPv4와 같은 표기 방법으로 서브넷 마스크를 나타낼 수 있습니다. 단, 일반적으로 '/64'가 사용됩니다.
목적지까지 길 안내
대부분의 통신 서비스에서는 송신측에서 수신측 컴퓨터에 도달하기까지 여러 개의 네트워크를 경유합니다.
라우터
라우터는 네트워크간을 연결해서 패킷이 목적지에 전달될 때까지 길 안내를 하는 기기입니다. 라우터의 네트워크 계층에서는 IP 헤더에 기록된 목적지의 IP 주소를 보고 그 다음 전송처를 결정합니다.
통신 세계에서는 컴퓨터 사이의 거리를 통과한 라우터의 개수로 나타냅니다. 이때 사용하는 단위를 홉이라고 합니다.
수신측의 처리
수신측에서의 처리와 IP 헤더의 내용을 소개합니다.
트랜스포트 계층에 전달
수신측의 네트워크 계층에서는 IP 헤더를 보고 데이터가 깨졌는지, 자기 앞으로 온 것인지를 확인합니다. 그리고 트랜스포트 계층의 지정된 프로토콜로 전달합니다.
네트워크 계층의 신뢰성
신뢰성이 떨어지는 IP를 보조하기 위해 네트워크 계층에는 ICMP라는 프로토콜이 있습니다.
IP는 비커넥션형
IP는 UDP와 똑같이 비커넥션형 통신을 수행합니다. 그래서 데이터가 상대에게 전달됐는지 아닌지는 전혀 관여하지 않습니다.
IP를 보조하는 ICMP
그래서 네트워크 계층에는 신뢰성 면에서 IP를 도와주는 프로토콜인 ICMP가 있습니다. ICMP는 IP 데이터그램의 통신 상태 등을 필요에 맞게 송신측에 알려줍니다.
ICMP 헤더
ICMP 헤더의 기본적인 구성은 다음과 같습니다. 이 이외의 헤더 항목 및 데이터의 내용은 메시지에 따라 달라집니다.
- 타입(8 비트) : 메시지의 종류를 나타내는 숫자입니다.
- 코드(8 비트) : 오류의 원인 등을 나타내는 숫자입니다.
- 체크섬(16 비트) : 데이터가 무사한지 아닌지를 확인하기 위한 값입니다.
접속 상태를 조사하는 명령인 'ping'이나 목적지까지의 경로를 조사하는 명령인 'tracert'는 ICMP 메시지를 사용해서 결과를 반환합니다.
IP 주소의 설정
IP 주소를 설정할 때는 고정해서 할당하는 방법과 필요할 때만 자동으로 할당하는 방법이 있습니다.
고정 IP 주소 할당
각 컴퓨터에 고정 IP 주소를 할당하는 경우, 개별적으로 설정해야 합니다.
자동으로 할당
필요할 때만 자동으로 IP 주소를 할당하는 프로토콜 DHCP를 사용하는 방법도 있습니다. 그러면 네트워크에 접속함과 동시에 필요한 설정이 자동으로 수행됩니다.
- DHCP 클라이언트 : DHCP 서버에게 IP 주소를 요청하고, 일시적으로 할당받습니다.
- DHCP 서버 : 클라이언트의 요청에 대한 응답으로 IP 주소를 빌려주거나 서브넷 마스크의 설정 정보를 제공합니다.
DHCP의 구조
DHCP 클라이언트는 요청을 할 때 수신 IP 주소를 '255.255.255.255'로 만듭니다. 이것은 브로드캐스트 주소라고 하며, 동일한 LAN 안의 모든 기기에 송신하기 위한 특수한 IP 주소입니다. 이 요청에 대해서는 DHCP 서버만 응답합니다.
IP 주소를 부여받은 DHCP 클라이언트는 다시 '255.255.255.255'라는 IP 주소 앞으로 확인 메세지를 보냅니다. 이에 대해 DHCP 서버가 응답하면 주고받기가 완료되는 것 입니다.
네트워크의 세분화
회사 내부나 비교적 큰 네트워크 등을 관리할 때 편리한 장치인 서브넷을 소개합니다.
네트워크 세분화하기
예를 들어, '127.15.4.0~127.15.4.255/24'라는 IP 주소를 사용하는 네트워크가 있다면 '127.15.4'라는 네트워크 주소를 갖고 있는 하나의 네트워크에 254대의 기기를 접속할 수 있습니다.
하지만 실제로 이런 대규모의 네트워크가 필요한 경우가 많지 않습니다. 그래서 서브넷이라는 장치를 사용하여 가상으로 작은 네트워크들을 만들어 네트워크 모음으로 처리할 수 있게 하고 있습니다.
회사 등 네트워크의 규모가 큰 경우, 서브넷을 사용하여 부서나 계층 단위로 세분화하면 관리하기 쉬워집니다.
서브넷 만들기
서브넷을 만들려면 서브넷 마스크를 사용합니다. 서브넷 마스크를 사용하여 가상으로 네트워크부를 늘임으로써 다음과 같은 일이 가능합니다.
LAN 내에서의 주소
사내 LAN 등 한정된 네트워크 내에서만 사용할 수 있는 IP 주소도 있습니다.
사설 주소
회사 내나 가정 내 등 한정된 네트워크 안에서만 유효한 IP 주소를 사설 주소라고 합니다. 사설 주소는 네트워크가 다르면 중복되어도 문제가 없습니다. 사설 주소를 사용하면 IP 주소를 절약할 수 있습니다.
사설 주소는 다음과 같은 범위 내에서 선택하도록 정해져 있습니다.
- 10.0.0.0~10.255.255.255
- 172.16.0.0~172.31.255.255
- 192.168.0.0~192.168.255.255
사설 주소를 공인 주소로
사설 주소 그대로는 인터넷에 접속할 수 없으므로 다음과 같은 장치를 사용합니다. 대부분의 라우터에는 이런 기능이 들어있습니다
.
NAT
사설 주소와 공인 주소를 일대일로 대응시켜 변환하는 장치입니다. 확보하고 있는 공인 주소의 개수 이내라면 여러 개의 컴퓨터를 동시에 인터넷에 접속시킬 수 있습니다.
NAPT(IP 매스커레이드)
하나의 공인 주소를 사용하여 여러 대의 컴퓨터를 동시에 접속할 수 있는 장치입니다. 포트 번호에 의해 각각의 컴퓨터를 식별하므로 같은 공인 주소를 동시에 사용할 수 있습니다.
이름 해석
숫자로 된 IP 주소는 다루기 어려우므로 문자로 대신할 수 있는 메커니즘이 개발됐습니다. IP 주소와 관련된 지식으로서 알아 둡시다.
IP 주소와 도메인
IP 주소와 도메인명을 처리하는 서비스를 DNS라고 합니다.
클라이언트와 직접 주고받기를 하는 것은 지역 네임 서버입니다. 하지만 몇 십억 개나 되는 방대한 IP 주소를 한 대의 기기에서 관리할 수는 없으므로, 실제로는 여러 개의 네임 서버와 연계하여 서비스를 제공하고 있습니다.
IP 주소를 알 때까지
지역 네임 서버는 자신의 대응표에 없는 도메인을 물어보면, 먼저 DNS를 총괄하는 루트 서버에게 조회합니다. 예를 들어 'www.cyber.co.kr'의 IP 주소를 조회하는 경우의 흐름을 살펴봅시다.
- 지역 네임 서버로부터 조회 요청을 받아 'kr'을 담당하는 네임 서버가 있는 곳을 가르쳐줍니다.
- 지역 네임 서버로부터 조회 요청을 받아 'co.kr'을 담당하는 네임 서버가 있는 곳을 가르쳐줍니다.
- 지역 네임 서버로부터 조회 요청을 받아 'cyber.co.kr'을 담당하는 네임 서버가 있는 곳을 가르쳐줍니다.
- 지역 네임 서버로부터 조회 요청을 받아 'www.cyber.co.kr'을 담당하는 IP 주소를 가르쳐줍니다.
이렇게 여러 개의 네임 서버를 따라가서 최종적으로 목적하는 도메인을 관리하고 있는 네임 서버까지 도달해서 IP 주소를 조사합니다. 때문에 상위의 네임 서버에는 하나 아래 계층에 있는 네임 서버의 IP 주소가 등록되어 있습니다.
'네트워크' 카테고리의 다른 글
[TCP/IP가 보이는 그림책] 7. 라우팅 (0) | 2025.04.16 |
---|---|
[TCP/IP가 보이는 그림책] 6. 데이터 링크 계층과 물리 계층 (0) | 2025.04.16 |
[TCP/IP가 보이는 그림책] 4. 트랜스포트 계층 (0) | 2025.04.14 |
[TCP/IP가 보이는 그림책] 3. 애플리케이션 계층 (0) | 2025.04.14 |
[TCP/IP가 보이는 그림책] 2. 통신 서비스와 프로토콜 (0) | 2025.04.13 |