본문 바로가기
Study/CS

[CS] 네트워크 - IP 주소

by dev_kong 2023. 1. 20.
728x90
728x90

IP 주소

IP주소란 말그대로 IP가 목적지를 판단하기 위해 사용하는 '컴퓨터의 주소'를 의미한다.

 

당연한 소리겠지만, 중복되는 IP주소를 갖고 있는 컴퓨터가 존재한다면,
목적지를 판단하기 위한 IP주소의 역할을 제대로 수행할 수가 없을 것이다.

 

그렇기 때문에 번호의 중복을 피하기 위해 ICANN이라는 기관이 중심이 되어
전세계의 IP주소를 관리하고 있다.

 

TCP/IP 계층에 대한 내용을 작성하면서 IP는 인터넷(네트워크) 계층에서 하나뿐인 중심적인 프로토콜이라 했는데,
IP가 사용하는 IP주소에 대해 조금더 자세히 알아보자.

ARP

ARP는 인터넷계층에서 사용되는 프로토콜 중 하나로, IP의 보조적인 역할로 사용된다.

 

컴퓨터와 컴퓨터 간의 통신은 IP로 이뤄진다고 생각하지만,

사실은 IP주소에서 ARP를 통해 MAC주소를 찾아 MAC주소를 기반으로 통신한다.

 

즉, ARP는 IP와 MAC 주소의 다리 역할을 하는 프로토콜 이다.

 

ARP는 IP주소를 실제 주소인 MAC 주소로 변환하고,
RARP는 MAC 주소를 IP주소로 변환한다.

ARP가 주소를 찾는 과정은 다음과 같다.

A가 IP주소를 통해 B의 MAC 주소를 얻는 과정

A가 ARP요청을 브로드캐스트 방식으로 스위치 장비에게 127.70.80.3의 MAC주소를 요청한다.

스위치 장비가 127.70.80.3의 MAC 주소가 자신의 MAC 테이블에 입력이 되어있다면,
바로 MAC 주소를 바로 A에게 알려준다.

MAC 테이블에 B의 MAC 주소가 없다면, B에게 ARP요청이 전송된다.

ARP요청을 받은 B는 자신의 MAC주소를 유니캐스트 방식으로 A에게 알려준다.

이때도 당연히 스위치를 거치게 되는데 스위치는 B의 MAC주소를 MAC테이블에 저장한 후, A에게 전달한다.

홉바이홉 통신

IP주소를 통해 통신하는 과정을 홉바이홉 통신이라고 한다.

홉(hop)

통신에서는 컴퓨터 사이의 거리를 통과한 라우터의 갯수로 나타낸다.
이때 사용하는 단위가 이다.

통신장치(라우터)에 있는 라우팅 테이블의 IP를 통해 시작주소부터 시작하여,
다음 IP로 계속 이동하는 '라우팅' 과정을 거쳐 최종 목적지 까지 도달하는 통신방법이다.

라우팅 테이블

라우터에 들어있는 목적지 정보들과, 그 목적지로 가기위한 방법이 들어있는 리스트를 뜻한다.

 

라우팅 테이블에는 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야할 다음 라우터의 정보를 갖고 있다.

쉽게말해, 라우터가 여러 가지 정보를 종합해서 얻어낸 네트워크에 대한 네이버 지도같은 거다.

 

라우팅 테이블은 송신지에서 수신지까지 도달하기 위해 사용된다.

게이트웨이

게이트웨이란 서로 다른 통신망, 프로토콜을 사용하는 네트워크간의 통신을 가능하게 하는
관문역할을 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어이다.

 

예를 들자면, 집 컴퓨터에서 인터넷에 접속하려는 경우를 간략하게 축약해보면,
집 -> 공유기 -> 인터넷 제공 회사 라우터 -> 인터넷망와 같은 경로를 따라간다.

 

이 때, 공유기와 인터넷 제공 회사의 라우터는 이전의 단계에서 다음 단계로 넘어 갈 때의 게이트웨이 역할을 담당한다.
인터넷에 접속하기 위하여는 수많은 게이트웨이를 거쳐야합니다.

IP주소 체계

IP주소는 IPv4와 IPv6로 나뉘어진다.

 

IPv4는 흔히 IP주소 하면 머릿속에 떠오르는 형태를 하고 있다.

32비트를 8비트 단위로 점을 찍어 표기한다.

 

IPv6는 128비트를 16비트 단위로 점을 찍어 표기한다.

 

IPv4로 나타낼수 있는 IP 주소는 약 43억개 이다.
인터넷의 보급에 따라 43억개로는 부족해지기 시작했고,
그 해결책으로 생각해낸게 IPv6이다.

 

서서히 IPv6로 변모하는 추세이나,
현재까지는 IPv4가 더 많이 쓰이고 있다.

 

이후의 내용도 IPv4 기준으로 작성된다.

클래스 기반 할당 방식

IP 주소 체계는 세월이 흐름에 따라 발전해오고 있는데,
처음 사용된 방식은 클래스 기반 할당 방식이다.

 

