본문 바로가기

TCP.IP

제 5장 네트워크층

TCP/IP가 보이는 그림책이라는 책을 통해서 정리한 내용



네트워크층의 역할


- 네트워크층은 다른 층과 달리 주된 프로토콜이 IP 하나밖에 없다.


- 네트워크층에는 통신 방법의 차이를 흡수하는 기능이 있다. 이에 의해 통신 방법이 다른 네트워크 상에 있는 컴퓨터끼리도 주고받기가 가능하게 된다. ( 통신 방법의 차이 : 케이블의 차이, 통신 형식의 차이 등)


- 네트워크층은 '누가 누구에게 전달할지'라는 통신에 있어서 가장 중요한 정보를 다루고 있다. 통신 상대를 정하기 위해서 네트워크상에 존재하는 모든 기기에는 고유의 주소 같은 것이 할당된다.


- 송신측에서 수신측까지의 경로가 여러 개 있을 수 있을 수 있는데, 적절한 루트를 사용하여 전달하는 것도 네트워크층의 역할이다.


- 네트워크층에서는 데이터 링크층에서 다룰 수 있는 크기보다 클 때는 분할한 후 헤더를 붙인다.


- 수신측에서는 IP헤더에 쓰여진 수신처의 주소(IP 주소)를 확인하고 자기 앞으로 온 것만 받는다. 그리고 트랜스포트층의 지정된 프로토콜에게 전달한다. 만약 데이터가 분할되어 있다면 조립한 후에 전달한다.


Best Effort 방식


IP 데이터 전송은 Best Effort방식입니다. Best Effort란 '노력은 하지만 결과는 보장하지 않는다' 라는 뜻입니다. 헤더가 깨지지 않았는지 확인하거나 수신처의 주소가 존재하는지 아닌지에 대한 판단 및 처리를 한다. 단, 재전송 처리는 하지 않는다.


IP 주소


IP 주소는 네트워크상의 기기를 구별하기 위한 번호이다. 32자리 비트열로 되어 있다.


※ 같은 네트워크 안에 있다면 네트워크부는 똑같다.


- 완전히 똑같은 주소를 갖고 있는 컴퓨터가 여러 대 존재한다면 '컴퓨터를 지정한다'는 목적을 이룰 수 없다. 그래서 번호의 중복을 피하기 위해 ICANN이라는 기관이 중심이 되어 전 세계의 IP 주소를 관리하고 있다.


네트워크부와 호스트부의 경계


IP 주소만으로는 네트워크부와 호스트부의 경계를 알 수 없다. 그래서 서브넷 마스크(또는 넷마스크)라는 값을 사용하여 경계를 나타낸다.


서브넷 마스크는 네트워크부에 대응하는 비트를 1로 만든다.


서브네 마스크에 대한 자세한 설명

