두 대 이상의 컴퓨터가 논리적 또는 물리적으로 연결되어 통신이 가능한 상태.
일방적으로 규모에 따른 네트워크 종류는 아래와 같다.
PAN ( Personal Area Network ) : 가장 작은 규모의 네트워크
LAN ( Local Area Network ) : 근거리 영역 네트워크
근거리 통신 망을 의미하며 지역적 좁은 범위 내에서 고속 통신이 가능한 통신망.
Man ( Metropolitan Area Network ) : 대도시 영역 네트워크
Wan ( Wide Area Network ) : 광대역 네트워크
Wild Area Network 로써 광대역 통신망으로써 LAN 보다 넓은 지역을 나타내며 지역과 지역, 지방과 지방, 나라와 나라 또는 대륙과 대륙을 연결하는 통신망.
네트워킹이 가능한 장비를 식별
하는 주소. 네트워크 상에서 통신을 하기 위해서는 몇 가지 통신규약(protocol)
을 따라야 하는데, 그런 규약들 중에는 "네트워킹을 하는 장비들에게 숫자 12개의 고유한 주소
를 주어, 그 주소를 통해 서로를 인식하고 통신하도록 하자" 라는 의미의 규약이 존재한다.
IP version 4 주소, 줄여서 IPv4 주소는 오늘날 일반적으로 사용하는 IP 주소이다. 이 주소의 범위는 32비트
로 보통 0~255 사이의 10진수 넷
을 쓰고 .
으로 구분하여 나타낸다. 따라서 0.0.0.0
부터 255.255.255.255
까지가 된다. 이론적으로 42억9496만7296개의 IP가 존재한다. 중간의 일부 번호들은 특별한 용도를 위해 예약되어 있다. 이를테면 127.0.0.1은 localhost(로컬 호스트)로 자기 자신을 가리킨다.
IP address 라는 개념이 처음 생겼을 당시에는 지금처럼 네트워킹이 가능한 장비의 종류가 다양하지 않았지만, 기술이 발전하고 한 사람이 가지는 네트워킹 가능한 단말기의 수가 2 ~ 3개가 되어버리자 약 IPv4 주소의 수가 부족해진다. 그래서 등장한 것이 IPv6이다. IPv6에서는 주소 길이를 128비트
로 늘려 사용가능한 주소의 갯수가 2의 128제곱개 정도 된다. 약 43억x43억x43억x43억개... IPv6 주소는 보통 두 자리 16진수 여덟 개
를 쓰고 각각을 :
기호로 구분한다.
~$ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 1500
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0xfe<compat,link,site,host>
loop (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wifi0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.30.1.12 netmask 255.255.255.0 broadcast 172.30.1.255
inet6 fe80::f926:d2cb:5006:15da prefixlen 64 scopeid 0xfd<compat,link,site,host>
ether 10:02:b5:12:0e:e4 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
지금 나는 홍대의 한 카페에서 이 글을 정리중인데, inet(IPv4) 172.30.1.12
에서 내 IP주소를 확인할 수 있다. 여기서, 네트워크 주소는 172.30
까지고, 1.12
는 나만의 호스트 주소이다. 공통적인 부분(중복이 있는)은 네트워크 주소이고, 식별할 수 있는 부분(중복이 없고 유일무이한)은 호스트 주소라고 할 수 있다. 하나의 네트워크 안에서 IP는 네트워크 영역은 같아야하고, 호스트 영역은 서로 달라야 통신이 가능하다. 네트워크 주소와 호스트 주소의 범위를 어떻게 구분하는지, 아래의 클래스 개념을 알아보자.
IP주소에는 클래스
라는 개념이 있고 이 클래스의 개념을 알아야 어디까지가 네트워크 영역이고 호스트 영역인지 알 수 있다. 즉, 다시말해 클래스는 하나의 IP주소에서 네트워크 영역과 호스트 영역을 나누는 방법이자, 약속이다. IP주소를 3개의 클래스로 나누는 이유는 네트워크 크기에 따른 구분이라 생각하면 쉽다. 하나의 네트워크에서 몇 개의 호스트 IP까지 가질 수 있는가에 따라서 클래스를 나눌 수 있다. 즉, 네트워크 범위가 커질수록 호스트 주소 범위는 작아지는 반비례 관계이다.
IP주소 클래스는 총 5개가 있다. A클래스, B클래스, C클래스, D클래스 E클래스. 하지만 보통 A, B, C 3개 정도만 알고있으면 충분하다. (나머지 D, E 클래스는 멀티캐스트용, 연구용으로 사용)
먼저 A클래스는 하나의 네트워크가 가질 수 있는 호스트 수가 제일 많은 클래스이다. IP주소를 32자리 2진수로 표현했을때, 맨 앞자리 수가 항상 0
인 경우가 바로 A클래스이다. 즉 0xxx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
와 같이 되어있다. x 는 0 또는 1. 이 범위를 10진수로 표현하면 0.0.0.0 ~ 127.255.255.255
이다.
그런데 A클래스에서 네트워트 주소는 1.0.0.0 ~ 126.0.0.0
까지로 규정되어있다. 약속이다. 그래서 IP주소 중 1부터 126으로 시작하는 네트워크는 A클래스라고 생각하면 된다.
그리고 호스트 주소가 가질 수 있는 갯수는 (2^24) - 2
개 이다. (-2 이유는 모두가 1인경우 브로드캐스트 주소로 사용하고 모두 0인 경우엔 네트워크 주소로 사용하기 때문) 예를 들어 A클래스로 13.0.0.0 네트워크 주소를 할당 받았을 때, 가능한 호스트 IP를 10진수로 나타내면 13.0.0.0 ~ 13.255.255.255 가 될 것이다. 하지만 여기서 13.0.0.0 은 네트워크 주소를 표현하기 위해서 호스트IP로 사용하면 안된다. 또, 13.255.255.255 역시 브로드캐스트 주소로 사용하기 때문에 호스트 IP로 사용하면 안된다. 따라서 (2^24) - 2 를 해주는 것이다.
B클래스의 IP주소를 32자리 2진수로 표현했을때, 맨 앞자리 수는 항상 10
이여야 한다. 즉 10xx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
. 이 범위를 10진수로 표현하면 128.0.0.0 ~ 191.255.255.255
.
네트워크 주소 범위는 10xx xxxx. xxxx xxxx 에서 x들이 가질 수 있는 경우의 수, 2^14
개 이고,
호스트 주소 범위는 xxxx xxxx. xxxx xxxx 에서 x들의 경우의 수인 (2^16) - 2
개 이다.
내가 지금 공부를 하고 있는 카페의 IP주소는 172.30.1.12
니까, 이 IP는 B클래스 인 것이다. B클래스임을 알게 되면 네트워크 부분과 호스트 부분을 나눌 수 있다. 각각 172.30 과 1.12.
C클래스의 IP주소는 2진수로 표현했을 때 반드시 110
으로 시작한다. 즉 110x xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
. 이 범위를 10진수로 표현하면 192.0.0.0 ~ 223.255.255.255
.
네트워크 범위는 110x xxxx. xxxx xxxx. xxxx xxxx 에서 x들이 가질 수 있는 경우의 수, 2^21
개 이고,
호스트 주소 범위는 xxxx xxxx 에서 x들이 가질 수 있는 경우의 수, (2^8 )-2
개 이다.
클래스 | 첫 고정 비트 | 네트워크주소영역 | 호스트주소영역 |
---|---|---|---|
A class | 0 | 8bit(2^7개) | 24bit(2^24-2개) |
B class | 10 | 16bit(2^14개) | 16bit(2^16-2개) |
C class | 110 | 24bit(2^21개) | 8bit(2^8-2개) |
잘 읽었습니다 👍 내용이 너무 좋아서 출처 남기고 블로그에 인용해도 될까요?