Lesson 17. 네트워크 계층의 역할
네트워크 간의 연결 구조
지난 글에서 다룬 데이터 링크 계층에서의 데이터 전송은 다른 네트워크로 데이터를 전송하는 데에 어려움이 존재합니다. 데이터 링크 계층에서는 데이터를 전송하기 위해 '스위치'를 이용했었는데, 스위치를 이용한 데이터 통신은 같은 네트워크에서의 통신에 사용되기 때문이죠.
따라서 이번 글에서 다룰 네트워크 계층에서는 네트워크 간의 통신을 가능하게 하는 것이 주된 역할이라고 볼 수 있습니다.
라우터
네트워크 계층에서 네트워크 간의 통신을 위해서는 라우터를 사용합니다. 라우터는 데이터의 목적지가 정해지게 되면 해당 목적지까지 어떤 경로로 가는 것이 좋은 지를 결정하는 기능을 합니다.
우리는 데이터 링크 계층에서 서로 통신을 하기 위해서는 MAC 주소를 사용했다는 것을 기억할 것입니다. 하지만 MAC 주소는 목적지가 어떤 네트워크에 속하는지, 또한 해당 네트워크에서 어느 기기를 의미하는 지를 알 수 없습니다. 이에 따라 IP 주소를 사용하게 됩니다.
라우터는 어떤 경로를 통해서 데이터를 전송하는 것이 효율적인지의 기능 또한 제공한다고 하였습니다. 이러한 기능을 라우팅이라고 합니다. 라우터에는 라우팅 테이블이라는 것이 존재하여 네트워크 간의 경로 정보를 등록하고 관리합니다.
IP란?
네트워크 계층에서는 IP라는 프로토콜을 이용합니다. 네트워크 계층에서는 캡슐화를 진행할 때 IP 헤더라는 것을 붙이게 되는데, IP헤더는 아래와 같은 정보들을 나열하여 구성되어있습니다.
- 버전
- 헤더 길이
- 서비스 유형
- 전체 패킷 길이
- ID
- 조각 상태
- 조각의 위치
- TTL
- 프로토콜
- 헤더 체크섬
- 출발지 IP 주소
- 목적지 IP 주소
우리가 전송하고 싶은 데이터에 IP 헤더가 추가된 것을 IP 패킷이라고 합니다. 이전 데이터 링크 계층에서 이더넷 헤더와 트레일러가 붙여진 것을 프레임이라고 하였던 것을 잠깐 상기해도 좋을 것 같습니다.
Lesson 18. IP 주소의 구조
IP 주소란?
IP주소는 ISP에게 할당받을 수 있습니다. IP 주소에는 IPv4와 IPv6가 있습니다.
IPv4
32비트로 구성되어 있으며 나타낼 수 있는 범위는 2^32이므로 약 43억개의 주소를 만들 수 있습니다.
사실 예전에는 IPv4만으로도 충분하다고 생각하였습니다. 하지만 인터넷이 널리 보급되었고 이로써 IPv4가 나타낼 수 있는 범위인 43억개가 부족해지면서 IPv6가 나오게 되었습니다. 또한 아직까지는 IPv4 주소를 사용하고 있습니다.
IPv6
128비트로 구성되어 있으며 나타낼 수 있는 범위는 2^128이므로 340간 개의 주소를 만들 수 있는데, 340간이라는 수치는 340조의 1조배의 1조배의 수치를 의미합니다. 사실상 무한대라고 볼 수 있습니다.
또한 IP 주소에는 공인 IP 주소와 사설 IP 주소가 있습니다. 인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인 IP 주소를 할당하고, 회사나 가정의 랜에 있는 컴퓨터는 사설 IP 주소를 할당하는 정책을 사용하고 있습니다.
라우터에만 공인 IP를 할당하고 랜 안에 있는 컴퓨터는 랜의 네트워크 관리자가 사설 IP 주소를 할당하거나, 라우터의 DHCP 기능을 사용하여 주소를 자동으로 할당하는 방식이 이용되고 있습니다.
- DHCP : Dynamic Host Configuration Protocol의 약어로 IP 주소를 자동으로 할당하는 프로토콜입니다.
컴퓨터는 IP 주소를 2진수로 읽지만, 우리는 10진수로 표기하는 것이 편하므로 32비트인 IPv4 주소를 8비트씩 쪼개서 총 4개의 수로 표현합니다. 이 때, 8비트는 0부터 255까지를 나타낼 수 있게 되겠죠.
또한 IP 주소는 어떤 네트워크에 속하는지를 나타내는 네트워크 ID와 네트워크 내에 어떤 컴퓨터인지를 나타내는 호스트 ID로 나누어집니다.
Lesson 19. IP 주소의 클래스 구조
IP 주소 클래스란?
IPv4에서는 네트워크 ID를 크게 만들거나 호스트 ID를 작게 만들어 네트워크 크기를 조정할 수 있습니다. 네트워크 크기를 클래스라는 개념으로 구분하고 있지요.
클래스는 A부터 E까지 총 5개의 클래스로 나뉘어져있습니다.
- A 클래스 : 대규모 네트워크 주소
- B 클래스 : 중형 네트워크 주소
- C 클래스 : 소규모 네트워크 주소
- D 클래스 : 멀티캐스트 주소
- E 클래스 : 연구 및 특수용도 주소
일반 네트워크에서는 A~C 클래스를 사용하고 있습니다. 각 클래스마다 아래와 같은 구조를 가집니다.
- A 클래스 : 첫 8비트가 네트워크 ID이고 나머지 24비트가 호스트 ID입니다.
- B 클래스 : 첫 16비트가 네트워크 ID이고 나머지 16비트가 호스트 ID입니다.
- C 클래스 : 첫 24비트가 네트워크 ID이고 나머지 8비트가 호스트 ID입니다.
IP 주소를 통해 어떤 클래스인지를 확인하기 위해서 첫 1~3비트로 클래스를 구분합니다.
A 클래스
첫 1비트가 0으로 시작합니다. 따라서 네트워크 ID의 나머지 7비트를 사용하므로 A 클래스의 범위는 1.0.0.0 ~ 127.255.255.255가 됩니다.
B 클래스
첫 2비트가 10으로 시작합니다. 따라서 네트워크 ID의 나머지 14비트를 사용하며, B 클래스의 범위는 128.0.0.0 ~ 191.255.255.255가 됩니다.
C 클래스
첫 3비트가 110으로 시작합니다. 따라서 네트워크 ID의 나머지 21비트를 사용하며, C 클래스의 범위는 192.0.0.0 ~ 223.255.255.255가 됩니다.
또한 각 클래스 내에서 공인 IP와 사설 IP 주소를 구분하기 위해 범위가 지정되어 있습니다.
Lesson 20. 네트워크 주소와 브로드캐스트 주소의 구조
네트워크 주소와 브로드캐스트 주소란?
네트워크 주소와 브로드캐스트 주소는 특별한 주소로써 컴퓨터나 라우터가 자신의 IP로 사용하지 않는 주소입니다. 호스트 ID가 모두 0이면 네트워크 주소이고, 모든 비트가 1이면 브로드캐스트 주소입니다.
네트워크 주소는 해당 네트워크를 대표하는 주소를 의미하며, 브로드캐스트 주소는 해당 네트워크 전체에 데이터를 보낼 때 사용되는 주소입니다.
Lesson 21. 서브넷의 구조
서브넷이란?
우리는 브로드캐스트 주소를 통해서 네트워크에 연결된 모든 기기에 데이터를 전송할 수 있다고 하였습니다. 하지만 이러한 네트워크가 A 클래스였다면, 이 네트워크에는 수많은 기기가 연결되어 있고, 불필요한 사용자에게 데이터가 전송될 수 있습니다.
그래서 우리는 대규모 네트워크를 작은 네트워크로 분할합니다. 이러한 과정을 서브넷팅이라고 하고, 이렇게 분할된 네트워크를 서브넷이라고 합니다.
기존 IP에는 네트워크 ID와 호스트 ID로 구분할 수 있었는데, 서브넷팅을 이용하면 네트워크 ID, 서브넷 ID, 호스트 ID로 구분되게 됩니다.
서브넷 마스크란?
만약 우리가 서브넷팅을 통해서 서브넷을 구성하게 된다면 IP 주소에서 어느 부분이 네트워크 ID를 나타내고, 어느 부분이 서브넷을 나타내는지 등을 알 수 없습니다. 이 때 우리는 서브넷 마스크를 사용하게 됩니다. 서브넷 마스크를 통해서 네트워크의 ID가 어디까지인지를 알 수 있게 되는 것입니다.
가령, 일반적인 C 클래스는 아래와 같은 서브넷 마스크를 갖습니다.
또한 이러한 서브넷 마스크는 프리픽스 표기법으로 나타낼 수 있습니다. 위와 같은 서브넷 마스크는 프리픽스 표기법으로 /24로 나타낼 수 있으며, 이는 몇개까지의 비트가 1인지를 나타냅니다.
만약 255.255.255.240이라는 서브넷 마스크는 프리픽스 표기법으로 나타내면 어떻게 될까요??
우선 255.255.255 까지는 모두 1이므로 /24가 기본이 되겠고 240은 1111 0000이므로 /28이 되겠죠!
Lesson 22. 라우터의 구조
라우터란?
컴퓨터가 다른 네트워크의 컴퓨터로 데이터를 전송하기 위해서는 라우터의 IP 주소를 우선 설정해줘야합니다. 이는 네트워크의 출입구를 설정하는 것이라고도 할 수 있으며 기본 게이트웨이라고도 부릅니다.
컴퓨터는 어디로 데이터를 보내야하는지 알지 못합니다. 그래서 네트워크의 출입구인 게이트웨이를 지정하여 라우터로 데이터를 전송하는 방식으로 되어있습니다.
게이트웨이에 대한 설명은 아래에 잘 설명된 링크를 첨부하였습니다.
https://m.blog.naver.com/kangyh5/223175392071
라우팅이란?
게이트 웨이를 설정하였다면 이후, 라우팅 과정이 필요합니다. 라우팅이랑 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 것을 의미합니다.
라우팅 테이블에 경로 정보가 등록되는 방법에는 수동으로 진행되는 것과 자동으로 진행되는 것이 있습니다. 수동으로 등록되는 방식은 소규모 네트워크에 사용되고 자동은 대규모 네트워크에 쓰입니다.
하지만 수동을 사용하게 된다면 경로 정보의 수정사항이 있을시 직접 변경해야하는 과정이 번거롭다는 단점이 있습니다.
또한 네트워크 간의 통신을 하면서 라우터를 거쳐간다고 하였습니다. 이러한 라우터를 거쳐가기 위한 정보 교환 방식으로 라우팅 프로토콜이 필요합니다. 라우팅 프로토콜을 설정하여 라우터 간에 경로 정보를 교환하고 그것을 라우팅 테이블에 등록해나가는 것이죠.
라우팅 프로토콜에는 대표적으로 RIP, OSPF, BFP가 있고 각기 특징이 다르므로 때에 따라 다양한 프로토콜을 사용하게 됩니다.
참고 자료
'CS > Network' 카테고리의 다른 글
[모두의 네트워크] 7장 응용 계층 : 애플리케이션에 데이터 전송하기 (0) | 2024.01.04 |
---|---|
[모두의 네트워크] 6장 전송 계층 : 신뢰할 수 있는 데이터 전송하기 (0) | 2024.01.03 |
[모두의 네트워크] 4장 데이터 링크 계층 : 랜에서 데이터 전송하기 (0) | 2023.12.28 |
[모두의 네트워크] 3장 물리 계층 : 데이터를 전기 신호로 변환하기 (0) | 2023.12.27 |
[모두의 네트워크] 2장 네트워크의 기본 규칙 (0) | 2023.12.27 |