본문 바로가기

Coding Note

[Network] Special Address

강의진도 맞춰서 포스팅 하는건 포기했다.
그냥 시간날때 천천히 쓰는게 맘편한듯하다.

Special Address : IP 주소 중에서 특별한 목적에 쓰이는 주소 

special blocks : special address in blocks
1. all zero block : 새로운 호스트가 DHCP server에 호스트 할당을 요청할 때 쓰는 주소로, 아래와 같이 IP를 설정한 뒤 네트워크에 패킷을 날리면, DHCP서버에서 호스트에게 적당한 IP를 할당해서 되돌려준다.
보내는 주소 (source IP) : 0.0.0.0
받는주소(destination IP) : 255.255.255.255 

2. limited broadcast address : destination IP주소가 255.255.255.255 이면 그 네트워크의 모든 호스트가 패킷을 쳐다보게된다.
하지만 해당 네트워크의 라우터는 외부 네트워크로 이 패킷을 전달시키지 않는다.(만약 전달된다면 네트워크가 마비됨)

3. loopback address : 127.x.y.z 형태의 주소를 목적지 IP로 가지면, 루프백 주소라고 부른다. 루프백 주소를 목적지로하는 패킷은 이름에서 알 수 있듯이 나갔다가 자신에게 다시 돌아오게된다. 주로 프로세스간의 통신이나 네트워크 서비스 어플리케이션의 점검에 쓰인다.
 잘 알려진 loopback 주소로는 localhost를 의미하는 127.0.0.1이 있다.

4. address for private Network : 사설 네트워크를 위한 주소로 실제주소가 아니라 사설 망 안에서만 식별가능한 주소이다. 
10.0.0.0/8     ,       192.168.0.0/16      ,        172.16.0.0/12      ,        169.254.0.0/16
이 있고, 외부에서 이 주소를 안다고 해서 그 호스트에 접근할 수 있는것은 아니다. 
대부분의 일반 가정에서 공유기가 쓰이는 만큼, 이런 IP주소를 접해본 사람이 꽤 될것이다. 하지만, 실제 주소는 그 공유기의 외부에 대한 주소가 되고, 공유기는 자신에게 연결된 호스트들에 대해서 테이블을 구성해 적절하게 들어오는 패킷과 나가는 패킷을 구분짓게된다.

5. directed broadcast address : 라우터가 브로드캐스트 할 일이 있을 때 이 주소를 사용한다. 이 때 목적지 주소는 해당 네트워크 의 마지막 주소가 된다. (때문에 일반 호스트에겐 이 주소를 assign 해주지 않는다.)
예를들어 221.45.71.0/24 인 넷블럭에서 directed broadcast address는 221.45.71.255 이다.

6. network address : 이건 신선한 내용은 아니지만,,  네트워크 블럭에서 맨 처음 주소는 네트워크주소라 하고 일반 호스트에게 assign하지 않는다. 대신 패킷을 포워딩 및 라우팅 할 때 목적지인지를 식별하는 기능으로 사용된다.

#NAT ( Network Address Translation)
지금까지 IP주소의 할당에 방식엔 하나의 문제가 있는데, 호스트 수가 늘어나 IP를 더 할당받고싶어도 바로 다음의 IP주소가 이미 다른데서 사용하고 있으면, 새로운 형식의 네트워크주소로 IP를 할당해 줄 수 밖에 없다는 것이다.(이렇게되면 라우팅 및 포워딩과정에서 엄청나게 복잡해진다.) 이런 문제를 해결하기 위해 NAT 시스템을 이용하게되었다.

NAT란? : 하나의 IP로 여러 호스트가 네트워크를 이용할 수 있게 해주는 것. NAT Router를 통해 이루어 지는데 요즘의 대부분 공유기는 이 기능을 포함하기 때문에 그냥 공유기가 NAT기능을 가진다고 해도 될정도다.

NAT router는 Translation table을 사용하는데, 이 안에는 호스트 IP와 포트(논리적인 의미의 포트)번호가 매칭되어있다.
이 때 호스트들은 위의 4번에서 설명한 사설 네트워크 주소를 가지고, NAT router를 통해서 고유의 포트번호를 지정받게된다. 그러면 패킷이 나갈때는 라우터에서 외부 식별 가능한 실제 IP 주소로 포장하여 해당 호스트의 포트번호와 함께 전달하게되고, 받을때는, 포트번호에 때라 전달받은 패킷이 어떤 호스트로 가야할 지 결정한다.