본문 바로가기
Network

네트워크 계층의 역할, IP 주소와 구조 | 모두의 네트워크

by wanggoNya 2022. 5. 8.

5장 시작 꼬고

전 세계에는 수많은 네트워크가 있다. 그 네트워크들은 서로 연결되어 거대한 인터넷을 이루고 있다.
그렇다면, 네트워크 간의 연결은 어떻게 하는 걸까~?!

4장까지는 데이터 링크 계층과 스위치, 이더넷 규칙을 배웠다.

이 규칙에 따라 같은 네트워크에 있는 컴퓨터끼리 데이터를 전송할 수 있었다.

 

하지만!!!! 스위치만 있다고 데이터를 어디에나 다 보낼 수 있는 게 아니었다!!!!!

데이터 링크 계층과 이더넷 규칙으로는 동일 네트워크 안에서만 통신이 가능하다.

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

따라서 네트워크가 여러 개라면, 그 각기 다른 네트워크 끼리의 연결은 다른 방법으로 해주어야 한다.

 

그래서 ....
다른 네트워크와는 어떻게 통신하는데요....

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

응용계층  ---- 7계층
표현 계층 ---- 6계층
세션 계층 ---- 5계층
전송 계층 ---- 4계층
네트워크 계층 ---- 3계층
데이터 링크 계층 ---- 2계층
물리 계층 ---- 1계층

이번 장에서는 네트워크 계층의 역할이 핵심이다. 

 

네트워크 계층을 통해 다른 네트워크로 데이터를 전송하려면 라우터(router)라는 네트워크 장비가 필요하다

 

라우터 (router)

데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는것이 좋은지를 알려주는 네트워크 장비다. 포인트는 "경로"를 알려주는 거지, 목적지는 자동으로 아는 게 아니다. 이 때 필요한 주소가 바로 IP 주소!

라우터는 라우팅(routing)을 하는데, 이는 목적지 IP 주소까지 어떤 경로로 데이터를 보낼지 결정하는 것을 말한다. 길을 찾는 거라고 생각하면 쉬울듯! 이렇게 라우터를 사용해서 거리에 관계없이 해외의 네트워크까지도 데이터를 보낼 수 있다. 또 라우팅 테이블(routing table)이 있어서 경로 정보를 등록하고 관리한다.

(라우터는 뒤에 나올 챕터에서 더 자세하게 배우자.)

 

IP 주소

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

 

=

IP (Internet Protocol)

네트워크 계층에는 IP라는 프로토콜이 있다. 방금 전, 데이터를 다른 네트워크에 있는 목적지까지 보내려면 라우터가 필요하다고 했는데, 사실은 이 IP가 있어서 가능한 것이다. 

 

네트워크 계층의 캡슐화, IP 헤더

1) 버전
(version)
2) 헤더 길이
(header length)
3) 서비스 유형
(service type)
4) 전체 패킷 길이
(total length)
5) ID(일련번호)
(identification)
6) 조각 상태
(flags)
7) 조각의 위치
(fragment offset)
8) TTL
(Time To Live)
9) 프로토콜
(protocol)
10) 헤더 체크섬
(header checksum)
11) 출발지 IP 주소 (32 비트)
(source IP address)
12) 목적지 IP 주소 (32 비트)
(destination IP address)

1~ 12번 순서로 헤더 정보가 구성되어 있다. 여기서는 '출발지 IP 주소', '목적지 IP 주소'를 기억하면 된다.

 

IP 패킷

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

(데이터 링크 계층에서는 프레임 이었죠? ㅎㅎ 각 계층에서 쓰는 용어가 달라진답니다.)


 

IP 주소는 어떻게 받을까?

인터넷 서비스 제공자 (ISP, Internet Service Provider)

IP 주소는 인터넷 서비스 제공자에게서 받을 수 있다. 집에서 인터넷을 사용하기 위해 계약한 통신사를 말한다.

 

IP 버전 : IPv4 와 IPv6 (각각 Internet Protocol version 4, Internet Protocol version 6)

