본문 바로가기
대학원 공부/computer science

Network : Network Layer : Logical Addressing

by 월곡동로봇팔 2019. 12. 12.

1. IPv4 주소

IPv4 주소는 32ibt로 xxx.xxx.xxx.xxx 으로 이루어져 있다.

이는 0.0.0.0 -- 255.255.255.255 까지 이루어져 있으며, 실제로 한 칸당 8bit 씩 표현 가능하다.

 

그리고 IP 주소는 internet에서 여러 device들과 연결을 정의해주는 주소이다.

IP 주소라는 logical 한 주소를 할당하여, 내가 가야하는 host들의 주소를 정의한다.

internet 공간에서는 IP 주소를 보며 host가 맞는지 확인하고, 실제로 신호가 가는 hop 간은 MAC 주소를 보고 이동다.

 

1.1 Classful Addressing

IP Class

첫 byte 기준으로, A,B,C,D,E class 로 나눈다. 이 나누게 되는 기준은 규모의 크기이다. A가 제일 규모가 큰 class이다.

이는 계산을 통해 쉽게 정리된다. A는 3개의 byte로 주소 체계를 표현가능하기 때문에 2**24 개의 주소를 표기 가능하다.

B는 2개의 byte로 표현하기 때문에 2**16 개의 주소를 표기한다. 이는 class가 내려갈수록 규모가 작아짐을 알 수 있다.

 

이렇게 network를 나눠놓음에 따라, 우리는 network를 빠르고 효율적으로 쓰기 가능하다.

 

(예를 들어, 엄청 큰 회사인데 C class에서 여러개 나눠서 쓰는거보다, A class 하나 받아서, 거기서 subnetting으로 나눠놓는 것이 더 효율적이라는 얘기이다.)

 

IP 주소는 Class 마다 Netid + Hostid로 나뉘어서 보인다. 이를 나눌때 쓰는 것이 Mask 이다.

 

IP 주소의 구성

- A,B,C는 netid + hostid로 구성되어있다. A는 첫 바이트가 netid, 나머지가 hostid 이다. 즉 개개인의 주소를 알려면 뒤의 3개의 byte 부분을 봐야 한다.

- D class는 multicast 주소이다. A,B,C 는 unicast 주소이다.

- E class는 나중을 위해 아껴두는 주소, 255는 broadcast 주소이다.

 

1.2 Default Mask

Default Mask는 network의 class를 XOR 연산을 통해서, 컴퓨터가 한 눈에 알기 쉽게 해준다.

255.0.0.0, 255.255.0.0, 255.255.255.0 의 3가지 Default Mask가 있다.

 

예를 들자면, 163.180.13.23 이라는 IP주소가 있다면, 255.255.0.0 이라는 B class를 담당하는 Default Mask를 xor 연산을 해준다. 그럼 163.180.0.0 이 되고 이는 NetID이다.

 

처음에 IP를 할당 받을 때, 이미 Default mask가 정해져 있다.

우리는 Default mask를 보고 netid를 한 번에 알 수 있다. 이로써 네트워크를 효율적으로 빠르게 쓸 수 있다.

 

1.3 Subnetting, Subnet Mask

network를 잘게 쪼개서 subnetwork address를 가진다.

 

Subent Mask 적용

그전까지는, 위에서 Default Mask로 나눠놓은 구간끼리 나눠져있어서, 그 부분을 사용했지만,

IP를 부여받고도, 그 network 안에서 또 구역, 기능 별로 나눠놓으면 훨씬 효과적이다.

 

이 때, 쓰는 개념을 subnetting 이라 한다.

위와 같이 Subnetting을 하기 위해, B class인 network 들을 3번째 byte에 111 을 추가하여서, subnet mask를 만들었다.

 

여기에서 subnet의 개수는 2**3,  8개이다. 그 이유는 MASK이기 때문에 111에 해당하는 부분을 netid로 만들겠다는 뜻이다. 이 말은 B class인 ip를 111에 해당하는 부분까지 보겠다는 말이다. hostid는 111에 해당하는 뒷 부분이 hostid이다.

 

