IP 주소가 무엇이며, IP 주소를 통해 통신하는 과정에 대해 다룹니다.
IP
: Internet Protocol을 의미하며 네트워크 상에서 데이터를 전송하기 위한 인터넷 규약IP 주소
: 컴퓨터 또는 네트워크 장치를 식별하는 데 사용되는 주소ARP
: 논리 주소인 IP 주소를 실제적인 물리 주소인 MAC 주소로 변환하는 주소 해석 프로토콜RARP
: ARP와 반대로 물리 주소인 MAC 주소를 논리 주소인 IP 주소로 변환하는 프로토콜
ARP
: IP 주소로 MAC 주소를 구하는 과정홉바이홉 통신
: IP 주소를 통해 라우터와 게이터웨이를 거쳐 통신하는 과정IP 주소 체계
: IP 주소의 종류 및 DHCP, NAT을 통한 IP 주소 부여와 정보 수정
- 의미: 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 논리적 주소이다.
- 주로 네트워크 계층에서 구현된다.
- 네트워크에서 데이터를 전송할 때 출발지와 목적지를 식별하는 데 사용된다.
- 네트워크에 연결된 장치가 라우터이든 일반 서버이든, 모든 기계는 이 특수한 번호를 가진다.
- IP 주소를 줄여서 IP라고 부르기도 하나 IP는 인터넷 규약 자체를 가리키기에 엄밀하게는 구별해야 한다.
- IP 주소는 인터넷에서 사용하는 네트워크 주소이기에 동 또는 구까지 위치 추적이 가능하다.
- 사용 방식: 라우터를 통해 1개의 public IP를 할당 받고, 라우터에 연결된 개인 기기는 private IP를 할당받아 인터넷에 접속할 수 있다.
IP와 MAC의 차이점: IP 주소는 논리적 주소이며 네트워크 상에서 라우팅과 식별을 위해 사용되고, MAC 주소는 물리적 주소이며 네트워크 인터페이스 카드를 식별한다.
- 의미: 네트워크 외부와 통신하는 데 사용되는 IP 주소이다.
- 유일성: ISP(Internet Service Provider)에서 할당하고, 외부에 공개되어 있는 IP 주소로 전세계에서 유일하다.
- 주소 범위: private IP 외 나머지 범위를 사용하는 것이다.
- 의미: 동일한 네트워크 내에서 사용되는 IP 주소이다.
- 사용처: LAN 내에서만 작동하며 일반적으로 개인 또는 사내 기기에 할당된다.
- 정해져 있는 범위
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
- 의미: 네트워크 상에서 IP 주소를 물리적 네트워크 주소(MAC 주소)로 대응시키기 위해 사용되는 프로토콜이다.
- 이를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환한다.
- 반대로 RARP를 통해 MAC 주소를 IP 주소로 변환하기도 한다.
- 동작 방식
- ARP Request: ARP 브로드캐스트를 보내서 특정 IP 주소에 해당하는 MAC 주소를 탐색한다.
- ARP Reply: 해당 IP 주소에 맞는 장치가 ARP Reply 유니캐스트를 통해 MAC 주소를 반환한다.
- 브로드캐스트: 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식이다.
- 유니캐스트: 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식이다.
- 의미: IP 주소와 MAC 주소를 매핑하여 캐싱해 놓은 데이터베이스로, 일치하는 IP가 있다면 해당하는 MAC 주소를 그대로 가져와 패킷을 완성하고 통신을 하게된다.
- 쓰임새: ARP Request 이전에 먼저 해당 네트워크의 ARP 테이블을 확인하는 과정을 거친다. 일치하는 IP 주소가 없다면, ARP 요청을 시작하게 된다.
- 재사용성: 패킷을 보낼 때마다 ARP 브로드캐스트가 실행되면 효율성이 저하되므로, 한 번 매칭된 정보는 일정 시간 동안 ARP 테이블에 캐싱되어 재사용된다.
- 의미: IP 주소를 통해 통신하는 과정을 홉바이홉(hop by hop) 통신이라 한다.
- 홉(hop)을 직역하자면, 건너띄는 모습을 의미한다.
- 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 비유적으로 표현한다.
- 동작 방식
- 통신 장치에 있는 **‘라우팅 테이블’**의 IP를 통해 시작 주소부터 시작한다.
- 다음 IP로 계속해서 이동하는 ‘라우팅’ 과정을 거쳐 패킷이 최종 목적지까지 도달한다.
관련 용어
- 라우팅: IP 주소를 찾아가는 과정이다.
- 라우팅 테이블: 라우터 목적지 정보들과 그 목적지로 가기 위한 방법이 있는 리스트이다.
- 각 라우터의 라우팅 테이블에는 게이트웨이와 모든 목적지 정보에 대해 해당 목적지에 도달하기 위해서 거쳐야 할 다음 라우터의 정보를 가진다.
- 게이트웨이: 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 소프트웨어를 일컫는 용어이다.
- IPv4: 32비트를 8비트 단위로 점을 찍어 표기하며, 123.45.67.89와 같은 방식이다.
- IPv6: 64비트를 16비트 단위로 점을 찍어 표기하며, 2001:db8::ff00:42:8329와 같은 방식이다.
IPv4 | IPv6 | |
---|---|---|
주소 길이 | 32비트 | 128비트 |
주소 개수 | 약 43억 개 | 약 3.4 * 10³⁸ 개 (거의 무한대) |
주소 표기 | 32비트를 8비트 단위로 점(.)을 찍어 구분 ex) 123.45.67.89 *십진수 표기법 |
128비트를 16비트씩 8개의 필드로 나누어 콜론(:)으로 구분 ex) BEAF:2002:0221:F207:0000:0000:FFFF:4002 |
참고 사항: 추세는 IPv6로 가고 있지만 현재 가장 많이 쓰이는 건 IPv4이다. 이후 설명할 때도 IPv4를 기준으로 한다.
-
의미: IP 주소를 관리하고 구성하는 방식 중의 하나로 네트워크 클래스(A, B, C, D, E)를 통해 구분한다.
-
할당 방식
- 클래스 A, B, C는 일대일 통신으로 사용한다.
- 클래스 D는 멀티캐스트 통신으로 사용한다.
- 클래스 E는 앞으로 사용할 예비용이다.
-
상세 내역
- 구분 비트: 맨 왼쪽에 있는 비트로 이를 통해 클래스 간의 IP가 나눠진다.
- 클래스 A: 구분 비트가 0으로 대규모 네트워크에 사용한다.
- 클래스 B: 구분 비트가 10으로 중간 규모의 네트워크에 사용한다.
- 클래스 C: 구분 비트가 110으로 소규모 네트워크에 사용한다.
- 클래스 D: 구분 비트가 1110으로 네트워크에 속해 있는 모든 컴퓨터에 데이터를 보낼 때 사용한다.
-
단점
- 해당 방식은 사용하는 주소보다 버리는 주소가 많다. 이를 해소하기 위해 DHCP와 IPv6, NAT가 등장한다.
- 의미: IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜이다.
- 역할: 네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷에 접속할 때마다 자동으로 IP 주소를 할당한다.
- 사용: 많은 라우터와 게이트웨이 장비에 DHCP 기능이 있으며, 이를 통해 대부분의 가정용 네트워크에서 IP 주소를 할당한다.
-
의미: 사설 IP를 공인 IP로 변경하는 데 필요한 주소 변환 서비스이다.
- 라우팅 장치를 통해 패킷이 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법이다.
-
NAT 사용 예시
- 아래 그림처럼, 한 회사에서 하나의 공인 IP를 통해 각각 다른 사설 IP를 할당받고 인터넷 사용한다.
- 인터넷 회선 하나를 개통하고 인터넷 공유기를 달아서 여러 PC를 연결하여 사용한다.
- 이게 가능한 이유는 인터넷 공유기에 NAT 기능이 탑재되어 있기 때문이다.
-
특징
- 공인 IP와 사설 IP로 나눠서 많은 주소를 처리한다.
- NAT를 가능하게 하는 소프트웨어로는 ICS, RRAS, Netfilter 등이 있다.
- IPv4 주소 체계만으로는 많은 주소들을 감당하지 못한다는 단점을 해결한다.
- 외부에 드러나는 IP주소가 내부 네트워크에서 사용하는 IP 주소와 다르기에 내부 네트워크에 대한 어느 정도의 보안이 가능하다.
- 여러 명이 동시에 인터넷에 접속하기에 접속 속도가 느려질 수 있다.
- https://hanjustudy.tistory.com/23
- https://www.youtube.com/watch?v=DfNGidKhY6U
- https://limkydev.tistory.com/168
- https://www.youtube.com/watch?v=A6azQadjT8o
- https://www.youtube.com/watch?v=gS7WSU8lxSU&t=429s
- https://en.wikipedia.org/wiki/Network_address_translation
- https://sitechecker.pro/what-is-dhcp-server/
- https://ko.wikipedia.org/wiki/IP_주소