[모두의 네트워크] 네트워크 계층 : 목적지에 데이터 전달

problem_hun·2023년 7월 3일
0

모두의 네트워크

목록 보기
5/9
post-thumbnail

네트워크 계층의 역할

전 세계에는 수 많은 네트워크가 연결되어 인터넷을 이루고 있다.
이전 게시물의 데이터 링크 계층은 이더넷 규칙으로 데이터를 전송하지만 같은 네트워크에 있는 컴퓨터로만 할 수 있다. 네트워크 계층다른 네트워크로 데이터를 전달하는 역할을 한다.

네트워크 계층

다른 네트워크와 통신하기 위한 경로 설정을 위해 라우터를 통한 라우팅을 하며 패킷 전송을 담당

 

네트워크 간의 연결 구조

네트워크 계층으로 다른 네트워크에 데이터를 보내려면 라우터라는 네트워크 장비가 필요하다. 라우터는 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지 알려 주는 기능을 한다.

그러나 데이터를 보내려는 상대가 어딨는지 모른다면 목적지까지의 경로를 알려 주지 못한다. 따라서 네트워크에서도 데이터를 보내려면 목적지 주소가 있어야 한다. 이 때, 데이터 링크 계층에서의 MAC 주소와 같은 개념이 필요한데, 네트워크 계층에서는 네트워크를 식별할 수 있는 주소를 IP 주소라고 한다. IP 주소는 어떤 네트워크의 어떤 컴퓨터인지 구분할 수 있도록 하는 주소이다.

원하는 목적지를 IP 주소로 설정하면 데이터를 보낼 수 있지만 어떤 경로로 보내는 지도 중요하다. 예를 들어 서울에서 부산까지 고속도로를 탈 지, 기차를 탈 지 정해야 하는 것이다. 이처럼 목적지 IP 주소까지 어떤 경로로 보낼지 결정하는 것을 라우팅이라고 한다. 이 라우팅을 하는 장비가 라우터이다.

라우터 역할

 

IP

네트워크 계층에는 IP(Internet Protocol)라는 프로토콜이 있다. 데이터를 다른 네트워크에 보내기 위해 라우터가 필요하다고 했는데 IP가 있어서 가능한 것이다.

IP (Internet Protocol)

인터넷에서 다른 컴퓨터로 데이터를 보내는 데 사용되는 네트워크 계층 프로토콜

네트워크 계층에서는 캡슐화할 때 데이터의 앞에 IP 헤더를 붙인다. 헤더 전체를 기억할 필요는 없고, '출발지 IP 주소'와 '도착지 IP 주소' 정도만 기억하면 된다. 이렇게 IP 헤더가 추가된 데이터를 IP 패킷이라고 한다. 참고로 복습하자면, 데이터 링크 계층의 이더넷 헤더와 트레일러가 추가된 데이터는 프레임이라고 불렀었다.

 


IP 주소의 구조

택배를 보낼 때 주소가 필요하듯이 데이터를 다른 네트워크에 보낼 때도 IP 주소가 필요하다. IP 주소는 인터넷 서비스 제공자(ISP)에게 받을 수 있다.

 

IP 주소 버전

IP 버전에는 IPv4IPv6, 두 가지가 있다.

  • IPv4 : 32비트로 되어 있어 약 43억개의 IP 주소를 만들 수 있다. 인터넷이 널리 보급되면서 IP 주소가 부족해 졌고, IPv6를 사용하게 되었다.

  • IPv6 : 128비트로 되어 있어 약 340간(340 * 10^36)개의 IP 주소를 만들 수 있어 사실상 무한대로 IP 주소를 만들 수 있다. IPv6 네트워크가 보급되면서 TV나 에어컨에서도 인터넷을 연결하여 통신할 수 있게 됐다.

 

IP 주소 종류

IP 주소에는 공인 IP 주소사설 IP 주소가 있다.

  • 공인 IP 주소 : 인터넷에 직접 연결되는 컴퓨터나 라우터에 할당되는 IP 주소.

  • 사설 IP 주소 : 회사나 가정의 랜에 있는 컴퓨터에 할당되는 IP 주소.

예를 들어 부산시 해운대구 중동 1번지 베스트호텔 501호에 체크인을 했다면, 공인 IP 주소는 부산시 해운대구 중동 1번지 베스트호텔에, 사설 IP 주소는 501호에 비유할 수 있다.

 

IPv4로는 43억개의 IP주소를 만들 수 있기 때문에 세상의 모든 컴퓨터에 하나씩 IP 주소를 할당하기가 어렵다. 그래서 우선 인터넷 서비스 공급자(ISP)가 제공하는 공인 IP 주소는 라우터에만 할당하고 랜 안에 있는 컴퓨터에는 랜 네트워크 관리자가 자유롭게 사설 IP 주소를 할당하거나 라우터의 DHCP 기능을 사용해 자동으로 사설 IP 주소를 할당한다.

