모두의 네트워크 정리 - 네트워크 계층

mainsain·2022년 3월 8일
1

CS

목록 보기
9/20

네트워크 계층 : 목적지에 데이터 전달하기

네트워크 계층의 역할

전 세계에는 수많은 네트워크가 있고 그 네트워크들은 서로 연결되어 거대한 인터넷을 이루고 있다. 이번엔 네트워크 간의 연결에 대해 알아보자.


네트워크 간의 연결 구조

다른 네트워크에 있는 목적지로 데이터를 전달하려면 네트워크 계층의 기술이 필요하다. 이번엔 네트워크 계층의 기술에 대해알아볼 것.

4장 데이터 링크 계층에선 이더넷 규칙을 기반으로 데이터의 전송을 담당한다고 했었다. 이 규칙에 따라 같은 네트워크에 있는 컴퓨터로는 데이터를 전송할 수 있지만, 인터넷이나 다른 네트워크로는 데이터를 전송할 수 없다.

Q. ?? 스위치 사용하면 되잖아?

A. 그림과 같이 수많은 네트워크가 연결된 환경에서 데이터 링크 계층의 기능만으로는 다른 네트워크로 데이터를 전송하기 힘들다.

데이터 링크 계층의 장비로는 네트워크 A의 컴퓨터 끼리는 데이터 전송이 되지만, 네트워크 A에서 네트워크 B나 C로는 데이터 전송이 안된다.

네트워크 간의 통신을 가능하게 하는 것네트워크 계층의 역할이다.

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

그렇지만 데이터(우편물)를 보내려는 상대(주소)가 어디에 있는지 모르면 라우터도 목적지까지의 경로를 알려주지 못하는데, 그렇기에 네트워크를 식별할 수 있는 주소(목적지 주소)가 반드시 필요하다. 이를 IP주소라고 한다.

IP주소

어떤 네트워크의 어떤 컴퓨터인지를 구분할 수 있도록 하는 주소이다. 이 IP 주소가 있으면 다른 네트워크에 있는 목적지를 지정할 수 있다.

이제 IP 주소로 목적지를 지정했으니 데이터를 어떤 경로로 보낼지 결정하는 라우팅(routing)을 한다.
라우팅은 라우터나 레이어 3 스위치라는 장비로 한다.
라우터를 사용하여 거리에 관계없이 다른 네트워크로 데이터를 보낼 수 있다. 이 라우터에는 라우팅 테이블(routing table)이 있어서 경로 정보를 등록하고 관리한다.


IP란?

네트워크 계층에는 IP(Internet Protocol)라는 프로토콜이 있다. 네트워크 계층에서는 캡슐화 할 때 아래 그림의 IP 헤더를 붙인다.

헤더 정보 전체를 다 기억하진 말고 IP 헤더에는 출발지 IP 주소목적지 IP 주소가 포함되어 있다는 것만 기억하자.

이처럼 IP 프로토콜을 사용하여 캡슐화할 때는 데이터에 IP 헤더가 추가되는데, 이렇게 만들어진 것을 IP 패킷이라고 한다.

데이터 링크 계층에서는 이렇게 만들어진 것을 프레임이라고 했었다.


정리

  • 서로 다른 네트워크 간에 통신을 하려면 라우터가 필요하다.
  • 랜 안에서는 MAC 주소만으로도 통신할 수 있지만 네트워크 간에 통신을 하려면 IP 주소가 필요하다.
  • 경로를 선택하고 목적지 IP 주소까지 어떻게 데이터를 전달할지 결정하는 것을 라우팅이라고 한다.
  • 라우터의 라우팅 테이블에는 경로 정보가 등록되어 있다.
  • 네트워크 계층의 대표적인 프로토콜에는 IP가 있다.
  • 네트워크 계층에서는 캡슐화할 때 IP 헤더를 추가하고, 이렇게 만들어진 것을 IP 패킷이라고 한다.

IP 주소의 구조

네트워크 간의 통신을 하려면 IP 주소가 필요하다. 이번에는 IP 주소의 구조에 대해 알아보자.


IP 주소란?

IP 주소는 우편물을 보내려면 주소가 필요하듯 데이터를 다른 네트워크의 목적지로 보내려면 IP 주소가 필요하다.
IP 주소는 인터넷 서비스 제공자(ISP)에게 받을 수 있는데, 쉽게 생각해서 SKT, KT같은 통신사라고 생각하면 된다. IP 버전에는 IPv4IPv6가 있다.

