Network Layer
[ Logical Addressing ]
[ 1. IPv4 Address ]
인터넷에 붙어있는 각각의 커넥션을 유일하게 식별하기 위해 사용
the connection of a device : 커넥션당 IP는 하나씩 할당
# ICANN (Internet Corporation for Assigned Names and Addresses) 라는 미국 기관에서 IP 주소를 관리
# 한국인터넷진흥원(KISA(Korea Internet & Security Agency)) : 국내 도메인, IP 주소 관리
[ Classful addressing ]
Class A~C : unicast communication(1:1 통신) 에서 사용 (컴퓨터에 할당되는 IP)
Class D : multicast comm(1:N 통신) 에서 사용
Class E : 아직 미사용 (Reserved)
* 규모가 큰 네트워크엔 Class A , 규모가 작은 네트워크엔 Class C 부여
# Class A
73 netid 사용시, 시작점인 73.0.0.0(라우팅목적으로 사용) 과 73.255.255.255(broadcast용으로 사용)는 사용하지 않음.
# Special addresses
eg.
Network address : 134.75.0.0 (Class B) 네트워크 주소
Direct broadcast address : eg 134.75.255.255 자신이 속한 네트워크가 아닌 특정 네트워크(134.75.*.*) 네트워크 전체에 전송
Limited broadcast address : eg 255.255.255.255 자신(134.75.*.*인 경우)이 속한 네트워크 전체(134.75.으로 시작하는 IP )에 전송 용도로 사용
Loopback address : 127.0.0.1 localhost
[ # Subnetting ]
- Hostid 의 일부를 Subnetid 로 사용하여 ip table 를 관리
141.14.0.*
141.14.64.*
141.14.192.*
141.14.128.*
hostip를 subnetip로 사용하여(ip 대역을 나눠), ip table 을 관리한다. (위 4개 대역으로 구분하여 관리)
[ # Mask ]
- 어디까지가 subnet인지 구분하기 위함. (network 와 host 를 구분)
- Mask 표기하는 방법은 아래 두가지 방법이 존재
DDN(Dotted-Decimal Notation)
slash notation(=Classless Interdomain Routing(CIDR) notation)
- 1로 채워진 부분은 network , 0으로 채워진 부분은 host 부분으로 구분
- Class A의 경우, DDN 방식은 255.0.0.0, CIDR 방식은 /8 (좌측기준으로 1이 채워진 갯수)이 Default mask.
eg. 내 IP 주소가 141.14.5.6 이고 Mask 는 255.255.255.0 인 경우, 해당 네트워크는 subnetting이 되어있다고 할 수 있다. (내 IP 주소 141.14.5.6 은 class B이며, class B의 default Mask 는 255.255.0.0 이므로)
* 255.255.255.255 : 내 IP주소가 속한 141.14.5.* 에게 broadcast
[ Classless addressing ]
- class 구분 없이 ip 를 사용
- 필요한 ip address 갯수만큼만 ip 부여
- Variable-length blocks (가변길이블럭) 을 가짐
* Classful addressing 은 네트워크 규모에 따라 class A~C 를 부여하며, 각 class 의 ip 갯수는 고정적으로 정해져 있음.
[ # classless addressing 의 규칙 ]
1) 연속적인 주소
2) address 갯수가 2의 배수
3) address 시작 주소가 address 갯수로 나누어 떨어지는가
1) 32부터 47까지로 연속적인 주소
2) 총 16개의 address 로 2의 배수
3) 시작주소 (32)가 갯수(16)로 나누어 떨어짐
* 시작주소인 205.16.37.32, 마지막주소인 205.16.37.47 은 hostip로 부여 불가
[ # classless address 에서의 mask ]
- mask 는 보통 slash notation만 사용
* subnet mask 부여방법 : 16개 주소 할당(우측부터 4비트 사용), 나머지 좌측bit 는 모두 1, subnet mask는 /28 (CIDR)
* 17.12.14.0/26 은 64개의 ip 주소가 할당 되어있는 셈 (맨앞(네트워크)과 맨뒤(broadcast) address 를 빼면 실제론 62개)
=> /26은 00000000.00000000.00000000.00xxxxxx 를 의미하므로..
00001110.00000000 /27 : 노랑색영역 ~.0/27
00001110.00100000 /28 : 초록색영역 ~.32/28
00001110.00110000 /28 : 핑크색영역 ~.48(32+16)/28
* 영역 한개를 더 늘리고 싶을경우 비트 한개를 더 사용해야 함
[ # NAT (Network Address Translation) ]
주소 한개를 내부적으로 여러개로 사용가능케 함.
* 10.x.x.x, 172.16.x.x, 192.168.x.x 로 시작하는 공인IP는 없다.
1) Static NAT
사설 IP와 공인 IP를 1:1로 매핑
시스템 내의 실제 IP를 외부에 노출하지 않기 위해 사용
* 시스템 내의 real IP를 노출하지 않기 위해, 공인망의 서버는 사설망 서버에 연결할 때 NAT IP를 사용하여 붙이고, 사설망 내의 서버끼리의 연결은 real IP를 사용.
2) Dynamic NAT
IP테이블에 비어있는 주소를 부여
3) PAT (Port Address Translation)
ip와 port 를 모두 사용
프로그램을 구분하기 위해 port 사용
eg. 동일한 공인IP를 사용하는 PC1(NAT 172.18.3.1), PC2(NAT 172.18.3.2) 외부 서버(공인 IP 25.8.3.2)에 접속시
외부 서버는 PC1, PC2 의 접속을 port 로 구분. (PC1, PC2의 공인 IP는 동일)
[ 2. IPv6 Address ]
등장배경
- IPv4 주소 부족
- IPv4 audio/video 실시간 전송의 한계
- IPv4는 보안 기능이 없음
- 16진수를 사용
- DDN(dotted)표기법이 아닌, 콜론을 사용하여 표기
# IPv6 생략가능한 표기법
1) 0000 -> 0 으로 줄임 -> 0은 생략하여 표기 생략 가능
2) 0074 -> 74 : 앞자리 0은 생략
※ KOCW 성균관대학교 안성진 교수님의 컴퓨터네트워크 강의 참고
※ NAT IP 에 대해 보다 자세히 쓰여있는 글 : NAT 설명1, NAT 설명2