센로그

Chapter 19. NETWORK LAYER : LOGICAL ADDRESSING 본문

CS/컴퓨터 네트워크

Chapter 19. NETWORK LAYER : LOGICAL ADDRESSING

seeyoun 2022. 11. 30. 10:18


◆ IPv4 Addreses

IPv4는 현재도 사용중인 32비트 주소. 

모든 네트워크가 연결돼있다고 가정했을 때 그 모든사람들이 통신하기 위해선 고유의 IP가필요함.

2^32 까지 표현 가능하므로, 이론적으로 총 42억개 까지 가능함.

 


■ IPv4의 구성

32비트를 8비트씩 쪼개서 읽기 쉽게 10진수로 표현.

 


◆ IPv4 - Classful Addressing
: 클래스형 주소지정

 

IPv4는 주소를 할당할 때 클래스가 나눠져 있음.

A, B, C는 서울시, 강남구, 역삼동 과 같이 네트워크의 규모를 나타냄

D는 멀티 캐스팅을 위한 주소이고, 

E는 reserve 되어있음.

 

기관의 규모에 따라 A, B, C를 받아서 사용함!

 

무슨 클래스인지 어떻게 아냐?

 

첫 바이트 내에서 3비트까지만 보면 무슨 클래스인지 알 수 있다!

첫 비트가 0이면 무조건 A class, 10이면 B class.. 이런 식임

10진수로 변환하면 b 그림처럼 됨.

 


class A를 받으면 표와 같이 엄청 많은 호스트들을 붙일 수 있다. 

class A는 주로 통신 사업자에게 배포함.

 


◆ Net ID와 Host ID

Logical Address = Net ID + Host ID

IP 주소는 Net IDHost ID로 구성되어 있음

Net ID는 네트워크의 식별자로, 네트워크의 규모를 나타냄.

즉 Net ID를 보고 해당하는 클래스의 네트워크를 찾아감.

 

class B 네트워크의 "수원시 영통구 | 경희대학교 전자정보대학"이 주소라고 하면,

라우터는 정확한 호스트 주소까진 알 필요 없음.

다만 '수원시 영통구' 라는 Net ID를 가진 라우터에게 패킷을 전달함.

 

Host ID는 내 컴퓨터의 식별자.

 


◆ Subnet

그런데 이렇게 하다보니 class A 같은 애들의 경우, 컴퓨터가 너무 많고 관리가 힘듦!

네트워크를 좀 더 분할하고 싶어서 만든 게 바로 subnet (서브넷)

 

Subnet Mask (서브넷 마스크)는 서브넷을 구분하기 위해서 번호를 하나 더 만들자! 라는 개념임

 

CIDR은 IP주소 32비트 중, 몇 비트까지가 Net ID인지(서브넷 포함) 서브넷 마스크를 표시한 것임.

 

▽ 이렇게 생김

기본적으로 class A의 경우 8비트까지 Net ID이다

그런데 네트워크를 조금 더 쪼개고 싶을 수 있잖아?

그래서 서브넷 개념을 써서 11비트까지 Net ID라고 하면 CIDR은 /11 이 될 것임

 

주소 비트로 3비트를 더 씀 == 네트워크를 2^3개로 더 쪼갬


■ Subnet의 Broadcast 주소

서브넷에 속하는 모든 호스트들이 듣게 하기위한 broadcast 주소.

서브넷 마스크의 0인 부분을 전부 1로 바꾸면 됨.

 

- 서브넷 안 쓰는 경우

내 주소가 C Class의 192.168.2.14라고 하자.

그러면 192.168.2.0이 네트워크 주소이고, broadcast 주소는 192.168.2.255

 

- 서브넷 쓰는 경우 

내 주소가 165.132.120.10 이고, /22라고 하자.(255.255.252.0)

그럼 이제 2진수로 바꿔줘야 함.

내 주소는 10100101 10000100 01111000 01100100

서브넷 마스크는 11111111 11111111 11111100 00000000

==> 네트워크 주소는 10100101 10000100 01111000 00000000 이다. (Bit AND 연산)

여기서 서브넷 부분, 즉 뒤의 00 00000000 부분을 11 11111111로 바꿔준

10100101 10000100 01111011 11111111이 서브넷의 broadcast 주소이다!

 

 

이런 식으로 시험)

서브넷 마스크가 /26 이렇게 표시되어 있을 때,

두번째 그룹의 브로드캐스트 주소는 얼마입니까?~


◆ Supernet

서브넷은 큰 걸 작게 쪼갠 거고,

수퍼넷은 쪼개진 걸 합치고 싶은 것임.

C클래스라서 원래 /24였는데 /22로 합침

합쳐서 수퍼넷 만들 수 있다(번호가 지금 32 33 34..이렇게 연속적인 경우에 가능)


 

이런 식.


◆ NAT (Network Address Translation)

네트워크 주소가 고갈되고 있어요

사실 이미 42억개 넘어섰음. 그러나 통신 잘 되자나? 어떻게 된 거야?!

=> NAT 사용.

 

네트워크 클래스 별로 또 다른 주소를 붙여서, 네트워크 주소를 만들 수 있게 함.

 

 

공유기에서는

진짜 외부랑 통하는 IP주소(NAT주소) 하나가 있고

그밑에 나머지 컴퓨터들은 진짜 외부랑 통하는 IP주소가 아닌

사설용으로만 쓸수있는 주소(Private address)정의해놨으니 이걸붙여서써라~라는 개념. (공유기의 사설 네트워크.)

 

공유기에서 대부분 IP주소 확인해보면 192.168로 시작함. (== 사설 주소)

Ipconfig 치면 저런거 나오는데, 저걸로는 외부에서 들어올 수 없음. 

왜냐면 서로 다른 AP 아래에서는 누구든 저 주소를 가질 수 있는거임. 가짜 주소임

 

그럼, 어떻게 공유기로 들어와서 나한테 정확히 들어오죠?

=> 이걸 가능하게 해주는게 네트워크 주소를 번역(Translation) 해주는거임.

 


그럼 이걸 어떻게 번역하느냐? NAT router 을 사용해서 번역함!

라우터의 200.24.5.8은 실제로 classful한 주소(B class). 외부와 통신할 수 있는 주소임

내부의 172.18.~~ 이건 사설 주소라서, 이 주소로 외부로 나갈 수는 없음!

 


사설 IP 받은 컴퓨터가 네트워크 외부의 목적지 주소로 패킷을 보내면, NAT 라우터가 사설 주소를 NAT 주소로 바꿔치기함.

그럼 받은 애가 응답 보낼 때 이 NAT 주소로 보내겠지?

그러면 다시 라우터로 돌아왔을 때, 아~ 아까 그쪽으로 요청한 애는 너구나! 하고 진짜 내 컴퓨터로 보내줌.

즉, 내 사설 주소랑 외부 목적지 주소를 translation table에 기록해두고 나중에 받아오는 방식~ 

 

 

▽ translation table에 기록해두는 거 목록


◆ IPv6 Addresses

: IPv4 주소가 고갈됨으로써 다른 버전의 주소를 만든 것! 주로 IoT에 많이 사용

 

길이는 128비트. 즉 2^128 개까지 주소를 만들 수 있음

16비트씩 잘라서 이렇게 표현 (16진수로)

 

 

넘 기니까, 0이 많이 올땐 이렇게 줄여서 표현하기도 함.

 

주로 앞에 48바이트까진 MAC주소 쓰고 나머지는 자동으로 할당받게 하는 구조로 되어 있당

 

 

 

Comments