Q. 왜 버전이 IPv4와 IPv6 두 가지로 나뉠까?

A. 현재 주로 사용하고 있는 IPv4 주소는 32비트로 되어 있어서 IP 주소를 약 43억 개를 만들 수 있는데, 처음 IP 주소를 만들 때는 43억 개면 충분하고 생각했다. 하지만 인터넷이 널리 보급 되면서 IP 주소가 부족해졌고 그러면서 IPv6 주소를 사용하게 됐다. IPv6는 128비트로 약 340간 개를 만들 수 있다. 간은 340조의 1조 배의 1조 배다.

(이 강의에서는 IP 주소를 IPv4주소를 기준으로 설명할 것이다.)

IP 주소에는 공인 IP 주소사설 IP 주소가 있다. 공인 IP 주소는 인터넷 서비스 제공자(ISP)가 제공한다. 공인 IP 주소와 사설 IP 주소는 모두 2진수의 32비트를 동일하게 사용하고 있다.

Q. 왜 IP 주소가 왜 두 종류나 필요할까?

A. IPv4 주소는 위에서 말했듯이 주소의 수가 고갈되고 있다. 그래서 인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인 IP 주소를 할당하고, 회사나 가정의 랜에 있는 컴퓨터는 사설 IP 주소를 할당하는 정책을 사용하고 있다.

그림과 같이 랜 안에 컴퓨터가 여러대 있지만 공인 IP 주소를 컴퓨터 한 대당 할당하면 한정되어 있는 주소가 빨리 소진될 것이다.

따라서, 공인 IP 주소는 라우터에만 할당하고 랜 안에 있는 컴퓨터들에는 랜의 네트워크 관리자가 사설 IP 주소를 할당하거나 라우터의 DHCP(Dynamic Host Configuration Protocol) 기능을 사용하여 IP 주소를 자동으로 할당한다.

DHCP는 Dynamic Host Configuration Protocol의 약어로 IP 주소를 자동으로 할당하는 프로토콜 이다.

결국 공인 IP 주소 한 개로 랜 안에 있는 컴퓨터 세대에 인터넷을 모두 연결할 수 있는 환경을 만들었다. 이런 방식으로 공인 IP의 주소를 절약할 수 있다.


Q. IP 주소와 MAC 주소는 비트 수가 다른 것 같은데요?

A. MAC 주소는 48비트로 구분하기 쉽도록 16진수로 표시하고, IP 주소는 32비트로 구분하기 쉽도록 10진수로 표시한다.

IPv4주소는 32비트이며 32비트를 8비트로 단위로 나눠서 표현하는 것을 옥텟(Octet)이라고 하는데 32비트를 4개의 옥텟으로 나누어 10진수로 표현한다.

이처럼 10진수로 표시를 했지만, 실제 IP 주소는 2진수로 되어있는걸 꼭 기억해두자.

또한 IP 주소는 네트워크 ID호스트 ID로 나누어져 있다.

네트워크 ID는 어떤 네트워크인지를 나타내고
호스트 ID는 해당 네트워크의 어느 컴퓨터인지를 나타낸다. 이 두 가지 정보가 합쳐져서 IP 주소가 된다. 다음장에서 더 자세히 다룰 것.


정리

  • 데이터를 다른 네트워크로 전달하려면 IP 주소가 필요하다.
  • IP 주소는 인터넷 서비스 공급자에게 할당받을 수 있다.
  • IPv4의 IP 주소는 32비트, IPv6의 IP 주소는 128비트로 구성되어 있다.
  • IP 주소의 종류에는 공인 IP 주소와 사설 IP 주소가 있다.
  • IP 주소는 네트워크 ID와 호스트 ID로 나누어진다.

IP 주소의 클래스 구조

IP 주소는 네트워크의 규모에 따라 A ~ E 클래스로 나누어져 있는데, 네트워크 클래스의 구조에 대해 알아보자.


IP 주소 클래스란?

IPv4의 IP 주소는 32비트다. 이 비트를 옥텟 단위로 끊어서 네트워크 ID를 크게 만들거나 호스트 ID를 작게 만들어 네트워크 크기를 조정할 수도 있다. 네트워크 크기는 클래스 라는 개념으로 구분하고 있다.

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