DHCP

IP주소를 자동으로 할당하는 프로토콜

예를들어 123.4.5.234 라는 공인 IP 주소는 부산시 해운대구 중동 1번지 베스트호텔처럼 세상에 하나밖에 없는 IP 주소이지만, 192.168.0.1 이라는 사설 IP 주소는 501호와 같이 다른 건물들에도 있을 수 있는 주소이다. 그래서 나의 사설 IP만으로는 다른 네트워크의 컴퓨터에서 나의 컴퓨터에 접근하지 못한다. 501호 라는 주소는 수많은 건물에 존재하기 때문이다.

 

IP 주소 구조

IP 주소는 192.168.3.10 처럼 10진수로 표시하지만 실제로는 2진수로 되어있다. 8비트씩 4개로, 총 32비트로 이루어져 있는데 8비트를 옥텟이라고 부르기도 한다. 8비트의 범위는 00000000부터 11111111까지로 10진수로 변환하면 0부터 255까지이다.

네트워크 ID와 호스트 ID

IP주소는 또 네트워크 ID와 호스트 ID로 나눠져 있다.

  • 네트워크 ID : '어떤 네트워크'인지 나타내는 부분
  • 호스트 ID : '해당 네트워크의 어느 컴퓨터'인지를 나타내는 부분

예를들어 전화번호 053-424-3730에서 053-424는 대구 중구를 나타내는 네트워크 ID라고 볼 수 있고, 3730은 전화기를 나타내는 호스트 ID라고 볼 수 있다.

 


IP 주소의 클래스 구조

IP 주소 클래스

IPv4의 IP 주소 32비트는 네트워크 ID를 크게 만들거나 호스트 ID를 작게 만들어 네트워크 크기를 조정할 수 있다. 네트워크 크기는 클래스라는 개념으로 구분한다. 일반 네트워크에서는 A~C 클래스까지 사용할 수 있다.

클래스 이름내용클래스 이름내용
A 클래스대규모 네트워크 주소D 클래스멀티캐스트(multicast) 주소
B 클래스중형 네트워크 주소E 클래스연구 및 특수용도 주소
C 클래스소규모 네트워크 주소

 

A, B, C 클래스는 각각 1옥텟, 2옥텟, 3옥텟을 네트워크 ID로 가지고 나머지를 호스트 ID로 가진다.

A클래스의 네트워크 ID인 1옥텟의 범위는 2진수로 00000001~01111111이며, 10진수로는 1~127이 된다.
나머지, 호스트 ID인 2~4옥텟의 범위는 00000000~11111111로 10진수로는 0~255가 된다. 0~255인 옥텟이 3개가 있으므로 256 * 256 * 256 = 1677만 개의 호스트 수를 가질 수 있다.

B클래스의 네트워크 ID인 1옥텟의 범위는 2진수로 10000001~10111111이며, 10진수로는 128~191이 된다.
2옥텟까지 네트워크 ID로 가진다고 했으니 나머지 3~4옥텟이 호스트 ID가 된다. 0~255인 옥텟이 2개가 있으므로 256 * 256 = 6만 개의 호스트 수를 가질 수 있다.

C클래스의 네트워크 ID인 1옥텟의 범위는 2진수로 11000001~11011111이며, 10진수로는 192~223이 된다.
3옥텟까지 네트워크 ID로 가진다고 했으니 나머지 4옥텟이 호스트 ID가 된다. 최대 호스트 수는 254개가 된다.

클래스 내에서도 공인 IP 주소와 사설 IP 주소는 다음과 같이 정해져 있다. 사설 IP 주소는 절대로 공인 IP 주소로 사용될 수 없다. 가정의 랜에서는 주로 C 클래스의 사설 IP 주소인 192.168.X.X가 사용된다.

 


네트워크 주소와 브로드캐스트 주소의 구조

네트워크 주소와 브로드캐스트 주소

IP 주소 중에는 네트워크 주소브로드캐스트 주소가 있다. 이 두 주소는 특별한 주소로, 컴퓨터나 라우터가 자신의 IP로 사용하면 안되는 주소다.

네트워크 주소는 네트워크 자체를 식별하는 데 사용되는 반면, 브로드캐스트 주소는 네트워크 내의 모든 장치에 데이터를 보내는 데 사용된다.

네트워크 주소

전체 네트워크에서 작은 네트워크를 식별하는 데 사용되며, 호스트 ID가 10진수로 0 이면 그 네트워크 전체를 대표하는 주소가 된다.

브로드캐스트 주소

네트워크에 있는 컴퓨터나 장비 모두에게 한 번에 데이터를 전송하는데 사용되는 전용 IP 주소이다. 호스트 ID가 10진수로 255로 설정된다.

 