앞에 있는 부분을 네트워크 주소, 그 뒤에 있는 부분을 컴퓨터에 부여하는 호스트 주소로 놓아서 사용한다.

D, E클래스는 그닥 알 필요 없는 거 같고,

A, B, C 클래스가 뭔지 좀 알아보자.

 

조금 예시를 들어서 설명을 해보자면,
내가 컴퓨터를 1000개를 갖고있는데, 회사마다 필요한 컴퓨터 갯수만큼 빌려준다고 쳐보자.

 

A회사는 직원이 400명인데, 컴퓨터가 400개가 필요하다길래 400개 빌려줬다.
근데 사람하나 더 뽑는다고, 컴퓨터 하나 더 달라고 한다.

 

그러더니 며칠뒤에 2명 그만뒀다고, 2개 가져가란다.

귀찮아져서 그냥 "내가 가진거 반 너 줄테니까 너가 알아서 갖고있다가 쓰던지 말던지 해"라고 해버림.

 

B회사는 직원이 200명 왔다갔다 한다길래
A한테 반주고 남은거(500개)의 반을 빌려줬다(250개)

 

C회사는 한 100명 왔다갔다 한다길래
A랑 B한테 주고 남은거(250개)의 반을 빌려줬다(125개)

 

이게 A클래스 B클래스 C클래스다.

 

A클래스는 커다란 뭉텅이 몇개로 구성된 그룹인데
이걸 다 합치면 IPv4의 전체갯수 43억개의 절반이고,

 

B클래스는 중간 뭉텅이 몇개로 구성된 그룹인데
이걸 다합치면 43억개의 4분의 1에 해당하는 갯수다.

A4용지 분할하는 이그림을 보면 좀 이해가 쉽다.

네트워크영역과 호스트영역

위의 그림에서 클래스A를 나타내는 영역을 보면 첫번째 옥탯이 네트워크 주소를
두번째 옥탯이 호스트 주소를 나타낸다고 되어있다.

 

네트워크 영역은 네트워크 주소에 대한 내용이고,
호스트 주소는 컴퓨터를 가르키는 주소이다.

 

예를들어 A회사에서 일하는 철수씨와 영희씨의 IP주소를 확인해보면

영희의 IP는 10.2.3.5이고, 철수의 IP는 10.12.23.1 이다.

 

첫번째 옥탯은 네트워크 주소를 가리킨다고 했다.
같은 회사, 같은 건물에 일한다고 했으니 같은 네트워크를 쓰기 때문에 첫번째 옥탯이 일치한다.

호스트 영역인 뒤 3개의 옥탯은 일치하지 않는다.

문제점

딱봐도 문제 많아 보인다.

 

400명인 곳에 500개 빌려주면 100개가 남는다.

 

즉, 실제로 사용되는 주소보다 버리는 주소가 많아지다보니,
이를 해결하기 위해 여러 방법들이 나왔다

DHCP

위에서 말한 여러가지 방법중 하나이다.

 

DHCP(Dynamic Host Configuration Protocol)는 IP 주소 및 기타 통신 매개변수를
자동으로 할당하기 위한 네트워크 관리 프로토콜이다.

 

이 프로토콜을 통해 IP주소를 수동으로 설정할 필요 없이,
인터넷에 접속할 때마다 IP주소를 할당 할 수 있다.

 

많은 라우터와 게이트웨이 장비에 DHCP 기능이 있으며,
이를 통해 대부분의 가정용 네트워크에서 IP주소를 할당한다.

NAT

위에서 말한 여러가지 방법 중 또 다른 하나다.

 

NAT(Network Address Translation)는 패킷이 전송 되는 동안,
패킷의 IP주소 정보를 수정하여 IP주소를 다른 주소로 매핑하는 방법이다.

공인 IP와 사설 IP로 나눠서 많은 주소를 처리한다.


NAT를 가능하게 하는 소프트웨어는 ICS, RRAS, Netfilter 등이 있다.

사진을 보면 왼쪽이 사설 IP, 오른쪽이 공인IP이다.

 

NAT 장치는 사설을 공인으로, 공인을 사설로 변환하는 데 사용된다.

 

인터넷 공유기에 NAT기능이 탑재되어 있어, 공유기 하나로 여러 컴퓨터를 연결해서 사용할 수 있다.

 

물론, 접속하는 호스트의 수에 따라 접속 속도가 느려질 수 있다는 단점이 존재한다.

 

장점으로는 내부 네트워크에서 사용하는 IP 주소와 외부에 드러나는 IP주소를 다르게 유지할 수 있기 때문에,
내부 네트워크에 대한 어느 정도의 보안이 가능해진다.

Reference
IP 주소 클래스 종류란 무엇인가
ARP 프로토콜 동작순서

728x90
728x90

'Study > CS' 카테고리의 다른 글

[CS] OS - 운영체제와 컴퓨터  (0) 2023.01.30
[CS] 네트워크 - HTTP  (0) 2023.01.24
[CS] 네트워크 - 네트워크 기기  (0) 2023.01.18
[CS] 네트워크 - TCP/IP  (0) 2023.01.18
[CS] 네트워크 - 네트워크의 기초  (0) 2023.01.16

댓글