1. IP 주소
- 컴퓨터와 컴퓨터 간의 통신은 흔히들 IP 주소 기반으로 통신한다
- 하지만 정확히 이야기하자면 IP 주소에서 ARP 를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신 함
2. ARP (Address Resolution Protocol)
- IP 주소로부터 MAC 주소를 구하는 IP 와 MAC 주소의 다리 역할을 하는 프로토콜
- ARP 를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환
- RARP 를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환하기도 함
- 아래 그림처럼 장치 A 가 ARP Request 브로드캐스트를 보내서 IP 주소인 120.70.80.3에 해당하는
MAC 주소를 찾는다
- 이후 해당 주소에 맞는 장치 B 가 ARP Reply 유니캐스트를 통해 MAC 주소를 반환하는 과정을 거쳐
IP 주소에 맞는 MAC 주소를 찾게 됨
* 브로드캐스트 : 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식
* 유니캐스트 : 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식
3. 홉바이홉 통신
- IP 주소를 통해 통신하는 과정
- 홉(hop) 이란 영어 뜻 자체로는 건너뛰는 모습을 의미 이는 통신망에서 각 패킷이 여러개의 라우터를 건너가는
모습을 비유적으로 표현한 것
- 아래 그림처럼 수많은 서브네트워크 안에 있는 라우터의 라우팅 테이블IP 를 기반으로 패킷을 전달하고
또 전달해나가며 라우팅을 수행하며 최종 목적지까지 패킷을 전달
- 즉 통신장치에 있는 라우팅 테이블의 IP 를 통해 시작 주소부터 시작하여 다음 IP 로 계속해서 이동하는
라우팅 과정을 거쳐 패킷이 최종 목적지까지 도달하는 통신
* 라우팅 : IP 주소를 찾아가는 과정
1) 라우팅 테이블 (routing table)
- 송신지에서 수신지까지 도달하기 위해 사용
- 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어있는 리스트
- 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터 정보를 가지고 있다
2) 게이트웨이 (gateway)
- 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는
컴퓨터나 소프트웨어를 두루 일컫는 용어
- 사용자는 인터넷에 접속하기 위해 수많은 톨게이트인 게이트웨이를 거쳐야 함
- 서로 다른 네트워크 상의 통신 프로토콜을 변화해주는 역할을 하기도한다
- 게이트웨이 확인 방법은 라우팅 테이블을 통해 볼수 있으며 라우팅 테이블은 윈도우의 명령 프롬프트에서
netstat -r 명령어를 실행하여 확인 가능
- 아래 그림처럼 IPv4 경로 테이블, IPv6 경로 테이블이 있는데 이것이 바로 라우팅 테이블이며 게이트웨이,
인터페이스 등이 나오는 것을 볼 수 있다
Microsoft Windows [Version 10.0.19045.3803]
(c) Microsoft Corporation. All rights reserved.
C:\Users\gamta>netstat -r
===========================================================================
인터페이스 목록
8...f4 b5 20 09 2a 5b ......Realtek PCIe GbE Family Controller
1...........................Software Loopback Interface 1
===========================================================================
IPv4 경로 테이블
===========================================================================
활성 경로:
네트워크 대상 네트워크 마스크 게이트웨이 인터페이스 메트릭
0.0.0.0 0.0.0.0 192.168.35.1 192.168.35.57 25
127.0.0.0 255.0.0.0 연결됨 127.0.0.1 331
127.0.0.1 255.255.255.255 연결됨 127.0.0.1 331
127.255.255.255 255.255.255.255 연결됨 127.0.0.1 331
192.168.35.0 255.255.255.0 연결됨 192.168.35.57 281
192.168.35.57 255.255.255.255 연결됨 192.168.35.57 281
192.168.35.255 255.255.255.255 연결됨 192.168.35.57 281
224.0.0.0 240.0.0.0 연결됨 127.0.0.1 331
224.0.0.0 240.0.0.0 연결됨 192.168.35.57 281
255.255.255.255 255.255.255.255 연결됨 127.0.0.1 331
255.255.255.255 255.255.255.255 연결됨 192.168.35.57 281
===========================================================================
영구 경로:
없음
IPv6 경로 테이블
===========================================================================
활성 경로:
IF 메트릭 네트워크 대상 게이트웨이
1 331 ::1/128 연결됨
8 281 fe80::/64 연결됨
8 281 fe80::1ff8:2ff2:dbec:da86/128
연결됨
1 331 ff00::/8 연결됨
8 281 ff00::/8 연결됨
===========================================================================
영구 경로:
없음
C:\Users\gamta>
4. IP 주소 체계
- IP 주소는 IPv4 와 IPv6 으로 나뉨
- IPv4 는 32비트를 8비트 단위로 점을 찍어 표기하고, 123.45.67.89 같은 방식으로 IP 주소를 나타냄
- IPv6 은 64비트를 16비트 단위로 점을 찍어 표기하고, 2001:db8::ff00:42:8329 같은 방식으로 IP 주소를 나타냄
- 추세는 IPv6으로 가고 있지만 현재 가장 많이 쓰이는 주소 체계는 IPv4이다
1) 클래스 기반 할당 방식 (classful network addressing)
- IP 주소 체계는 처음에는 A, B, C, D, E 다섯개의 클래스로 구분하는 클래스 기반 할당 방식을 사함
- 앞에 있는 부분을 네트워크 주소, 그 뒤에 있는 부분을 컴퓨터에 부여하는 주소인 호스트 주소로 놓아서 사용함
- 클래스 A, B, C 는 일대일 통신으로 사용되고 클래스 D 는 멀티캐스트 통신, 클래스 E 는 앞으로 사용할
예비용으로 사용하는 방식
예) 클래스 A 의경우 0.0.0.0 부터 127.255.255.255 까지 범위를 갖는다
- 맨 왼쪽에 있는 비트를 구분 비트라고 한다
- 위의 그림처럼 클래스 A 의 경우 맨 왼쪽에 있는 비트가 0, 클래스 B 는 10, 클래스 C는 110 이를 통해
클래스 간의 IP 가 나뉘어짐
- 네트워크의 첫 번째 주소는 네트워크 주소로 사용되고 가장 마지막 주소는 브로드캐스트용 주소로
네트워크에 속해 있는 모든 컴퓨터에 데이터를 보낼 때 사용됨
- 예) 클래스 A 로 12.0.0.0 이란 네트워크를 부여받았다면 12.0.0.1 ~ 12.255.255.254 의 호스트 주소를 부여받은
것이다 이때 첫번째 주소인 120.0.0 은 네트워크 구별 주소로 사용하면 안되고 가장 마지막 주소인
12.255.255.255 의 경우 브로드캐스트용으로 남겨두어야 하니 사용하면 안된다
따라서 그 사이에 있는 12.0.0.1 ~ 12.255.255.254 를 컴퓨터에 부여할 수 있는 호스트 주소로 사용가능
- 하지만 이 방식은 사용하는 주소보다 버리는 주소가 많은 단점이 있고 이를 해소하기 위해 DHCP 와 IPv6,
NAT이 나옴
2) DHCP (Dynamic Host Configuration Protocol)
- IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜
- 네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷에 접속할 때마다 자동으로 IP 주소를 할당할 수 있다
- 많은 라우터와 게이트웨이 장비에 DHCP 기능이 있고, 이를 통해 대부분의 가정용 네트워크에서 IP 주소를 할당
3) NAT (Network Address Translation)
- 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법
- IPv4 주소 체계만으로는 많은 주소들을 모두 감당하지 못하는 단점이 있는데, 이를 해결하기위해
NAT으로 공인 IP 와 사설 IP 로 나눠서 많은 주소를 처리
- NAT 을 가능하게 하는 소프트웨어는 ICS, RRAS, Netfilter 등이 있다
- 아래 그림처럼 홍철 팀장, 가영 대리는 192.168.0.xxx 를 기반으로 각각의 다른 IP를 가지고 있는데
이는 사설 IP 라고한다
- 그리고 NAT 장치를 통해 하나의 공인 IP 인 121.165.151.200 으로 외부 인터넷에 요청할 수 있다
- 이를 통해 어비스 회사에 있는 홍철 팀장과 가영 대리는 하나의 IP 인 121.165.151.200 을 기반으로 각각의
다른 IP 를 가지는 것처럼 인터넷을 사용할 수 있다
(1) 공유기와 NAT
- NAT 를 사용하는 이유는 주로 여러대의 호스트가 하나의 공인 IP 주소를 사용해 인터넷에 접속하기 위함
예) 인터넷 회선 하나를 개통하고 인터넷 공유기를 달아서 여러 PC 를연결하기 위해 사용할 수 있는데,
가능한 이유는 인터넷 공유기에 NAT 기능이 탑재되어 있기 때문
(2) NAT 를이용한 보안
- 내부 네트워크에서 사용하는 IP 주소와 외부에 들어나는 IP 주소를 다르게 유지할 수 있기 때문에
내부 네트워크에 대한 어느정도 보안이 가능해짐
(3) NAT 단점
- 여러명이 동시에 인터넷을 접속하게 되므로 실제로 접속하는 호스트 숫자에 따라서 접속속도가 느려질 수 있다
4. IP 주소를 이용한 위치 정보
- IP 주소는 인터넷에서 사용하는 네트워크 주소이기 때문에 이를 통해 동 또는 구까지 위치 추적이 가능
- IP 주소를 기반으로 위치를 찾는 사이트 https://mylocation.co.kr/
'CS 전공지식' 카테고리의 다른 글
24.01.15 HTTPS 1 (1) | 2024.01.15 |
---|---|
24.01.12 HTTP (0) | 2024.01.12 |
24.01.10 네트워크 기기 (0) | 2024.01.10 |
24.01.09 TCP / IP 4계층 모델 2 (1) | 2024.01.09 |
24.01.08 TCP / IP 4계층 모델 1 (0) | 2024.01.08 |