<deafult mask, subnet mask가 기능을 하는 과정>

그럼 위에는 Default Mask는 255.255.0.0 이고, Subnet Mask는 255.255.224.0 으로 알 수있다.

이는, 어떤 IP주소가 (예를 들어, 163.180.103.254) 들어왔을 때, routing table에 subnet mask가 만약

255.255.255.1111|1000,(248) 이라면 계산결과는 163.180.103.248, 이 subnet mask의 XOR 연산결과가 routing table에

있다면, routing table이 가르키는 interface로 빠지게 된다. 

여기서의 subnet의 갯수는 248개, hostid는 8개로 정의할 수 있다.

 

1.4 Supernetting

supernetting

Supernetting 이란, IP주소 할당 받은 양이 너무 작아서, class가 작은 것들을 뭉쳐서 하나의 큰 덩어리 network를 구성한다.

 

위의 그림을 보면, class C 들을 하나의 supernetwork로 묶어두었다.

그러므로, router에서 넘어올 때, class c의 default mask인 255.255.255.0 으로 넘어오는 것이 아니라,

이런식으로 세번째 칸에 255가 3bit 줄어드는 것을 우리는 볼 수 있다.

 

 

1.5 NAT (Network Address Translation)

Address for private networks

위에 있는, 10.0.0.0, 172.16.0.0, 192.168.0.0 세가지는 이 IP 주소로 할당된 것들은 모두 private 이니 맘대로 써라! 다.

이는 사용자들끼리 내부적으로 자율적으로 쓰게 두면서, IP의 확장성이 생겼다.

 

 

NAT

원래는 지금 bus 에 연결되있는 PC들도 IP 주소 할당받아서 써야하지만, 지금 우리는 IPv4는 고갈되었다.

따라서, 외부에 보여지는 IP(router가 담당) 는 200.24.5.8 이라 하나지만, NAT를 구성하여, 사용한다.

 

 

NAT router

만약 pc에서 packet을 보낸다면, NAT router를 통해 타고나가서, ip주소는 172.18.3.1 -> 200.24.5.8 로 바뀐다.

그리고 private ip주소, 도착지점의 ip주소를 적어둔다. 이를 NAT Translation table 이라 한다.

나중에 이 Translation table을 보고, ACK 나 NAK를 받을 때, 이를 통해서 받을 수 있다.

 

NAT Table

NAT를 적극적으로 쓸 수 있는 곳은 , wi-fi 다. 

 

 

NAT vs DHCP (Dynamic Host Consitute Protocol)

NATDHCP를 비교하시오. 둘 다 주소의 부족 문제를 해결하지만 서로 다른 전략을 사용한다.

NAT network address translation 으로 하나의 주소로 router와 연결한 후, 그 주소 밑으로 private network를 형성한다. 10.0.0.0 – 10.255.255.255, 172.16.0.0 – 172.16.255.2555, 192.168.0.0 – 192.168.255.255를 사용한다.

DHCP dynamic host configuration protocol 로 동적호스트 구성 프로토콜을 얘기한다. 이는 고정으로 IP를 쓰는 것이 아니라, 동적으로 바꿈으로써, 한정적인 network를 동적으로 바꿔줌으로써 주소의 부족 문제를 해결한다.

 

 

1.6 TCP/IP 구조

TCP/IP

IPv4는 TCP/IP protocol을 쓴다.

 

IP를 쓰는 Network Layer에서는 Connectionless 로 error control을 제대로 하지 못하기 때문에, Trasport layer에서 TCP, UDP, SCTP protocol을 사용하여 connection-oriented를 도와준다.

 

2. IPv6 주소

 

IPv6

IPv6는 16bit 씩 6개의 칸으로 나뉘어져 있다.

 

IPv4를 Internet 상에서 router 들에게 분배하고, IPv6는 보통 device들에게 분배한다.

댓글