주소와 이름
- IP 주소: IPv4 프로토콜에서 사용
- 32 bit의 주소 체계
- IPv6에서는 128 bit 주소 체계로 확장
- 호스트 이름: <호스트>.<단체 이름>.<단체 종류>.<국가 도메인>
- 국가 도메인: kr, jp, us 등
- 단체 종류: co, ac, go 등
- 호스트 파일: 호스트 이름과 IP 주소의 조합을 텍스트 파일로 관리
주소 정보의 관리
- IP 주소: 전 세계 모든 컴퓨터에 부여된 고유의 식별 주소
- 현재 사용 중인 버전은 IPv4, 차세대 버전은 IPv6
- 통신 용도에 따라 3종류로 분류
- 유니캐스트: 일대일 통신, 컴퓨터나 라우터 등 호스트의 인터페이스에 설정하는 IP 주소
- 브로드캐스트: 목적지는 같은 네트워크상의 모든 호스트
- 멀티캐스트: 서비스 제공자와 일대일 대응 방식의 유니캐스트와는 달리 일대다 대응 방식
- 사용 목적: 데이터의 중복 전송으로 인한 네트워크 부하를 최소화
- 접속자의 한계를 벗어나 획기적으로 비용을 절감시켜 주는 대안 기술로 떠오르고 있음
- IP 주소의 구성: Network ID + Host ID
- IP 주소를 클래스로 나눔으로써 32bit 중 어디까지가 네트워크 ID이고, 호스트 ID인지를 판별
IP 주소의 Class
- 클래스는 A~E 클래스의 5 종류가 있으며 이 중 하나로 IP 주소를 분류할 수 있음
- A~E 클래스 중 호스트 인터페이스에 설정할 수 있는 유니캐스트 IP 주소는 A~C 3 종류
A 클래스
- 맨 앞의 bit 패턴이 0
- 맨 앞의 8bit의 10진수 표기는 1~126
- 네트워크 ID와 호스트 ID의 구분은 8bit 째에서
- 네트워크 ID의 개수는 126개
- 호스트 ID의 개수는 약 1600만개(2^24 - 2)
B 클래스
- 맨 앞의 bit 패턴이 10
- 맨 앞의 8bit의 10진수 표기는 128~191
- 네트워크 ID와 호스트 ID의 구분은 16bit 째에서
- 네트워크 ID의 개수는 16,382개
- 호스트 ID의 개수는 약 65,534만개
C 클래스
- 맨 앞의 bit 패턴이 110
- 맨 앞의 8bit의 10진수 표기는 192~223
- 네트워크 ID와 호스트 ID의 구분은 24bit 째에서
- 네트워크 ID의 개수는 2,097,150개
- 호스트 ID의 개수는 약 254만개
할당할 수 없는 IP 주소
- A ~ C 클래스 IP 주소에서 모든 클래스의 네트워크 ID와 호스트 ID의 개수 계산식에 -2가 들어가 있었던 이유?
- 네트워크 ID와 호스트 ID를 bit로 변환했을 때 모든 bit가 0 또는 1이 되는 IP 주소는 사용할 수 없다는 규칙이 정해져 있기 때문
- 예외사항: 네트워크 ID or 호스트 ID bit가 모두 0 or 1인 IP 주소는 특수한 용도로 예약
- 호스트 ID bit가 모두 0: 네트워크 주소
- 호스트 ID bit가 모두 1: 브로드캐스트 주소
- e.g. 192.168.1.0 → 네트워크 그 자체를 나타냄
클래스풀 주소
- 클래스에 기초한 IP 주소
- 8bit 단위로 네트워크 ID와 호스트 ID를 구분하므로 클래스풀 주소는 알기 쉽고 편리
- 클래스풀 주소는 낭비가 심한 주소 체계라고 생각할 수 있음
- A 클래스 네트워크 하나는 1600만 개 이상의 호스트 ID를 사용할 수 있음
- 아무리 대형 네트워크라도 네트워크 하나에 1600만 개 이상의 호스트가 연결되는 것은 현실적으로 불가능
- 결국 A, B 클래스에서는 매우 많은 IP 주소가 사용되지 못하고 남아돌게 됨
- 클래스 주소는 IP 주소의 이용 효율이 매우 나쁨
- 보다 효율적으로 IP 주소를 이용하기 위해 클래스풀 주소에서 classless address로 옮겨갈 필요 요구
서브넷 마스크
- IP 주소와 세트로 사용
- IP 주소의 32bit 중에서 어디까지가 네트워크 ID, 어디까지가 호스트 ID인지를 가리키는 역할
- 서브넷 마스크도 IP 주소를 8bit씩 10진수 변환 표기
- bit가 0인 부분이 네트워크 ID, 1인 부분이 호스트 ID
서브넷 마스크 규칙
- 네트워크 ID를 나타내는 1이 연속해서 나온 다음에 호스트 ID를 나타내는 0이 연속해서 나와야 함
- bit 1과 0이 섞여 나오는 서브넷 마스크는 존재하지 않음
서브넷 마스크의 필요성
- 클래스를 적용하지 않는 classless address가 이용되는 이유
- 네트워크 ID와 호스트 ID를 구분하는 위치를 유연하게 설정할 수 있기 때문
- 8bit 단위로 네트워크 구분과 호스트 부분을 나누는 클래스풀 주소는 많은 수의 주소가 낭비됨
- 하지만 classless 주소는 네트워크 ID와 호스트 ID의 구분을 8bit 단위로 하지 않아도 됨
- 주소를 12bit나 20bit로 나누는 등, 네트워크 ID와 호스트 ID를 구분하는 위치를 필요에 따라 유연하게 정할 수 있음
- classless 주소가 클래스풀 주소와 달리 주소의 낭비를 줄일 수 있음
IP 시스템 구성
- Internet Service Provider (ISP): 일반 사용자나 기업체, 기관, 단체 등이 인터넷에 접속하여 인터넷을 이용할 수 있도록 해 주는 사업자
- IP 주소는 255 255 255 255개의 주소를 표현
- IP 주소가 부족해서 이를 보다 효율적으로 사용할 궁리를 하기 시작함
Public IP
- 일반적으로 보던 IP
- 네이버 사이트에 접속 시 주소 창에 네이버 웹의 public IP를 치면 바로 이동할 수 있음
Private IP
- 사용 목적: Public IP가 비싸기 때문
- 노트북과 핸드폰에게도 각각 Public IP를 주면 편하겠지만 비용의 문제
- 공유기가 컴퓨터와 핸드폰에 Private IP를 부여
- Private IP는 아래 범위만 사용, 나머지는 모두 Public IP
- A: 10.0.0.0 ~ 10.255.255.255
- B: 172.16.0.0 ~ 172.31.255.255
- C: 192.168.0.0 ~ 192.168.255.255
- 위 범위 내의 숫자는 모두 사용 가능, 다른 네트워크에 있는 특정 컴퓨터와 겹칠 걱정 없이 사용할 수 있음
IP 주소를 할당한 ISP 확인
공인 IP 주소
- 인터넷상에서 중복되지 않는 IP 주소
- 인터넷에 접속하기 위한 라우터, 인터넷에 공개되는 웹 서버 등은 반드시 공인 IP 주소를 설정해야 함
사설 IP 주소 (가상 IP)
- 공인 IP 주소는 무한히 존재하지 않는 이유로 생겨난 것이 사설 IP
- 회사 내부망처럼 외부와 연결되지 않는 네트워크에서는 공인 IP를 사용할 필요가 없음
- 와이파이, 학교 공용 컴퓨터 등을 보면 아이피가 대부분 사설 IP
- 국제 표준에 의해 특수목적으로 예약된 IP이므로 내부 충돌을 빼고는 충돌할 걱정이 없음
- 공인 IP주소로 이용되지 않는 범위의 IP 주소를 설정해 자유롭게 돌려씀으로써 공인 IP 주소의 고갈에 대비
- 사설 IP 주소의 범위
- 10.0.0.0 ~ 10.255.255.255 (10.0.0.0/8): 어느 정도 규모가 있는 사내 네트워크의 범위
- 172.16.0.0 ~ 172.31.255.255 (172.16.0.0/12)
- 192.168.0.0 ~ 192.168.255.255 (192.168.0.0/16): 홈 네트워크에서 많이 사용하는 범위
NAT
- NAT를 수행하는 장비가 목적지의 IP 주소를 사설 IP 주소에서 공인 IP 주소로 변환해서 전송해줌
- NAT 장비는 사설 IP 주소와 공인 IP 주소의 조합을 NAT 테이블에 저장하고, 통신은 쌍방향으로 이루어짐
- NAT 변환된 패킷이 되돌아오면 NAT 테이블을 참조해서 돌아오는 패킷의 목적지 IP 주소를 공인 IP 주소에서 원래의 사설 IP 주소로 변환해서 전송