( 1 - http://poeta.tistory.com/204

  2 - https://www.microsoft.com/korea/technet/deploy/tcpintro8.mspx )


IP주소와 서브넷 마스크를 다음과 같이 묶어서 쓸 수 있다.


192.168.0.1/16

※ IP 주소 다음에 /(슬래시) 그 다음 네트워크부의 비트 수를 쓴다.


라우터 - 네트워크 간 연결해서 패킷이 수신처에 전달될 때까지 길 안내를 하는 기기이다. 라우터의 네트워크층에서는 IP헤더에 기록된 수신처의 IP 주소를 보고 그 다음 전송처를 결정한다.


※ '라우터의 역할 = 네트워크층의 역할'이라고 해도 과언이 아니다.


통신 세계에서는 통과한 라우터의 개수로 컴퓨터 사이의 거리를 나타낸다. 이때 사용하는 단위를 홉(hop)이라고 한다.


IP헤더에 관한 자세한 내용

( 1 - http://mindnet.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-18%ED%8E%B8-IP-Header-IP%ED%97%A4%EB%8D%94-%EA%B5%AC%EC%A1%B0

2 - https://www.microsoft.com/korea/technet/deploy/tcpintro5.mspx - ICMP내용도 있음)


네트워크층의 신뢰성


IP는 비커넥션형이다. 즉, IP는 UDP와 똑같이 비커넥션형 통신을 수행한다. 그래서 데이터가 상대에게 전달됐는지 아닌지는 전혀 관여하지 않는다.


이러한 점을 보안하기 위해서 등장한 것이 ICMP(Internet Control Message Protocol)이다.


ICMP는 IP 데이터그램의 통신 상태 등을 필요에 맞게 송신처에게 알려준다.





ICMP 헤더에 관한 자세한 내용

( 1 - http://gatolu.tistory.com/entry/ICMP-Header

  2 - http://stih.tistory.com/27 )



IP 주소의 설정 



DHCP(Dynamic Host Configuration Protocol) - 네트워크에 접속함과 동시에 필요한 설정이 자동으로 수행된다.


DHCP에는 DHCP클라이언트와 DHCP서버가 있다.


DHCP 클라이언트 - DHCP 서버에게 IP주소를 요청하고 일시적인 IP를 할당 받는다.

DHCP 서버 - 클라이언트의 요청에 대한 응답으로 IP 주소를 빌려주거나 서브넷 마스크에 대한 설정 정보를 제공한다.



DHCP 클라이언트는 요청을 할 때 수신 IP 주소를 '255.255.255.255'로 만든다(음...... 왜 255.255.255.255로 만드는 지 모르겠다;;;; 혹시 다른 IP와 차별화를 두는 것일까?!?!?!?! 나중에 찾아봐야 겠다~). 이것은 브로드 캐스트 주소라고 하며, 동일한 LAN 안의 모든 기기에 송신하기 위한 특수한 IP주소이다. 이 요청에 대한 응답은 DHCP 서버만 응답한다.

※ 요청을 할 시점에서 클라이언트의 IP 주소는 0.0.0.0 이다.


IP 주소를 부여받은 DHCP 클라이언트는 다시 255.255.255.255 라는 IP 주소 앞으로 확인 메시지를 보낸다. 이에 대해 DHCP 서버가 응답하면 통신이 완료된 것이다.


네트워크 세분화하기


예를 들어 127.15.4.0 ~ 127.15.4.255/24 라는 IP 주소를 사용하는 네트워크가 있다면 127.15.4 라는 네트워크 주소를 갖고 있는 하나의 네트워크에 254 대의 기기를 접속할 수 있다.

※ 254대인 이유 - 0과 255는 고유 주소로 사용할 수 없으므로 256-2 = 254가 된다.


하지만 실제로 이런 대규모의 네트워크가 필요한 경우는 많지 않다. 그래서 서브넷(subnet)이라는 장치를 사용하여 가상으로 작은 네트워크들을 만들어 네트워크 모음으로 처리할 수 있게 하고 있다.


서브넷 만들기


서브넷을 만들려면 서브넷 마스크를 사용해야 된다. 서브넷 마스크를 사용하여 가상으로 네트워크부를 늘림으로써 네트워크를 세분화한다.


서브넷 만들기에 대한 자세한 내용

( 1 - http://www.joinc.co.kr/w/Site/Network_Programing/Documents/SubNetWorking

  2 - http://korean-daeddo.blogspot.kr/2016/01/blog-post_26.html )

LAN 내에서의 주소


회사 내나 가정 내 등 한정된 네트워크 안에서만 유효한 IP 주소를 사설 주소(private address)라고 한다. 


10.0.0.0~10.255.255.255/8

172.16.0.0~172.31.255.255/12

192.168.0.0~192.168.255.255/16


위의 범위 안의 주소는 공인 주소로 사용할 수 없다.


- 사설 주소 그대로는 인터넷에 접속할 수 없으므로 다음과 같은 장치를 사용한다(대부분의 라우터에는 이런 기능들이 있다.).


NAT(Network Address Translation)

사설 주소와 공인 주소를 일 대 일로 대응시켜 변환하는 장치이다.



NAPT(Network Address Port Translation)

하나의 공인 주소를 사용하여 여러 대의 컴퓨터를 동시에 접속할 수 있는 장치이다. 포트 번호에 의해 각각의 컴퓨터를 식별하므로 같은 공인 주소를 동시에 사용할 수 있다.




IP 주소와 도메인


IP 주소와 도메인명을 처리하는 서비스를 DNS(Domain Name System)라고 한다.

예를 들어 www.whatchang.co.kr의 IP 주소를 조회하는 경우의 흐름이다.





1. 지역 네임 서버로부터 조회 요청을 받아 'kr'을 담당하는 네임 서버가 있는 곳을 알려준다.

2. 지역 네임 서버로부터 조회 요청을 받아'co.kr'을 담당하는 네임 서버가 있는 곳을 알려준다.

3. 지역 네임 서버로부터 조회 요청을 받아 'whatchang.co.kr'을 담당하는 네임 서버가 있는 곳을 알려준다.

4. 지역 네임 서버로부터 조회 요청을 받아 'www.whatchang.co.kr'을 담당하는 IP 주소를 알려준다.


위의 설명 및 그림처럼 사위의 네임 서버에는 하나 아래 층에 있는 네임 서버의 IP 주소가 등록되어 있다.




오타가 많이 있을 수도 있고 잘못된 정보가 있을 수 있으므로 날카로운 지적을 해주신다면 달게 받겠습니다.










'TCP.IP' 카테고리의 다른 글

제 7장 라우팅  (0) 2017.01.03
제 6장 데이터 링크층과 물리층  (0) 2017.01.03
제 4장 트랜스포트층  (0) 2017.01.02
제 3장 애플리케이션층  (0) 2016.12.30
제 2장 통신 서비스와 프로토콜  (0) 2016.12.27