IP 주소(Internet Protocol Address)는 컴퓨터 네트워크에서 각 장치를 고유하게 식별하는 번호이다. IP 주소는 패킷이 인터넷 상에서 보내고 받는 데 사용된다. 이 주소는 전세계적으로 고유해야 하며, IP 프로토콜을 사용하는 모든 장치에 필요로 한다.
이번 포스트에서는 IPv4에 대해서만 다룬다.
IPv4주소는 전화번호와 같이 국내에서 표준을 정하고 정책을 수립하여 이용자에게 무한히 할당할 수 있는 자원이 아니라 전 세계적으로 관리되는 유한한 자원이다(약 43억개). 일부는 특수한 목적으로 예약되었으며, 주소 규정에 의하여 사용이 제한적이기 때문에 IP주소 할당 정책에 따라 부여하여 사용한다.
IPv4 주소는 32비트로 이루어져 있으며, 보통 네 개의 8비트 블록(옥텟)으로 나뉘며, 각 옥텟은 0부터 255까지의 값을 가질 수 있다.
예: 192.168.0.1
IPv4주소는 인터넷주소자원 관리기관에서 부여한 네트워크 주소와 네트워크 상의 개별 호스트를 식별하기 위하여 네트워크 관리자가 부여한 호스트 주소로 구성.
IPv4주소는 네트워크의 크기나 호스트의 수에 따라 A, B, C, D, E 클래스로 나누어진다. A, B, C 클래스는 일반 사용자에게 부여하는 네트워크 구성용, D 클래스는 멀티캐스트용, E 클래스는 향후 사용을 위하여 예약된 주소다.
IPv4주소는 전화번호와 같이 국내에서 표준을 정하고 정책을 수립하여 이용자에게 무한히 할당할 수 있는 자원이 아니라 전 세계적으로 관리되는 유한한 자원이다(약 43억개). 일부는 특수한 목적으로 예약되었으며, 주소 규정에 의하여 사용이 제한적이기 때문에 IP주소 할당 정책에 따라 부여하여 사용한다.
로컬 네트워크 내부에서 접속한 호스트의 IP 대역을 외부 네트워크와 명확하게 구분할 수 있는 수단을 표준화한 것을 서브넷 마스크(Subnet Mask)라고 한다.
IP 주소 32비트는 는 2가지 영역으로 나뉜다.
LAN(로컬 네트워크)은 한정된 지리적 위치나 특정한 조직 내에서 사용되는 네트워크를 말한다. 이는 일반적으로 가정이나 사무실, 학교, 회사 등에서 사용되며, 해당 지역 안에 있는 장치들끼리 통신할 수 있도록 연결된다. 일반적으로 이더넷(Ethernet)이나 와이파이(Wi-Fi)와 같은 기술을 사용하여 구축된다.
호스트는 각각의 PC 테블릿 스마트폰 따위라고 생각하면 된다.
정리하면, LAN에서는 네트워크 ID가 같아야 하고, 호스트 부분은 달라야 한다는 것이다.
그럼 서브넷 마스크가 어떻게 동작하는걸까? 정답은 AND 연산이다.
예를 들어, 본인 pc의 IPv4주소가 192.1.1.45 / 서브넷 마스크가 255.255.255.0
이면 192.1.1.45 AND 255.255.255.0로 비트 연산을 한다.
255는 이진수로 1111 1111 당연히 192.1.1.x가 그대로 내려오고 45만 0으로 바뀐다.
그럼 192.1.1.이 네트워크 ID 이고 호스트 ID가 45 인걸 알 수 있는것이다.
인터넷의 크기가 커짐에 따라 클래스 단위의 IP주소 할당은 라우팅 테이블을 복잡하게 하고, 인터넷 주소공간을 낭비하는 문제점을 야기한다. 이에 따라 클래스의 제한을 두지 않고 필요한 호스트의 수에 따라 적당한 크기의 IP주소를 할당하는 CIDR 방식이 사용된다.
CIDR은 기존의 클래스 기반 할당 방법 대신 다양한 길이의 전치부를 이용한 할당 방법을 사용한다. 클래스 기반 주소 방식에서는 8, 16, 24로 한정된 전치부를 갖는 반면, CIDR에서는 다양한 전치부의 길이를 지원한다. 이에 따라 작게는 32개의 호스트를 갖는 네트워크부터 50,000여개의 호스트를 갖는 다양한 네트워크를 할당할 수 있다.
예를 들어 “203.255.208.222/23”과 같은 CIDR에 의한 IPv4주소표기 방식은 IP주소를 2진수 표기법으로 변환하였을 때 나타나는 처음 23비트(11001011 1111111 1101000)가 네트워크 주소로 사용되며 나머지 비트(0 11011110)가 /23 네트워크가 가지는 512개의 호스트 중 자신의 호스트를 식별하는 숫자라는 것을 말한다.
게이트웨이는 두 개의 다른 네트워크 간의 통신을 가능하게 하는 네트워크 장치나 소프트웨어 프로그램. 이는 서로 호환되지 않거나 직접 통신할 수 없는 두 네트워크 사이의 연결점 역할을 한다.
라우터는 네트워크에서 데이터 패킷을 전송하는 장치로서, 여러 네트워크 간의 통신을 관리하고 제어하는 역할을 한다. 라우터는 패킷을 수신하여 패킷의 목적지로 이동시키는 동시에, 가장 효율적인 경로를 선택하여 전달한다. 이를 통해 패킷의 전송 지연을 최소화하고 네트워크 성능을 최적화한다.
패킷 전송: 라우터는 수신한 데이터 패킷의 목적지 주소를 확인하고, 최적의 경로를 결정하여 해당 목적지로 패킷을 전송. 이를 위해 라우터는 라우팅 테이블이라는 내부 데이터베이스를 사용.
라우팅: 라우터는 네트워크 간의 트래픽을 관리하고 최적의 경로를 선택하는 데 사용되는 라우팅 알고리즘을 실행. 이를 통해 데이터 패킷이 목적지로 가장 빠르게 도달할 수 있도록 한다.
네트워크 분할: 라우터는 서로 다른 네트워크 간의 통신을 관리하여 네트워크를 분할하고, 서로 다른 네트워크 세그먼트 간의 트래픽 흐름을 제어.
스위치는 네트워크에서 데이터를 전달하는 장치로서, 여러 디바이스 간의 통신을 관리하고 제어하는 역할을 한다. 스위치는 데이터 패킷을 수신하여 패킷의 목적지로 이동시키는 동시에, 네트워크 내의 다양한 디바이스 간의 효율적인 통신을 지원한다.
프레임 전달: 스위치는 데이터 프레임을 수신하여 프레임의 목적지 MAC 주소를 확인하고, 해당 목적지로 프레임을 전송. 이를 위해 스위치는 MAC 주소 테이블이라는 내부 데이터베이스를 사용.
포트 관리: 스위치는 여러 개의 포트를 가지고 있으며, 각 포트를 통해 다양한 디바이스가 네트워크에 연결. 스위치는 포트를 관리하여 특정 포트로 들어오는 데이터를 해당 포트로 전달하고, 충돌을 방지한다.
VLAN 지원: 일부 고급 스위치는 가상 LAN(Virtual LAN)을 지원하여 네트워크를 논리적으로 분할하고, 각 VLAN 간의 통신을 제어.
특징 | 라우터 | 스위치 |
---|---|---|
기능 | 여러 네트워크를 연결하고 그들 사이의 데이터 패킷을 경로 설정 | 하나의 네트워크 내에서 여러 기기를 연결하고 그들 간의 데이터 패킷을 전달 |
OSI 계층 | 레이어 3 네트워크 계층 | 레이어 2 데이터링크 계층 |
주소 지정 | IP 주소를 사용하여 네트워크 간의 패킷을 경로 설정 | MAC 주소를 사용하여 같은 네트워크 내의 특정 기기로 패킷을 전달 |
패킷 전달 | 목적지 IP 주소를 기반으로 패킷을 경로 설정 | 목적지 MAC 주소를 기반으로 패킷을 전달 |
트래픽 제어 | 네트워크 간 트래픽의 트래픽 제어 및 혼잡 관리 | 네트워크 내 트래픽의 트래픽 제어 및 관리 |
네트워크 분할 | 서로 다른 IP 서브넷을 분리하여 네트워크 분할 | 기본적으로 네트워크 분할을 지원하지 않지만 VLAN을 사용하여 분할할 수 있다 |
보안 기능 | 일반적으로 네트워크 보안을 위한 방화벽 기능을 포함 | 일반적으로 고급 보안 기능이 부족하지만 기본적인 접근 제어 목록(ACL)을 지원 |
NAT 지원 | 주로 IP 주소 변환을 위한 네트워크 주소 변환(NAT)을 지원 | 일반적으로 NAT 기능을 지원하지 않는다. |
프로토콜 변환 | 서로 다른 네트워크 유형 간의 프로토콜 변환 | 프로토콜 변환을 수행하지 않는다. |
WAN 연결성 | 주로 외부 네트워크(인터넷 등)에 연결하기 위한 WAN 포트를 제공 | 주로 LAN 내에서 사용되며 일반적으로 직접 외부 네트워크에 연결되지 않는다. |