일반 네트워크에서는 A ~ C 클래스까지 사용할 수 있다.

A 클래스

처음 8비트(1옥텟)가 네트워크 ID, 다음 24비트(3옥텟)가 호스트 ID
1옥텟의 범위는 2진수로 00000001 ~ 01111111, 10진수 -> 1 ~ 127
네트워크 ID와 호스트 ID의 32비트 전체 범위는 1.0.0.0 ~ 127.255.255.255

B 클래스

처음 16비트가 네트워크 ID, 다음 16비트가 호스트 ID
1옥텟의 범위는 2진수로 10000000 ~ 10111111 10진수 -> 128 ~ 191
네트워크 ID와 호스트 ID의 32비트 전체 범위는 128.0.0.0 ~ 191.255.255.255

C 클래스

처음 24비트가 네트워크 ID, 다음 8비트가 호스트 ID
1옥텟의 범위는 2진수로 11000000 ~ 11011111 10진수 -> 192 ~ 223
네트워크 ID와 호스트 ID의 32비트 전체 범위는 192.0.0.0 ~ 223.255.255.255

2 ~ 4옥텟의 범위는 각각 2진수로 00000000 ~ 11111111, 10진수 -> 0 ~ 255

사설 IP 주소는 절대로 공인 IP 주소로 사용 할 수 없다.

가정의 랜에서는 주로 C 클래스의 사설 IP 주소인 192.168.ㅁ.ㅁ이다.
시작 메뉴 검색 창에 cmd를 입력해서 '명령 프롬프트'를 켜서 ipconfig 명령어를 실행해서 자신의 IP 주소를 확인해보자.


정리

  • IP 주소는 A ~ E 클래스로 나누어지며 일반적으로는 A ~ C 클래스를 사용한다.
  • IP 주소의 클래스별 호스트 수는 A 클래스가 1677만 7214대, B 클래스가 6만 5534대, C 클래스가 254대이다.

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

컴퓨터에 할당할 수 없는 IP 주소인 네트워크 주소와 브로드캐스트 주소에 대해 알아보자.


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

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

호스트 ID가 10진수고 첫 번째 숫자가 0이면 네트워크 주소

호스트 ID가 10진수고 마지막 숫자가 255면 브로드캐스트 주소

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


브로드캐스트 주소는 네트워크에 있는 컴퓨터나 장비 모두에게 한 번에 데이터를 전송하는 데 사용되는 전용 IP 주소이다.
따라서 전체 네트워크에 데이터를 전송하려면 호스트 ID에 255를 설정하면 된다.

따라서

네트워크 주소와 브로드캐스트 주소는 자신의 IP 주소로 설정하면 안 된다

반드시 기억해 두자.


정리

  • 네트워크 주소와 브로드캐스트 주소는 컴퓨터에 설정할 수 없다.

서브넷의 구조

네트워크를 분할하는 것을 서브넷팅이라고 한다. 이번에는 서브넷의 구조에 대해 알아보자.


서브넷이란?

A 클래스 네트워크는 호스트 ID가 24비트여서 IP 주소를 1677만 7214개 사용할 수 있다고 했다.
그 많은 수의 컴퓨터가 브로드캐스트 패킷을 전송하면 모든 컴퓨터에 패킷이 전송되고 네트워크가 혼잡해진다.


그림과 같이 A 클래스의 대규모 네트워크를 작은 네트워크로 분할하여 브로드캐스트로 전송되는 패킷의 범위를 좁힐 수 있다.
이렇게 하면 더 많은 네트워크를 만들 수 있어서 IP 주소를 더 효과적으로 활용할 수 있다.

네트워크를 분할하는 것을 서브넷팅(subneting)이라고 하고, 분할된 네트워크를 서브넷(subnet)이라고 한다.


네트워크 ID가 8비트고, 호스트 ID가 24비트인 상태를 서브넷팅하여 작은 네트워크로 분할하는 것.
그러면 호스트 ID에서 비트를 빌려 서브넷으로 만들 수 있다.


서브넷 마스크란?

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

서브넷 마스크는 네트워크 ID호스트 ID를 식별하기 위한 값이다.

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가 된다.

