[광고 누르면 오늘의 행운 상승!!]
아이피 : 송신 호스트와 수신 호스트간의 패킷교환네트워크에서 정보를 주고받는데 사용하는 정보 위주의 규악이다. 패킷 분할 및 조립 기능을 담당한다.
아이피 주소 : TCP/IP통신을 하기 위해서 서로를 구분할 주소가 필요하기 때문에 만든 주소이다.
인터넷 프로토콜(IP, Internet Protocol)은 송신 호스트와 수신 호스트가 패킷 교환 네트워크(패킷 스위칭 네트워크, Packet Switching Network)에서 정보를 주고받는 데 사용하는 정보 위주의 규약(프로토콜, Protocol)이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다. 줄여서 아이피(IP)라고도 한다.
IP의 정보는 패킷 혹은 데이터그램이라고 하는 덩어리로 나뉘어 전송된다. IP에서는 이전에 통신한 적 없는 호스트에 패킷을 보낼 때 경로 설정이 필요없다.
IP는 비신뢰성(unreliability)과 비연결성(connectionlessness)이 특징이다. 비신뢰성은 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않는다는 뜻이다. 예를 들어 전송과정에서 패킷이 손상될 수도 있고, 같은 호스트에서 전송한 패킷의 순서가 뒤죽박죽이 될 수도 있고, 같은 패킷이 두 번 전송될 수도 있으며, 아예 패킷이 사라질 수도 있다. 패킷 전송과 정확한 순서를 보장하려면 TCP 프로토콜과 같은 IP의 상위 프로토콜을 이용해야 한다.
현재 인터넷에서 사용하는 표준 프로토콜은 인터넷 프로토콜의 4번째 판인 IPv4이다. 그러나 IPv4는 주소공간 고갈 문제를 겪고 있어 조만간 6번째 판인 IPv6가 대중화될 것으로 보인다. 마이크로소프트 윈도 7, OS X, 리눅스 등 현재 널리 쓰이고 있는 대부분의 운영 체제는 IPv6 프로토콜을 지원한다.
TCP/IP라는 프로토콜을 만들 때 이 프로토콜을 사용하는 모든 장비들을 구분해주기 위해서 만들어 낸 것이 IP주소이다. 서로간 통신을 위해서는 이들이 구분할 주소가 필요하다. 원래 IP주소를 만들 당시에는 이렇게 인터넷이 많이 보편화 될 것이란 생각을 못했다. 요즘은 공인 IP 주소를 따내기가 그리 쉽지 않은데, 그것은 공인 IP 주소의 한계 때문이다.
IP주소는 이진수 32자리로 되어있다 즉
0000 0000.0000 0000.0000 0000.0000 0000에서
1111 1111.1111 1111.1111 1111.1111 1111까지이다.
지정 가능한 전체 IP 주소의 개수는 약 2의 32승 개(2^32) 정도밖에 되지 않는다는 것이다. 42억9천개의 주소중 못쓰는 주소를 제외한다면 많지 않은 숫자이다. 그런데 이 IP주소를 이제 거의 다 나눠줘서 더 이상 나눠줄 게 별로 남지 않았다고 한다. 6%정도.
중간중간 점을 찍은 이유는 약속이기 때문이다. 구분하기 쉽도록 8자리마다 하나씩 점을 찍기로한 것이다. 2진수인 IP주소를 그대로 사용하면 너무 어려우므로 좀 더 익숙한 십진수 방식으로 다시 고쳐서 사용하는 것이다.(하지만 네트워크 엔지니어는 더 복잡해진다.) 이진수는 8자리마다 점을 찍기 때문에 8개를 묶어서 옥텟(Octet)이라고 부른다. 그래서 IP주소는 총 4개의 옥텟으로 나뉘는 것이다. 4개의 옥탯이니 32비트가 된다.
우리가 보통 쓰는 라우터에 배정해야 하는 IP주소는 두 개인데 하나는 이더넷 인터페이스용이고 또 하나는 시리얼 인터페이스용이다.(이건 네트워크 구성에 따라 달라질 수 있다.) 이더넷용은 우리가 부여받은 번호 중에 하나를 쓰는 것이고, 시리얼은 우리가 접속하는 ISP업체에 따라 다르므로 인터넷 제공업체에 문의해서 써야 되는 것이다.
IP주소는 네트워크 부분과 호스트 부분으로 나누어져 있다. 따라서 어떤 네트워크 에서든지 하나의 네트워크에서는 네트워크 부분은 모두 같아야 하고 호스트 부분은 모두 달라야 정상적인 통신이 일어난다는 것이다. 만약 한 사무실에서 50대의 PC가 한 라우터를 통해 연결되어 있다면 이 PC들은 같은 네트워크 상에 있다고 말한다. 따라서 이 PC들의 IP주소 중에서 네트워크 부분은 모두 같아야 한다. 그래야 라우터를 거치지 않고 서로 통신하는 것이 가능하다. 하지만 호스트 부분은 서로 모두 달라야 한다. 만약 호스트가 같으면 두 PC는 서로 IP주소 충돌이 생겨서 통신이 불가능하게 된다.
예를 들어 IP주소가 203.240.100.1에서 203.240.100.255까지라면 이 중에서 203.240.100부분은 네트워크 부분이다. 또 하나 호스트 부분은 마지막 옥텟이 된다 따라서 1에서 255까지가 호스트부분이 되는 것이다.
IP주소의 Class는 5개의 클래스로 구분을 해 놓았다. IP주소의 클래스는 A부터 B,C,D,E로 구분된다. 이렇게 클래스에 따라서 어디까지가 네트워크 부분이고, 어디까지가 호스트 부분인지가 나뉜다. 그럼 왜 이렇게 클래스를 나누었을까? IP주소를 3개의 클래스로 나눈 건 바로 네트워크의 크기에 따른 구분이라고 생각하면 된다. 하나의 네트워크가 호스트의 수를 몇 개까지 가질 수 있는가에 따라서 클래스가 나뉜다.
클래스 A
클래스 A는 하나의 네트워크가 가질 수 있는 호스트 수가 가장 많은 클래스이다. IP주소는 2진수이기 때문에 클래스 A는 32개의 이진수 중에서 맨 앞쪽 하나가 항상 0으로 시작되는 것이다.
즉 0xxx xxxx.xxxx xxxx.xxxx xxxx.xxxx xxxx와 같이 32개의 이진수 중에서 맨 앞 하나는 꼭 0이 나와야 되고 나머지는 0과 1 중 아무거나 나와도 된다.
위의 조건을 만족하는 가장 작은 수는 전부 0일때 이다 즉 0000 0000.0000 0000.0000 0000.0000 0000 십진수로는 0.0.0.0이 된다. 위 조건을 만족하는 가장 큰 수는 전부 1일 때 이다. 즉 0111 1111.1111 1111.1111 1111.1111 1111이다. 맨 앞의 0은 꼭 써야 하니까 그 다음부터 1을 썼다. 이 숫자를 십진수로 만들면 127.255.255.255가 된다.
여기서 또 한 가지 클래스 A의 중요한 규칙이 나온다. 클래스 A의 경우는 앞의 8비트(즉 1개의 옥텟, 맨 앞의 십진수 부분)가 네트워크 부분을 나타내고, 나머지 24비트(즉 3개의 옥텟, 나머지 3개의 십진수)가 호스트 부분을 나타낸다는 약속이 있다.
그래서 클래스 A는 가장 작은 네트워크1,0,0,0(0,0,0,0은 제외된다)에서 가장 큰 네트워크 126.0.0.0(127은 제외된다. 또 네트크를 나타낼 때는 호스트 부분은 모두 0으로 쓴다.)까지로 규정된다.
IP주소 중에서 1부터 126으로 시작하는 네트워크는 클래스 A이다. 그리고 하나의 클래스A가 가질 수 있는 호스트의 수는 2의 24승 빼기 2개(모두 0인 경우는 네트워크 자체를 나타내기 떄문에 제외되고, 모두 1인 경우는 브로드캐스트 주소이기 때문에 제외), 즉 16.777.214개이다.
즉 만약 InterNIC(공인 IP주소를 분배 관리하는 곳)으로부터 클래스 A 주소로 13.0.0.0 네트워크를 받았다고 가정하면 클래스 A는 맨 앞에 하나의 옥텟만 네트워크 부분이고 나머지 3개의 옥텟은 호스트 부분이기 때문에 IP주소를 분배하는 InterNIC에서는 이처럼 앞의 13만 주게된다. 뒤에 3개의 옥텟, 즉 호스트 부분은 마음대로 정할 수 있다는 것이다.
따라서 13.0.0.0 네트워크 하나를 받았을 때 사용하는 호스트는 몇대인가를 계산해 보려면 13.0.0.0~ 13.255.255.255까지 몇 개의 수가 들어가는가를 알아보면 된다. 옥텟 한 자리가 2의 8승(256) 개 만큼의 수이기 떄문에 호스트 전체 자리인 옥텟 3자리로 나타낼 수 있는 전체 숫자는 2의 24승 개만큼 된다. (호스트 자릿수가 2진수 24자리이기 때문) 그런데 호스트가 전부 0인 경우, 즉 13.0.0.0인 경우는 호스트 주소가 아니라 워크 전체를 나타내기 때문에 사용하지 않고, 또 호스트가 전부 1인 경우, 즉 13.1111 1111.1111 1111.1111(즉 13.255.255.255)인 경우는 13 네트워크 전체에 있는 모든 호스트들에게 전송할 때 사용하는 브로드캐스트 주소이기 때문에 호스트 주소로 사용하지 않는다. 라서 13 네트워크 가능한 호스트 수는 2의 24승에서 2를 뺸 수가 되는데, 이게 바로 16,777,214이다.
클래스 B
맨 앞이 10(이진수)로 시작된다. 뒤에는 어떤 숫자가 와도 상관 없다 즉 10xx xxxx.xxxx xxxx.xxxx xxxx.xxxx xxxx이다. 따라서 맨 앞에는 10이 반드시 나와야 하고 나머지 30개의 이진수는 0이나 1중 어떤 수가 와도 된다. 이 조건에 맞는 가장 작은 수와 가장 큰 수는 1000 0000.0000 0000.0000 0000.0000 0000로 십진수로는 128.0.0.0이다. 그럼 가장 큰 숫자는 1011 1111.1111 1111.1111 1111.1111 1111로 191.255.255.255이다. 클래스 B의 경우는 앞의 16비트 (즉 옥텟 2개, 맨 앞의 두 자리 십진수 부분)가 네트워크 부분을 나타내고, 나머지 16비트(즉 2개의 옥텟, 나머지 2개의 십진수)가 호스트 부분을 나타 낸다는 약속이 있다. 그래서 클래스 B는 가장 작은 네트워크 128.0.0.0에서 가장 큰 네트워크 191.255.0.0(네트워크를 나타낼 떄는 호스트 부분은 모두 0으로 쓴다.) 까지가 포함된다.
IP주소 중에서 128부터 191로 시작하는 네트워크는 클래스 B이다. 그리고 하나의 클래스 B 네트워크가 가질 수 있는 호스트의 수는 2의 16승 빼기 2개(모두 0인 경우는 네트워크 자체를 나타내기 때문에 제외되고, 모두 1인 경우는 브로드캐스트 주소이기 떄문에 제외), 즉 6만5,534개이다.
클래스 C
클래스 C의 경우는 맨 앞이 110(이진수)으로 시작된다. 즉 110x xxxx.xxxx xxxx.xxxx xxxx.xxxx xxxx이다. 따라서 맨 앞에는 110이 반드시 나와야 하고 나머지 29개의 이진수는 0과 1중에서 어떤 수가 와도 된다. 이번에도 이 조건에 맞는 가장 작은 수와 가장 큰 수를 찾아볼 시간이다. 110을 앞에 두고 모두 0을 집어넣으면 클래스 C에서 가장 작은 숫자를 찾을 수 있다. 즉 1100 0000.0000 0000.0000 0000.0000 0000이고 십진수로는 192.0.0.0이다. 그럼 가장 큰 숫자는 역시 110을 앞에 두고 나머지 부분을 이진수에서 가장 큰 숫자인 1로 모두 채워 넣으면 된다.
즉 1101 1111.1111 1111.1111 1111.1111 1111이고, 십진수로는 233.255.255.255가 된다.
클래스 C의 경우 앞의 24비트(즉 옥텟3개, 맨 앞의 3자리 십진수 부분)가 네트워크 부분을 나타내고 나머지 8비트(즉 1개의 옥텟, 나머지 1개의 십진수)가 호스트 부분을 나타낸다는 약속이 있다. 그래서 클래스 C는 가장 작은 네트워크 192.0.0.0에서 가장 큰 네트워크 223.255.255.0(네트워크를 나타낼 때는 호스트 부분은 모두 0으로 쓴다.)까지가 포함된다.
IP주소 중에 192부터 223으로 시작하는 네트워크는 클래스 C이다.그리고 하나의 클래스 C가 가질 수 있는 호스트의 갯수는 2의 8승 빼기 2개(모두 0인 경우는 네트워크 자체, 모두 1인 경우는 브로드 캐스트 주소), 즉 254개이다.
클래스D
클래스 D는 멀티캐스트용으로 사용된다.
클래스 E
연구용으로 사용된다.
'7. Infra > 2. Network' 카테고리의 다른 글
TCP/UDP[네트워크] (0) | 2020.08.04 |
---|---|
TCP/IP [네트워크] (0) | 2020.08.04 |
이더넷[Ethernet][네트워크 이더넷] (0) | 2020.08.04 |
스위치[네트워크 스위치][Switch] (0) | 2020.08.04 |
Network란? (0) | 2020.08.04 |