서브넷의 구조

서브넷

A 클래스 네트워크에서는 호스트 ID가 24비트여서 IP 주소를 약 1667만개를 사용할 수 있다. A 클래스 네트워크에 브로드캐스트 패킷을 전송하면 모든 컴퓨터에 패킷이 전송되고 네트워크가 혼잡해진다. 그래서 대규모 네트워크를 작은 네트워크로 분할하는데 이것을 서브넷팅이라고 하고, 분할된 네트워크를 서브넷이라고 한다.

서브넷

대규모 네트워크가 분할된 네트워크

서브넷팅

네트워크를 분할하는 것

 

서브넷팅을 하게 되면 기존의 네트워크 ID와 호스트 ID는 네트워크 ID, 서브넷 ID, 호스트 ID로 나눠진다. 호스트 ID로 사용되는 비트를 서브넷으로 만드는 것이다.

 

서브넷 마스크

IP 주소를 서브넷팅하면 어디까지가 네트워크 ID이고 어디부터가 호스트 ID인지 판단하기 어려울 때가 있다. 그럴 때 서브넷 마스크라는 값을 사용한다.

서브넷 마스크

네트워크 ID와 호스트 ID를 구분하는 데 사용하는 32비트 숫자
네트워크 ID인 부분을 1로 표기하며 왼쪽부터 채워 나간다.

32비트의
A 클래스의 서브넷 마스크는 11111111 00000000 00000000 00000000 = 255.0.0.0
B 클래스의 서브넷 마스크는 11111111 11111111 00000000 00000000 = 255.255.0.0
C 클래스의 서브넷 마스크는 11111111 11111111 11111111 00000000 = 255.255.255.0

프리픽스(prefix) 표기법으로도 사용할 수 있다.
프리픽스 표기법은 서브넷 마스크를 슬래시(/비트 수)로 나타낸 것을 말한다. 예를 들어 255.255.255.0은 /24가 된다.

 

예를 들어 C 클래스인 192.1.10.0인 네트워크를 둘로 나누는 서브넷팅을 해보자.
1옥텟이 192로 시작하여 C 클래스이므로 호스트 ID는 8비트(0 ~ 255)인 256개의 네트워크를 가지게 된다.
이 네트워크를 둘로 나눠 128개씩 가지도록 나눠야 하므로, 호스트 ID가 7비트가 되도록 해야 한다. 그럼 총 32비트인 IP 중에서 7비트만이 호스트 ID가 되므로 나머지 25비트는 네트워크 ID가 된다.

결과적으로 이렇게 서브넷팅을 한 후의 서브넷 마스크는 11111111 11111111 11111111 10000000 = 255.255.255.128 이 된다.

프리픽스 표기법으로 표현하면 /25 로 표현할 수 있다.

 


라우터의 구조

라우터

다른 네트워크에 데이터를 보내려면 라우터가 필요하다고 했다. 라우터는 네트워크를 분리할 수도 있다. (스위치나 허브는 연결된 모든 장비가 동일한 네트워크에 속한다)

 

컴퓨터 1에서 다른 네트워크의 컴퓨터 6에 데이터를 전송하려면 우선, 라우터의 IP 주소를 설정해야 한다. 네트워크의 출입구를 설정하는 것으로 기본 게이트웨이라고 한다.

컴퓨터 1은 다른 네트워크로 데이터를 보낼 때, 어디로 보내야 하는지 알지 못한다. 그래서 네트워크의 출입구를 지정하고 일단은 라우터로 데이터를 전송한다.

라우팅

라우팅

경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로의 최적의 경로를 통해 데이터를 전송하는 것.
경로는 라우팅 테이블에 등록되어 있다.

라우팅 테이블

다른 네트워크 경로 정보가 등록되어 있는 테이블.
경로를 수동으로 등록하는 방법과 자동으로 등록하는 방법이 있다.
수동으로 등록하는 방법은 소규모 네트워크에 적합하며, 자동으로 등록하는 방법은 대규모 네트워크에 적합하다.

라우팅 프로토콜

라우터 간에 라우팅 정보를 교환하기 위한 프로토콜

다음 그림과 같이 각 라우터에서 라우팅 테이블의 최적의 경로로 라우팅한다. 라우팅 프로토콜을 설정하여 라우터 간에 정보를 교환하고 라우팅 테이블에 등록해나간다.


참조 사이트

얄팍한 코딩 사전 - IP주소를 알아봅시다! (Feat. 공인/사설/고정/유동IP, 포트포워딩, DMZ, DDNS)
네트워크 구축 및 운용_7주차_1_IP Address
그림으로 쉽게 보는 IP 주소 (하)
모두의 네트워크 정리 - 5
서브넷 마스크 계산 - [홀인원 2.08.16] IPv4 - 서브넷 마스크

profile
문제아

0개의 댓글