네트워크 계층
•
목적지까지 가장 안전하고 빠르게 데이터를 보낼 수 있도록 최적의 경로를 설정하는 역할을 맡는 계층이다.
•
데이터 링크 계층에서 이더넷 규칙을 기반으로 하나의 네트워크 내에서 데이터를 전달하는 기능을 맡았다면, 네트워크 계층에서는 인터넷이나 다른 네트워크 간에 데이터를 전송하는 기능을 맡는다.
IP
•
IP(Internet Protocol)란 데이터 패킷이 네트워크를 통해 이동하고 올바른 대상에 도착할 수 있도록 데이터 패킷을 라우팅하고 주소를 지정하기 위한 프로토콜이다.
•
네트워크 계층에서는 캡슐화하여 패킷을 만들 때 IP 헤더를 붙이는데, IP 헤더는 아래 그림과 같이 여러 정보들을 포함하고 있고 그 중에는 출발지 IP 주소와 목적지 IP 주소를 포함하고 있다.
IP 주소
•
인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장비에게 IP 주소라는 고유의 값을 부여하고, 이 IP 주소를 통해 라우터에서 해당 목적지까지 어떤 경로로 가는 것이 좋은지 알려준다.(라우팅)
•
IP 주소는 인터넷 서비스 제공자(ISP)에게 받을 수 있고, 32비트로 구성된 IPv4와 128비트로 구성된 IPv6가 있다.
IPv4의 경우 약 42억 9천개의 주소를 가질 수 있는데, 초기에는 충분하다 생각되었지만 인터넷이 널리 보급되면서 IP 주소가 부족해져 새로운 체계인 IPv6가 도입되었다. IPv6로 바꾸는 비용이 천문학적이라 실질적으로는 잘 사용되지 않고, IPv4 체계의 주소를 재사용하는 방식으로 사용되고 있다.
•
인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인 IP를 할당하고, 회사나 가정의 랜에 있는 컴퓨터에는 사설 IP를 직접 할당하거나 DHCP 기능을 사용하여 동적으로 사설 IP 주소를 할당과 해제하는 식으로 부족한 IP 주소를 재사용하고 있다.
•
MAC 주소는 48비트 + 16진수로 표기하지만, IP 주소는 32비트를 8비트의 옥텟(Octet) 4개로 나누어 10진수로 표기한다.
IP 주소의 클래스 구조
•
IP 주소에는 어떤 네트워크에 속해있는지를 나타내는 네트워크 ID와 네트워크의 어떤 컴퓨터인지를 나타내는 호스트 ID로 나누어져 있다.
•
IP 주소의 옥텟 기준으로 네트워크 ID을 어디까지 사용하는 지에 따라 A, B, C 클래스로 나누어진다. 추가적으로 특수 목적으로 예약되어 있는 D와 E 클래스가 있다.
•
각 클래스마다 예약되어 있는 사설 IP 주소가 있고, 해당 주소들은 공인 IP 주소로 사용할 수 없다.
서브넷 구조와 서브넷팅
•
A 클래스 네트워크는 호스트 ID가 24비트로 1677만 7214개의 컴퓨터가 하나의 네트워크로 묶일 수 있다. 만약 해당 네트워크에서 브로드캐스트를 하게 되면 모든 컴퓨터에 패킷을 전송하기 위해 네트워크가 무척 혼잡해질 것이다.
•
이런 이유로 대규모 네트워크를 작은 네트워크로 분할하는 과정을 서브넷팅(subneting)이라 하고, 분할된 네트워크를 서브넷(subnet)이라 한다.
•
IP 주소를 서브넷팅하면 어디까지가 네트워크 ID이고 어디부터가 호스트 ID인지 판단하기 어려운데, 이를 서브넷 마스크를 사용하여 식별한다.
•
서브넷 마스크는 IP 주소와 동일하게 32비트 10진수로 표현되고, IP 주소와 다른 점은 2진수로 표현했을 때 1이 연속되는 값만 가진다는 것이다. 예시를 들면 10011111.11011111.11110011.00000000 와 같이 1 중간에 0 이 들어오는 값은 가질 수 없고, 11111111.11111111.11111100.00000000와 같이 앞자리부터 1이 연속되는 형태만 가질 수 있다.
•
서브넷 마스크와 IP 주소를 2진수로 표현한 상태에서 서로 AND 연산을 한 결과가 네트워크 ID가 되고, 그 외의 나머지 부분이 호스트 ID가 된다.
•
서브넷 마스크는 이어지는 1의 자리 수로 표현할 수 있는데, 255.255.255.0의 경우에는 /24와 같이 나타낼 수 있고 이를 Prefix 표기법이라 한다.
•
서브넷팅이 네트워크를 분할하는 방법이라면, 네트워크를 합치는 것을 슈퍼넷팅이라 한다.
•
C 클래스의 주소에 할당하기엔 IP 개수가 부족하면, B 클래스를 할당하는 것보다 C 클래스 네트워크를 2개 합쳐서 하나의 네트워크로 구성하여 사용하는 것이 더 효율적이다.
네트워크 주소와 브로드캐스트 주소
•
서브넷팅을 통해 네트워크를 작게 나누어 사용을 할 때, 작게 나누어진 네트워크의 첫 주소가 해당 네트워크를 대표하는 주소이고 이를 네트워크 주소라 부른다.
•
위 그림과 같이 구성된 컴퓨터들이 있고 서브넷 마스크가 /24라면, 컴퓨터들이 속한 네트워크의 네트워크 주소는 192.168.1.0이 된다.
•
브로드캐스트 주소는 작게 나누어진 네트워크의 마지막 주소로, 해당 네트워크에 속한 모든 장비에 데이터를 보내는데 사용되는 IP 주소이다.
•
위 그림과 같이 구성된 컴퓨터들이 있고 서브넷 마스크가 /24인 경우 192.168.1.255로 데이터를 송신하게 되면, 해당 네트워크에 속한 모든 컴퓨터에 데이터를 전송한다.
라우터와 라우팅
•
네트워크를 구성할 때 이와 같이 스위치를 통해서 구성하게 되면 전부 동일 네트워크로 묶이게 된다.
•
하지만 라우터를 사용하면 이처럼 네트워크를 분리하여 구성할 수 있다.
•
라우터는 이처럼 각 포트에 연결된 L2 스위치로 네트워크를 분리할 수 있고, 네트워크에 속한 컴퓨터가 다른 네트워크와 통신하려면 라우터의 각 포트에 IP 주소를 설정해야한다. 네트워크에 속한 컴퓨터들은 라우터의 포트에 설정된 IP 주소를 통해서 다른 네트워크와 통신하는데, 이를 위해 해당 포트에 설정된 IP를 기본 게이트웨이로 설정해야한다.
•
라우터에서는 현재의 네트워크에서 다른 네트워크로 데이터를 전송할 때 최적의 경로를 선택하고 이를 라우팅이라 부른다. 이때 해당 경로 정보가 등록되어 있는 테이블을 라우팅 테이블이라 한다.
•
소규모 네트워크에서는 수동으로 라우팅 테이블 등록(정적 라우팅)하여 관리하고, 대규모 네트워크에 적합한 자동으로 라우팅 테이블 등록(동적 라우팅)하도록 한다.
•
라우터 간에 라우팅 정보를 교환하기 위한 프로토콜을 라우팅 프로토콜이라 하고, 이 라우팅 프로토콜을 설정하여 라우터 간에 경로 정보를 서로 교환하고 그것을 라우팅 테이블에 등록한다.