서브넷 마스크 계산


정리

  • 네트워크를 분할하는 것을 서브넷팅이라고 하고 분할된 네트워크를 서브넷이라고 한다.
  • 서브넷팅 되면 구성이 '네트워크 ID + 호스트 ID'에서 '네트워크 ID + 서브넷 ID + 호스트 ID'로 변경된다.
  • 서브넷 마스크는 네트워크 주소와 호스트 주소를 식별하는 값이다.
  • 클래스별로 서브넷 마스크는 A클래스는 255.0.0.0, B클래스가 255.255.0.0, C 클래스가 255.255.255.0이다.
  • 프리픽스 표기법은 서브넷 마스크를 슬래시(/비트)로 나타 낸다. 예를들어 255.255.255.0을 프리픽스 표기법으로 나타내면 /24이고, 255.255.255.254를 프리픽스 표기법으로 나타내면 /31이다.

라우터의 구조

서로 다른 네트워크와 통신하려면 라우터가 필요하다. 이번엔 라우터에 대해 알아보자.


라우터란?

서로 다른 네트워크와 통신하려면 라우터가 필요하다고 했는데,

라우터는 그림과 같이 네트워크를 분리할 수 있다.


하지만 스위치(레이어 2 스위치)만 있는 네트워크에서는 모든 컴퓨터와 스위치가 그림과 같이 동일한 네트워크에 속하게 되어 네트워크를 분리할 수 없다. 허브도 마찬가지.

그림과 같이 라우터가 있으면 네트워크를 분할할 수 있다.

Q. 네트워크를 분할한 다음에 컴퓨터 한 대가 다른 네트워크로 접속하려면 어떻게 해야 할까?

A. 그림과 같이 컴퓨터 1이 컴퓨터 6에 접속한다고 가정하자. 컴퓨터 1이 다른 네트워크에 데이터를 전송하려면 라우터의 IP 주소를 설정해야 된다.
이것은 네트워크의 출입구를 설정하는 것으로 기본 게이트웨이(default gateway)라고 한다.

Q. 라우터의 IP 주소를 왜 지정해야할까?

A. 컴퓨터 1은 다른 네트워크로 데이터를 보낼 때 어디로 전송해야 하는지 알지 못한다. 그래서 네트워크의 출입구를 지정하고 일단은 라우터로 데이터를 전송한다. 여기에서 컴퓨터 1은 192.168.1.0/24 네트워크에 속해 있기 때문에 라우터의 IP 주소인 192.168.1.1로 설정했다.

하지만 게이트웨이 설정만으로는 컴퓨터 1에서 컴퓨터 6으로 데이터를 보낼 수 없다. 추가로 라우터의 라우팅(routing)기능이 필요하다.


라우팅이란?

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

그림과 같이 각 라우터의 라우팅 테이블에 경로 정보가 등록되어 있어서 라우팅이 가능하다.
따라서 A 컴퓨터에서 B 컴퓨터로 데이터를 보낼 수 있다.

Q. 라우팅 테이블은 어떻게 등록될까?

A. 네트워크 관리자가 수동으로 등록하는 방법과 자동으로 등록하는 방법이 있다.
수동으로 등록하는 방법은 소규모 네트워크에 적합하고
자동으로 등록하는 방법은 대규모 네트워크에 적합하다.

수동으로 등록하는 방법은 대규모 네트워크에서는 정보를 하나하나 라우터에 등록하기가 힘들기 때문이다. 또 등록된 내용이 수정되면 수동으로 변경해야 해서 작업량도 많아진다.

자동으로 등록하는 방법은 라우터 간에 경로 정보를 서로 교환하여 라우팅 테이블 정보를 자동으로 수정해준다. 수동으로 등록하는 방법처럼 직접 네트워크 관리자가 변경하지 않아도 되기 때문에 훨씬 편하다.

이처럼 라우터 간에 라우팅 정보를 교환하기 위한 프로토콜을 라우팅 프로토콜이라고 한다.
이 라우팅 프로토콜을 설정하여 라우터 간에 경로 정보를 서로 교환하고 그것을 라우팅 테이블에 등록해 나가는 것.

Q. 라우팅 프로토콜에는 어떤 것이 있을까?