IPv4는 32비트로 되어 있어 43억개의 IP 주소를 만들 수 있고, IPv6은 128비트로 되어 있어 340간 개를 만들 수 있다.

원래는 43억 개면 충분하겠지 싶어 IPv4만 사용했었는데, 인터넷이 널리 보급되면서 IP 주소가 부족해졌고 IPv6도 보급되고 있단다. 340간 개면 천, 억, 조, 경보다 훨씬 큰 단위니까 IP 주소가 부족할 일은 없다고 보면 된다.

앞으로는 IPv6을 주로 사용하겠지만 당분간은 IPv4와 IPv6을 공존해서 사용할 것이다. 이 책에서는 IPv4를 기준으로 설명한다.

 

공인 IP 주소, 사설 IP 주소

공인 IP 주소는 인터넷 서비스 제공자(ISP)가 제공한다.

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

랜 안에 컴퓨터가 여러 대 있다면, 우선 인터넷 서비스 제공자의 공인 IP 주소는 라우터에만 할당하고 랜 안의 컴퓨터에는 랜의 네트워크 관리자가 자유롭게 사설 IP 주소를 할당하거나 라우터의 DHCP* 기능을 사용하여 주소를 자동으로 할당하고 있다. 이로써 공인 IP 주소를 절약할 수 있다. 

 

DHCP* (Dynamic Host Configuration Protocol)

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

 

IP 주소의 구조

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

컴퓨터가 이해할 수 있으려면 2진수가 필요하지만, 사람도 읽기 쉬워야 하니 8비트 단위로 나눠 표시한다. 참고로 8비트를 옥텟*(octet)이라고 부른다.

 

옥텟* (octet)

원래는 그룹 여덟 개를 의미하지만 여기서는 데이터 8비트를 의미한다.

2진수로는 00000000부터 11111111까지 8비트의 범위,

10진수로 변환하면 0부터 255까지가 10진수의 범위이다.

32비트

11000000101010000000000100001010

8비트씩
옥텟 나누기
11000000 10101000 00000001 00001010
8비트 8비트 8비트 8비트
1 옥텟 2 옥텟 3 옥텟 4 옥텟
10진수 192 168 1 10
계산은 어떻게 하는건가요?

예시를 들어보자

11000000 이라는 2진수가 있다. 1은 켜진 상태, 0은 꺼진 상태이다.

1 1 0 0 0 0 0 0
2^7
128
2^6
64
2^5
32
2^4
16
2^3
8
2^2
4
2^1
2
2^0
1
128 x 1 62 x 1 32 x 0 16 x 0 8 x 0 4 x 0 2 x 0 1 x 0

각 수를 다 더하게 되면 192라는 10진수가 나오는 것이다. 

 

이렇게 10진수로 표시하지만 실제 IP 주소는 2진수로 되어 있다는 것을 꼭 기억하자!

 

네트워크 ID와 호스트 ID

(네트워크 주소, 호스트 주소라고도 한다.) 

네트워크 ID 는 '어떤 네트워크' 인지를 나타내고, 호스트 ID는 '해당 네트워크의 어느 컴퓨터'인지를 나타낸다. 이 두 가지 정보가 합쳐져서 IP 주소가 된다. 

 

보충

IPv6 (Internet Protocol version 6)

현재 주로 사용하고 있는 IPv4는 32비트의 IP 주소이다. 처음에는 2의 32제곱인 약 43억 개의 컴퓨터에 IP 주소를 충분히 할당할 수 있다고 생각했지만, 인터넷이 보급되면서 주소가 급속도로 고갈되기 시작했다. 이 대책으로 생겨난 게 IPv6이다. 이는 128비트로 확장해서 2의 128제곱이라는 사실상 무제한의 IP 주소를 사용할 수 있게 되었다. 그래서 가정에 TV나 에어컨에서도 인터넷을 연결하여 통신할 수 있게 되었다. 


< Reference >

미즈구치 카츠야, 『모두의 네트워크, 길벗(2021), p113-95.