IP
목차
- 개요
- IP 주소
- IP 종류
- IP 통신 한계 및 극복
1. 개요
IP 란?
IP는 인터넷 프로토콜(Internet Protocol)의 약자
흔히 이 프로토콜에서 각 장치를 나타내는 IP 주소를 가리키는 말로 사용
(like 각 장치의 주민등록번호)
IP의 등장
컴퓨터의 경우 사용하는 운영체제(Window, OS 등등)도 서로 다르고,
프로그램의 경우 아예 구현된 언어가 다르기 떄문에 네트워크에서 통신하기 위한 공통된 통신 규약(프로토콜)의 필요성으로 인해 탄생
IP는 ISO 위원회의 OSI 7계층 중 Layer 3(Network Layer)와 IETF의 Internet Protocol Suite의 Layer 3(Internet Layer)에 위치하는 프로토콜
(참고: stevenjlee.net)
호스트에서 호스트까지의 통신, 즉 보내는 컴퓨터에서 받는 컴퓨터까지의 통신을 책임
네트워크 호스트는 IP에서 정의된 규약(Protocol)을 이용해 네트워크 상에서 정보를 주고 받으며, 이 정보는 패킷(Packet) 단위로 전달
네트워크 호스트(Network Host)
네트워크 호스트는 컴퓨터 네트워크에 연결된 장치이다.
네트워크 호스트의 역할은 네트워크 상에서 정보를 주고 받는 것으로, 우리는 네트워크 호스트를 네트워크의 노드라고도 부른다.
간단하게 생각하면 개인 컴퓨터가 네트워크 호스트가 될 수 있다.
패킷(Packet)
소포(정보)를 뜻하는 Package과 덩어리를 뜻하는 Bucket을 합친 축약어로, 정보의 덩어리를 의미
통신 시 컴퓨터는 정보를 덩어리 단위로 만들어서 다른 컴퓨터에 전달하는데 이를 Packet이라 함
IP를 통하지 않고 현 인터넷을 통신 한다는 건 거의 불가능하기 때문에 매우 중요한 계층이나,
LAN 환경 등에서는 MAC 주소 기반 통신이 필요한 경우도 있는 등, 만능은 아님.
MAC 주소(Media Access Control Address)
네트워크 세그먼트의 데이터 링크 계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자
- MAC 주소는 이더넷과 와이파이를 포함한 대부분의 IEEE 802 네트워크 기술에 네트워크 주소로 사용
- 논리적으로 MAC 주소는 매체 접근 제어 프로토콜이라는 OSI 모델의 하위 계층에서 사용
- 자신이 속한 네트워크 안에서만 통신
- 라우터를 통해 네트워크를 빠져나가게 되면 IP를 이용해 통신
네트워크와 네트워크 호스트
네트워크는 네트워크 호스트들로 구성이 되는데 호스트들 간에는 통신이 가능
통신에 사용하는 프로토콜이 바로 IP
IP을 이용한 통신을 하기 위해서(하나의 호스트에서 다른 호스트로 전송하기 위해서)는 호스트의 주소 정보가 필요
주소가 있어야지 패킷을 보낼 목적지를 설정할 수 있다.
이러한 주소 값이 바로 IP Address
네트워크
두 대 이상의 컴퓨터가 논리적 또는 물리적으로 연결되어 통신이 가능한 상태.
일방적으로 규모에 따른 네트워크 종류는 아래와 같다.
- PAN ( Personal Area Network ) : 가장 작은 규모의 네트워크
- LAN ( Local Area Network ) : 근거리 영역 네트워크
근거리 통신 망을 의미하며 지역적 좁은 범위 내에서 고속 통신이 가능한 통신망. - Man ( Metropolitan Area Network ) : 대도시 영역 네트워크
- Wan ( Wide Area Network ) : 광대역 네트워크
Wild Area Network 로써 광대역 통신망으로써 LAN 보다 넓은 지역을 나타내며 지역과 지역,
지방과 지방, 나라와 나라 또는 대륙과 대륙을 연결하는 통신망
2. IP 주소 (IP address)
IP address
네트워킹이 가능한 장비를 식별하는 주소 또는 IP 통신에 필요한 고유 주소
IP Protocol을 사용하는 호스트의 주소 정보
IP Address가 있어야지 패킷이 어느 주소로 가야할지 알 수 있다.
ex) 두 노드가 직접적으로 연결되어 있지 않는 경우 다른 노드를 통해서 연결되어 있는 노드에 정보를 전달해주어야 하는데,
이 경우 목적지 값이 있어야 호스트에 전달이 가능
기존 Packet과는 별로도 IP Packet에 IP Address 값을 넣어주는데 이를 통해 출발지와 목적지의 설정이 가능해진다.
보통 인터넷 네트워크에서는 출발지와 목적지 사이에 여러 노드들이 존재하는데,
이 노드들을 통해서 목적지에 전달하게 하기 위해서는 IP Address가 필수적
네트워크 상에서 통신을 하기 위해서는 몇 가지 통신규약(protocol)을 따라야 하는데,
그런 규약들 중에는 "네트워킹을 하는 장비들에게 숫자 12개의 고유한 주소를 주어,
그 주소를 통해 서로를 인식하고 통신하도록 하자" 라는 의미의 규약이 존재
인터넷을 하기 위해선 정해진 기관에서 할당하는 공인 IP를 사용해야함.
사용자는 ISP 업체로부터 공인 주소를 임대 받아야만 인터넷 서비스와 연결 가능
전 세계적으로 인터넷 상에서 사용되는 IP 주소와 도메인을 관리하는 기간은
IANA(Internet Assigned Numbers Authority)
현재는 IPv4와 IPv6 두 가지 체계가 존재
IPv4 주소
널리 사용되는 IP 주소, 32비트 값을 가진다.
8비트씩 끊어 0~255 10진수 숫자로 나타내며, 각 숫자는 점(.)으로 구분
총 32비트의 정보를 가지며 최대 2^23개로 이론적으로 42억 9496만 7296개(약 43억개)의 IP가 존재
중간의 일부 번호들은 특별한 용들 위해 예약되어 있음.
예전에는 IP를 할당할 때 class를 나누어서 할당
=> 인터넷 발달의 보편화로 사이더 방식으로 할당
서브넷 마스크 (Subnet Mask)
IP 주소에 대한 네트워크 아이디와 호스트 아이디를 구분하기 위해 사용
IP 주소 32bit에 공통 비트 1을 씌워 네트워크를 표기하기 때문에 IP 주소와 마찬가지로 32bit 체계
맨 앞에 비트부터 1이 연속된 구간까지를 공통비트로 처리하여 네트워크 아이디로 사용하고 0으로 끝나는 마지막 구간까지를
공통하지 않는 비트로 처리하여 호스트 아이디로 사용
네트워크 아이디: 모든 host들을 관리하기 힘들기에 한 network의 범위를 지정해 (호스트의 집합) 관리하기 쉽게 만들어 낸 것
호스트 아이디: 호스트들을 개별적으로 관리하기 위해 사용하게 된 것
예시)
IP 주소 | 서브넷 마스크 | 네트워크 아이디 | 호스트 아이디 | IP 주소 개수 |
13.13.10.1 | 255.0.0.0 | 13. | .13.10.1 | 2^24개 |
13.13.10.1 | 255.255.0.0 | 13.13. | .10.1 | 2^16개 |
13.13.10.1 | 255.255.255.0 | 13.13.10. | .1 | 2^8개 |
13.13.10.1 | 255.255.255.255 | 13.13.10.1 | - | 2^0게 |
0.0.0.0 | 0.0.0.0 | - | 0.0.0.0 | 2^32개 |
공인 IP 클래스별 분류
IP 주소 범위는 0.0.0.0 ~ 255.255.255.255 까지 포함
5개의 클래스로 정의됨으로써 IP 주소 낭비 방지와 효율적인 서브넷 관리 가능
- A class(Unicast Address): 첫 번째 필드를 2진수로 변환할 경우 맨 앞에 0이라는 공통 비트를 갖는다.
범위: 00000000 (0) ~ 01111111 (127) => 0.0.0.0 ~ 127.255.255.255
서브넷 마스크: 255.0.0.0
=> 네트워크 주소로 1byte 사용 - B class(Unicast Address): 첫 번째 필드를 2진수로 변환할 경우 맨 앞에 10이라는 공통 비트를 갖는다.
범위: 10000000 (128) ~ 10111111 (191) => 128.0.0.0 ~ 191.255.255.255
서브넷 마스크: 255.255.0.0
=> 네트워크 주소로 2byte 사용 - C class(Unicast Address): 첫 번째 필드를 2진수로 변환할 경우 맨 앞에 110이라는 공통 비트를 갖는다.
범위: 11000000 (192) ~ 11011111 (223) => 192.0.0.0 ~ 223.255.255.255
서브넷 마스크: 255.255.255.0
=> 네트워크 주소로 3byte 사용 - D class(Multicast Address): 첫 번째 필드를 2진수로 변환할 경우 맨 앞에 1110이라는 공통 비트를 갖는다.
범위: 11100000 (224) ~ 11101111 (239) => 224.0.0.0 ~ 239.255.255.255
서브넷 마스크를 이용하여 블락 단위로 동작하지 않기 때문에 서브넷 마스크를 사용하지 않는다. - E class(Broadcast Address): 첫 번째 필드를 2진수로 변활할 경우 맨 앞에 11111이라는 공통 비트를 갖는다.
범위: 11110000 (240) ~ 11111111 (255) -> 240.0.0.0 ~ 255.255.255.255
IANA에서 사용을 제한 시킨 주소이기 때문에 네트워크 인터페이스 설정 불가
공부하는 카페 IP는 221.XXX.AAA.BBB 이므로 B 클래스
네트워크: 221.XXX 호스트: AAA.BBB
Prefix(접두어)
Prefix 표기란 서브넷 마스크 맨 앞의 비트부터 1의 개수를 표기하는 방식
=> 맨 앞에 비트부터 공통 비트 개수를 표기하는 방식
ex) 서브넷 마스크가 255.255.255.0인 경우 맨 앞의 비트부터 1이 24개가 있으므로 /24로 표기
사이더(Classless Inter-Domain Routing, CIDR)
클래스가 없는 도메인 간 라우팅 기법
연속된 IP 주소의 범위를 표기하는 방법 중 하나로, 192.168.0.0/16과 같은 식으로 사용
사용할 때는 나타내고자 하는 주소 범위에서 앞쪽의 공통 부분(접두어)를 표기하고, 슬래시(/)뒤에 몇 비트가 접두어인지 쓴다)
IPv6
IPv4 주소의 수가 부족으로 인해 등장
IPv6에서는 주소 길이를 128비트로 늘려 사용가능한 주소의 갯수가 2^128개
약 43억x43억x43억x43억개
128비트의 값을 가지며, 일반적으로 4자리의 16진수 숫자 8개로 표기, 각각을 : 기호로 구분
IPv6 주소를 표기할 때는 보통 0000부터 FFFF까지의 16진수 4자리를 사용하는 8개 필드로 표현
IPv6는 필드 전체가 0인 필드가 연속되어 있는 경우 그 연속된 필드를 통째로 생략 가능
예로 들어서 2606:4700:4700:0000:0000:0000:0000:1111의 경우 0만 있는 4~7번째 필드를 생략하여
2606:4700:4700::1111로 표기 가능
"::"으로 생략할 경우 0이 흩어져 있는 경우 가장 긴 부분만 생략하고 나머지는 명시
왜냐하면 0이 흩어져있다고 각각 따로 ::으로 생략해버리면 각각의 부분에 0이 몇개씩 들어가는지 특정할 수 없기 때문
다만 ::으로 생략하지 않고 단지 필드 내 가장 높은 자릿수들이 0인 경우에는 따로 생략이 가능
가령 2606:2800:0220:0001:0248:1893:25C8:1946의 경우 2606:2800:220:1:248:1893:25C8:1946으로 표기가 가능하
만일 필드에 0000이 오더라도 "::"으로 생략한 것이 아니라면 필드마다 0 하나 표기는 해줘야한다.
3. IP 주소 할당
공인 IP 주소(Public IP Address)
공인 IP 주소는 인터넷과 같은 공인 환경에 직접 연결이 가능한 주소
인터넷을 하기 위해서는 공인 IP 주소가 필요하며 이 주소는 ISP 업체로부터 임대 받아 사용
사설 IP 주소(Private IP Address)
공인 환경이 아닌 기업 내부 사설 환경에서 사용을 권장하는 주소
이 주소는 인터넷과 연결되지 않기 때문에 다른 환경과 중첩하여 주소 범위를 사용해도 무관하며 ISP 업체로부터 임대를 받지 않아도 사용 가능
특수 목적 IP 주소
특수한 목적으로 예약된 IP 주소들이기 때문에 다음 IP 주소들은 공인 IP 주소로 할당 받는 것이 불가능
RFC1918에 의해 정의된 사설 IP 주소의 범위
- 10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8) : 1개의 A 클래스
- 172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12) : 16개의 B 클래스
- 192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16) : 256개의 C 클래스
0.0.0.0 ~ 0.255.255.255 (0.0.0.0/8): IP 주소를 할당받기 전 임시로 사용하는 주소. 주로 0.0.0.0을 쓴다.
127.0.0.0 ~ 127.255.255.255 (127.0.0.0/8, 흔히 127.0.0.1를 사용한다.):
자기 자신을 가리키기 위한 목적으로 쓰기 위해 예약된 IP 주소, 루프백(Loopback)이라고도 한다
4. IP 통신의 한계점 및 극복
위의 내용을 보면 IP Address와 IP만으로도 패킷의 전송이 가능하다는 것을 알 수 있다.
하지만, 이러한 방식의 패킷 전송에는 문제점이 있다.
비신뢰성
IP는 프로토콜일 뿐이고 보낸 데이터의 흐름에 관여하지 않기 때문에 보낸 패킷이 제대로 갔는지 보장하지 않는다.
즉, 순서가 있는 여러 개의 데이터를 보냈을 때 받는 데이터가 같은 순서로 받아질 것이란 보장이 될 수 없다.
혹은 중간에 패킷을 가지고 있던 호스트가 강제종료되어 패킷이 소실될 경우 패킷이 목적지까지 가지 못하고 소실될 수 있다.
비연결성
마찬가지로, 패킷을 받을 대상이 연결 상태임을 확인하지 않고 전송하기 때문에 받을 대상(호스트)이 서비스 불능 상태여도 패킷이 전송된다는 문제점이 있다.
이를 비연결성이라고 한다.
한계점 극복
IP를 이용한 통신을 인터넷 계층의 통신이라고 한다.
이러한 한계점 극복을 위해 전송 계층에서 TCP, UDP라 불리는 프로토콜을 추가로 정의함으로써 이러한 IP의 한계점을 극복한다.
'IT > Computer Science' 카테고리의 다른 글
[모두의 네트워크] 1장. 네트워크 첫걸음 (0) | 2022.03.30 |
---|---|
세션 vs 토큰 vs 쿠키 (0) | 2021.10.06 |
컴퓨터와 컴퓨팅 (6) | 2021.07.15 |
자료구조-03. 트리 (0) | 2021.06.30 |
자료구조 -02. 스택과 큐 (0) | 2021.06.30 |
댓글