대표적인 라우팅 프로토콜에는 RIP, OSPF, BGP 등이 있고 각각 다른 특징이 있다.


정리

  • 서로 다른 네트워크와 통신하려면 라우터가 필요하다.
  • 라우터는 네트워크를 분할할 수 있지만 스위치(레이어 2)와 허브분할할 수 없다.
  • 컴퓨터에서 다른 네트워크로 데이터를 전송하려면 기본 게이트웨이를 설정해야 한다.
  • 라우팅은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 방식이다.
  • 경로 정보가 등록되어 있는 테이블을 라우팅 테이블이라고 한다.
  • 라우터 간에 라우팅 정보를 서로 교환하기 위한 프로토콜을 라우팅 프로토콜 이라고 한다.

보강

IPv6
현재 주로 사용하고 있는 IPv4(internet protocol version 4)는 32비트의 IP주소이다. 2의 32제곱인 약 43억 개의 컴퓨터 IP 주소를 할당할 수 있다. 처음에는 이 정도의 IP 주소로도 충분할 줄 알았지만 인터넷이 보급되면서 주소가 급속도로 고갈되기 시작했다.

이 대책으로 생겨난 것이 IPv6(Internet Protocol version 6)이다. IPv4는 32비트 IP 주소였지만 IPv6은 128비트로 확장하여 2의 128제곱이라는 사실상 무제한의 IP 주소를 사용할 수 있게 되었다.
이에 따라 현재 약 60억 명이 살고 있는 전 세계 사람들에게 IP 주소를 균등하게 할당해도 1인당 5.6양개(5600조의 100조배)를 할당할 수 있다.

현재는 IPv6 네트워크가 보급되면서 가정에 있는 TV나 에어컨에서도 인터넷을 연결하여 통신 할 수 있게 되었다 (사물인터넷 확장).


용어 정리

네트워크 계층(network layer) : 네트워크 계층은 다른 네트워크와 통신하기 위한 경로 설정을 위해 라우터를 통한 라우팅을 하며 패킷 전송을 담당한다.

IP(Internet Protocol, 인터넷 프로토콜) : 인터넷에 있는 한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는 데 사용되는 네트워크 계층 프로토콜이다.

IP 주소 클래스(IP address class) : IPv4에서 사용하는 주소 그룹에는 다섯 개 가 있다. A, B, C클래스는 네트워크 ID와 호스트 ID로 구성되며, D 클래스는 멀티캐스트 주소로 사용된다. E 클래스는 필요에 따라 사용하기 위해 확보해 놓은 것이다.

라우터(router) : 서로 다른 네트워크를 연결해 주는 장치로 현재의 네트워크에서 다른 네트워크로 패킷을 전송할 수 있도록 한다.

라우팅(routing) : 네트워크에서 패킷을 목적지로 보낼 때 목적지까지 갈 수 있는 여러 가지 경로 중 한 가지 경로를 설정해 주는 과정이다.

라우팅 테이블(rotuing table) : 컴퓨터 네트워크에서 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시킬 목적으로 사용된다. 다른 네트워크로 가기 위한 가장 좋은 라우터의 정보를 가지고 있다.

서브넷(subnet) : 큰 네트워크를 분할해서 만든 작은 네트워크다.

서브넷팅(subneting) : 네트워크를 분할하기 위해 IP 주소의 구성을 변경하는 작업이다.

서브넷 ID : IP 주소의 네트워크 부분을 늘리기 위해 서브넷 마스크로 사용되는 비트로 서브넷 비트(subnet bits)라고도 한다.

서브넷 마스크(subnet mask) : IP 주소의 네트워크 부분만 나타나게 하여 같은 네트워크인지를 판별하게 하는 마스크다.

멀티캐스트(multicast) : 한 컴퓨터(호스트)에서 패킷을 여러 컴퓨터로 동시에 전송하는 것을 말한다.

브로드캐스트(broadcast) : IP 네트워크에 있는 모든 컴퓨터(호스트)로 데이터를 전송하는 방식이다.


출처
https://velog.io/@minseojo/%EB%AA%A8%EB%91%90%EC%9D%98-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%A0%95%EB%A6%AC-5

https://velog.io/@majaeh43/%EB%AA%A8%EB%91%90%EC%9D%98-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-4l52xhs3

profile
새로운 자극을 주세요.

0개의 댓글