[ Internet protocol ]

frame Datalink layer : 연결만 관여

packet Network layer : 라우팅, 에러 관리

 

[ # Datagram protocol ]

- connectionless service

- 각각의 패킷이 독립적임

- 패킷 송신시 경로가 그때그때마다 네트워크 상황에 따라 달라짐

 

IP packet 은 네트워크에서 순서에 무관하게 수신됨

* TCP/IP (TCP over IP): ip packet 전송은 순서를 보장하지 않지만 TCP가 위에서 순서를 맞춰줌

 

[ # IP (IPv4) ]

- unreliable, connectionless databgram protocol

- best-effort delivery service (최대한 노력하는 서비스(100%보장 없단의미))

- no error control/flow control

- error detection

- reliability 가 중요하다면 TCP와 함께 써야함

- 20~60bytes 사이 가변길이 header를 갖는다(IPv6는 40bytes 로 고정)

- 각행은 4bytes

 

 

Datagram(packet)

[ header 규격 설명 ]

# 1. VER : IP version (현재는 ver.4 사용)

# 2. HLEN : header length, 행 갯수를 의미

* header length 가 5일 경우 header 의 크기는 5*4bytes = 20bytes

 

# 3. Service : TOS(type of service), DS(Differentiated service) 와 같이 서비스 종류를 구분하는 용도

* TOS : 4비트를 DTRC로 나누어, 원하는 서비스 형태를 표현 (eg: FTP 0100(T가 제일 중요), DNS 1000(D가 제일 중요))

 

# 4. Total length : IP datagram 길이, data 크기를 파악하기 위함

 

[ Fragmentation : 단편화 ] 

네트워크마다 MTU가 다르므로 datagram 을 단편화 해야한다.

아래 #5~#7 의 Identification, Flags, fragmentation offset 은 단편화 한 IP packet 의 순서를 구분하여 도착지점의 reassembly를 가능케 한다.

* MTU (Maximum transfer unit) : 송신가능한 최대 크기

* reassembly 는 최종 도착점에서만 한다. (MTU에 맞게 단편화한 IP packet을 중간 경유지 네트워크에서 다시 합치지 않는다)

 

 

# 5. Identification : fragmentation 이후 reassemble 을 할 때 ip packet 을 구분하는 용도

# 6. Flags : fragmentation 후 마지막 패킷을 구분하기 위한 용도로 사용

Flags : 1번째 비트는 미사용, 2번째 비트는 fragmentation을 원치않을때 사용, 3번째 비트가 0인경우 마지막 패킷임을 의미

# 7. fragmentation offset : 패킷 순서표시

Identification, flag, flagmentation offset의 예

# 8. Time to live (TTL) : 라우터를 거칠 때 마다 -1, 0이 될 경우 라우터에서 discard

# 9. Protocol : ip packet을 처리 후 상위계층 어디로 보내야 하는지 구분자 역할. TCP(6)/UDP(17)/ICMP(1) 등

# 10. Headerchecksum : 헤더 에러 체크 용도

# 11. Options : 최대 40bytes.

1) no operation option : header 4bytes 크기를 맞추기 위함

2) end of option : header 4bytes 크기를 맞추기 위함

3) record route option : internet router 리스트 record 목적

4) strict source route option : 송신자가 거쳐갈 route를 지정할 경우 사용

 

# IPv6가 IPv4에 비해 갖는 장점

1. address 주소가 훨씬 많음. 128bits 크기

2. 고정 header format 및 크기(40bytes)를 가지므로 처리 용이

3. 보안

 

# Transition from IPv4 and IPv6 : IPv4 에서 IPv6 으로의 전환

1. Dual stack : IPv4, IPv6을 모두 사용, DNS 의 응답으로 IPv4/IPv6 구분

2. Tunneling : IPv6 --> IPv4 --> IPv6 와 같이 중간 라우터구간에서 IPv4 사용하는 경우 사용.

3. Header translation : IPv6 헤더를 IPv4 헤더로 변환, 반대의 상황도 마찬가지.

 

※ KOCW 성균관대학교 안성진 교수님의 컴퓨터네트워크 강의 참고

반응형

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 주소 관리

 

dotted-decimal notation 

 

[ Classful addressing ]

Class A~E

Class A~C : unicast communication(1:1 통신) 에서 사용 (컴퓨터에 할당되는 IP)

Class D : multicast comm(1:N 통신) 에서 사용

Class E : 아직 미사용 (Reserved)

 

* 규모가 큰 네트워크엔 Class A , 규모가 작은 네트워크엔 Class C 부여

 

# Class A

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 를 관리

subnet 사용과 subnet 미사용의 차이.
subnetting의 예

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)

 

각 class의 Default mask

- 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

 

Subnet Mast 예. hostip 중 앞의 3bit를 subnet mask 로 사용.

 

[ 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 갯수로 나누어 떨어지는가

classless addressing의 예

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 를 의미하므로..

 

classless addres 에서의 subnet mask

00001110.00000000 /27 : 노랑색영역 ~.0/27

00001110.00100000 /28 : 초록색영역 ~.32/28

00001110.00110000 /28 : 핑크색영역 ~.48(32+16)/28

* 영역 한개를 더 늘리고 싶을경우 비트 한개를 더 사용해야 함

 

 

[ # NAT (Network Address Translation) ]

주소 한개를 내부적으로 여러개로 사용가능케 함.

 

Class A,B,C 의 NAT

* 10.x.x.x, 172.16.x.x, 192.168.x.x 로 시작하는 공인IP는 없다.

 

NAT router는 외부로 나갈때 공인IP로 변환, 내부로 들어올때 NAT 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 사용

PAT 의 예

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는 보안 기능이 없음

128 bits(16bytes)를 사용하는 IPv6

- 16진수를 사용

- DDN(dotted)표기법이 아닌, 콜론을 사용하여 표기

 

# IPv6 생략가능한 표기법

IPv6 의 표기법

1) 0000 -> 0 으로 줄임 -> 0은 생략하여 표기 생략 가능

2) 0074 -> 74 : 앞자리 0은 생략

 

 

※ KOCW 성균관대학교 안성진 교수님의 컴퓨터네트워크 강의 참고

NAT IP 에 대해 보다 자세히 쓰여있는 글 : NAT 설명1, NAT 설명2

 

 

 

 

반응형

+ Recent posts