두 대 이상의 컴퓨터가 논리적 또는 물리적으로 연결되어 서로 통신 가능한 것, 이를 통해 컴퓨터의 자원을 공유하는 것.
네트워크 환경에서 컴퓨터(노드) 간의 통신을 위해 각 컴퓨터에 부여된 네트워크 상의 주소. 즉 네트워킹이 가능한 장비를 식별하는 주소
.
네트워크 상에서 통신을 하기 위해서는 몇 가지 통신규약(Protocol)을 따라야 하는데, 그 규약들 중에는 "네트워킹을 하는 장비들에게 숫자 12개의 고유한 주소를 주어, 그 주소를 통해 서로를 인식하고 통신하도록 하자"는 의미의 규약이 존재한다.
위 규약에서 말하는 숫자 12개의 고유한 주소가 바로 IP address이다.
오늘날 일반적으로 사용되는 IP 주소로, IP version 4의 줄임말이다.
32비트 길이의 식별자로 보통 0~255 사이의 10진수
네 개를 .
으로 구분하여 나타낸다. 따라서 0.0.0.0
부터 255.255.255.255
까지의 IP가 존재하며 이를 통해 최대 약 43억개의 서로 다른 주소를 부여할 수 있다.
하나의 네트워크 안의 IP주소들은 네트워크 영역은 같고, 호스트 IP는 서로 달라야 통신이 가능하다(네트워크 영역과 호스트 영역은 아래에서 설명).
중간의 일부 주소들은 특별한 용도를 위해 예약되어 있다. 예로 127.0.0.1은 localhost로 자기 자신을 나타낸다.
IPv4 주소가 인터넷 사용자수가 급증하며 전세계 공용으로 사용되어 고갈될 위기에 처하자 이를 해결하기 위해 만들어진 것이 바로 IPv6 주소이다.
128비트 크기를 가지고 있으며, 보통 두 자리 혹은 네 자리 16진수
여덟 개를 :
으로 구분하여 나타낸다.
ex) 2001:0230:abcd:ffff:0000:0000:ffff:1111
이를 통해 약 2^128개의 서로 다른 주소를 부여할 수 있다.
IP 주소는 네트워크 영역과 호스트 영역으로 나뉘어 있는데, IP 주소의 클래스
라는 개념을 알아야 이를 구분할 수 있다.
다시 말해 클래스는 하나의 IP 주소에서 네트워크 영역과 호스트 영역을 나누는 방법이자 약속이다.
IP 주소의 클래스는 네트워크 크기에 따른 구분이라고 생각하면 쉽게 이해할 수 있다. 하나의 네트워크에서 몇 개의 호스트 IP까지를 가질 수 있는가에 따라 클래스를 나눌 수 있는데, 이는 네트워크 영역이 커질수록 호스트 영역은 작아지는 반비례 관계를 의미한다.
IP 주소에는 A, B, C, D, E 총 다섯 개의 클래스가 있는데 이 중 A, B, C 클래스에 대해서만 알아볼 것이다. (D, E 클래스는 멀티캐스트용, 연구용으로 사용됨)
A 클래스는 하나의 네트워크가 가질 수 있는 호스트 IP의 수가 가장 많은 클래스이다.
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
이다. 여기에서 127은 제외하고(그것이 약속이니까. 끄덕.) IP 주소 중 1~126으로 시작하는 네트워크는 A 클래스라고 생각할 수 있다.
그리고 A 클래스의 네트워크에서 가질 수 있는 호스트 주소의 개수는 2^24 - 2
개이다. 왜냐하면 모두가 1인 경우에는 브로드캐스트 주소로 사용하고, 모두 0인 경우 네트워크 주소로 사용하기 때문이다.
예를 들어, A 클래스로 13.0.0.0 IP 주소를 할당받았을 때 가능한 호스트 IP의 범위는 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
와 같이 되어 있다. (x는 0 또는 1)
이 범위를 10진수로 표현하면 128.0.0.0 ~ 191.255.255.255
이다.
네트워크 주소의 범위는 10xx xxxx. xxxx xxxx
에서 x의 경우의 수인 2^14
개이고,
호스트 주소의 범위는 xxxx xxxx. xxxx xxxx
에서 x의 경우의 수인 2^16 - 2
개이다.
C 클래스의 IP 주소는 32자리 2진수로 표현했을 때 항상 맨 앞자리의 수가 110
으로, 110x xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
와 같이 되어 있다. (x는 0 또는 1)
이 범위를 10진수로 표현하면 192.0.0.0 ~ 223.255.255.255
이다.
네트워크 주소 범위는 110x xxxx. xxxx xxxx. xxxx xxxx
에서 x의 경우의 수인 2^21
개이고,
호스트 주소의 범위는 xxxx xxxx
에서 x의 경우의 수인 2^8 - 2
개이다.
클래스 | 형식 (네트워크:n, 호스트:h) | 네트워크 영역 | 호스트 영역 |
---|---|---|---|
A | 0nnn nnnn. hhhh hhhh. hhhh hhhh. hhhh hhhh | 8bit (2^7-1개: 127 제외) | 24bit (2^24-2개) |
B | 10nn nnnn. nnnn nnnn. hhhh hhhh. hhhh hhhh | 16bit (2^14개) | 16bit (2^16-2개) |
C | 110n nnnn. nnnn nnnn. nnnn nnnn. hhhh hhhh | 24bit (2^21개) | 8bit (2^8-1개) |
[Network] IP주소 클래스(A,B,C class)란?
https://limkydev.tistory.com/168
IP address 란?
https://velog.io/@hidaehyunlee/IP-address란
[Network] 네트워크 주소와 호스트 주소, 그리고 서브넷 마스크
http://blog.naver.com/PostView.nhn?blogId=no1rogue&logNo=30095809969