이전까지 물리계층, 데이터 링크 계층에서 데이터를 전송하기 위해 어떠한 일들이 발생되는지 살펴보았다.
이번 포스팅에서는 네트워크 계층에서 일어나는 일들에 대해 다루어보고자 한다.
<네트워크 계층의 역할>
네트워크 계층
- OSI 7계층 중 3계층
- 데이터 링크에서는 같은 네트워크 안에서만 데이터 전송이 가능하지만, 네트워크 계층은 달라도 가능
- 다른 네트워크와 통신을 가능하게 하는 역할
- 다른 네트워크에 데이터를 보내기 위해서는 네트워크를 식별할 수 있는 IP 주소 필요
- IP 주소
- 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신하기 위해 사용하는 주소
- 어떤 네트워크의 어떤 컴퓨터인지 구분할 수 있게 하는 주소
- 인터넷 서비스 제공자(ISP)로부터 제공받음
- 버전에는 IPv4(32비트), IPv6(128비트) 존재
- 종류로는 공인 IP 주소와 사설 IP 주소가 존재
- IP 주소
- 경로 설정을 위해 라우터를 통한 라우팅을 하며 패킷 전송 담당
- 라우터
- 서로 다른 네트워크를 연결해주는 장치
- 현재의 네트워크에서 다른 네트워크로 패킷 전송
- 데이터가 해당 목적지까지 가기 위한 가장 빠른 경로를 알려줌
- 라우팅
- 경로를 선택하고 목적지 IP 주소까지 어떻게 데이터를 전달할지 결정하는 것
- 네트워크에서 패킷을 목적지로 보낼 때 목적지까지 갈 수 있는 여러 경로 중 1가지 경로를 설정해주는 과정
- 라우팅 테이블
- 목적지 주소를 목적지에 도달하기 위한 네트워크 노선으로 변환시킬 목적으로 사용됨
- 다른 네트워크로 가기 위한 가장 좋은 라우터의 정보를 가지고 있음
- 경로 정보
- 라우터
IP (Internet Protocol)
- 네트워크 계층의 대표적인 프로토콜
- 인터넷에 있는 한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는데 사용되는 네트워크 계층 프로토콜
IP 패킷
- IP 헤더 + 데이터의 구조
- 네트워크 계층에서 캡슐화한 결과물
- 데이터 링크 계층에서는 프레임, 네트워크 계층에서는 IP 패킷 (용어 다름 주의!)
- IP 헤더
- 버전, 헤더 길이, 서비스 유형, 전체 패킷 길이, ID, 조각 상태, 조각 위치, TTL, 프로토콜, 헤더 체크섬, 출발지 IP 주소, 목적지 IP 주소 순서로 구성됨
- TTL(Time To Live): 데이터의 유효 기간을 나타내기 위한 방법
- 헤더 체크섬: 검사합으로 간단하게 오류를 검출하는 방법
- 버전, 헤더 길이, 서비스 유형, 전체 패킷 길이, ID, 조각 상태, 조각 위치, TTL, 프로토콜, 헤더 체크섬, 출발지 IP 주소, 목적지 IP 주소 순서로 구성됨
<IP 주소의 구조>
IP 주소
- 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신하기 위해 사용하는 주소
- 어떤 네트워크의 어떤 컴퓨터인지 구분할 수 있게 하는 주소
- 인터넷 서비스 제공자(ISP)로부터 제공받음
- 버전에는 IPv4(32비트=> 주소 43억개), IPv6(128비트=> 주소 340간) 존재
- 현재, 두 버전이 공존해 쓰이고 있지만, 앞으로는 IPv6가 더 많이 차지하게 될 것
- 종류로는 공인 IP 주소와 사설 IP 주소가 존재
- 공인 IP 주소 - 인터넷에 직접 연결되는 컴퓨터나 라우터가 사용
- 사설 IP 주소 - 랜(근거리 통신망)에 있는 컴퓨터가 사용
- 랜의 네트워크 관리자가 자유롭게 사설 IP 주소 할당
- 라우터의 DHCP 기능을 사용하여 주소를 자동으로 할당 (더 편리)
- DHCP(Dynamic Host Configuration Protocol)
- IP 주소를 자동으로 할당하는 프로토콜
- 공인 IP 주소와 사설 IP 주소로 구분하여 공인 IP 주소의 갯수를 절약할 수 O
- 사설 IP 주소는 절대로 공인 IP 주소로 사용 불가!
- 총 32비트로 구성되고 10진수로 표현 (MAC - 48비트로 구성, 16진수로 표현)
- 총 32비트를 8비트 단위(옥텟)로 나눠서 표시
- 8비트의 범위: 00000000 ~ 11111111
- 10진수의 범위: 0 ~ 255
- IP 주소 = 네트워크 ID + 호스트 ID
- 네트워크 ID (네트워크 주소) - 어떤 네트워크인지-
- 호스트 ID (호스트 주소) - 해당 네트워크의 어느 컴퓨터인지-
<IP 주소의 클래스 구조>
IP 주소 클래스(IP address class)
- IPv4에서 사용하는 주소 그룹 => 5개 존재(A, B, C, D, E)
- 일반적으로 A ~ C 클래스 사용
- A, B, C 클래스 => 네트워크 ID + 호스트 ID 로 구성됨
- 클래스에 따라 네트워크 ID와 호스트 ID 크기가 다름(총 32비트)
- 클래스별 호스트 수: A > B > C
- A : 대규모 네트워크 주소(네트워크8, 호스트24)
- B : 중형 네트워크 주소(네트워크16, 호스트16)
- C : 소규모 네트워크 주소(네트워크24, 호스트8)
- D: 멀티캐스트(multicast) 주소
- 멀티캐스트 - 한 컴퓨터에서 패킷을 여러 컴퓨터로 동시에 전송하는 것
- E: 연구 및 특수용도 주소 (필요에 따라 사용하기 위해 확보)
- 32비트를 네트워크 ID, 호스트 ID로 나누어 크기를 조정하여 클래스로 사용
- 클래스에 따라 주소 범위가 다름
<네트워크 주소와 브로드캐스트의 주소>
IP 주소에는 네트워크 주소와 브로트캐스트 주소가 있고,
이 두 주소는 특별한 주소로써 컴퓨터나 라우터가 자신의 IP로 사용 불가
네트워크 주소
- 전체 네트워크에서 작은 네트워크를 식별하는데 사용되는 주소
- 전체 네트워크의 대표 주소
- 호스트 ID가 10진수로 0인 주소
- 호스트 ID가 2진수로 00000000 인 주소
브로드캐스트 주소
- 네트워크에 있는 컴퓨터나 장비 모두에게 한 번에 데이터를 전송하는데 사용되는 전용 IP 주소
- 호스트 ID가 10진수로 255인 주소
- 호스트 ID가 2진수로 11111111 인 주소
<서브넷의 구조>
서브넷(Subnet)
- 큰 네트워크를 분할해서 만든 작은 네트워크
- 서브넷팅(subneting)
- 네트워크를 분할하기 위해 IP 주소의 구성을 변경하는 작업
- IP 주소 = 네트워크 ID + 호스트 ID (기존 구성)
- IP 주소 = 네트워크 ID +서브넷 ID+ 호스트 ID (변경된 구성)
- 서브넷 ID
- IP 주소의 네트워크 부분을 늘리기 위해 서브넷 마스크로 사용되는 비트
- 서브넷 비트(subnet bits)라고도 함
- 서브넷 ID
서브넷 마스크
- IP 주소 서브넷팅시, 어디까지가 네트워크 ID고 어디부터가 호스트 ID인지 판단하기 어려울 때 사용
- 즉, 네트워크 ID 와 호스트 ID를 식별하기 위한 값
- IP 주소의 네트워크 부분만 나타나게 하여 같은 네트워크인지를 판별하게 하는 마스크
- A클래스: 255.0.0.0 (/8)
- B클래스: 255.255.0.0 (/16)
- C클래스: 255.255.255.0 (/24)
- 프리픽스(prefix) 표기법 사용 가능
- 서브넷 마스크를 슬래시(/비트 수)로 나타내는 것
<라우터의 구조>
라우터(router)
- 서로 다른 네트워크와 통신하기 위해 필요한 장치
- 네트워크 분리 가능 (허브와 스위치는 네트워크 분리 불가능)
- 다른 네트워크에 데이터를 전송하기 위해서는 기본 게이트웨이를 설정해야함
- 기본 게이트웨이(default gateway)
- 라우터의 IP 주소
- 네트워크의 출입구
- 기본 게이트웨이(default gateway)
- 기본 게이트웨이 설정 후, 라우터의 라우팅 기능을 통해 다른 네트워크와 통신 가능
라우팅(routing)
- 패킷을 목적지로 보낼 때 목적지까지 갈 수 있는 여러 가지 경로 중 한 가지 경로를 설정해주는 과정
- 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터 전송
- 라우팅 테이블
- 경로 정보가 등록되어 있는 테이블
- 수동 등록 방법 - 소규모 네트워크에 적합
- 자동 등록 방법 - 대규모 네트워크에 적합
- 라우터 간에 경로 정보를 서로 교환하여 라우팅 테이블 정보를 자동으로 수정
- => 라우팅 프로토콜
- 라우터 간에 라우팅 정보를 교환하기 위한 프로토콜
- 대표적으로 RIP, OSPF, BGP 등 존재
'네트워크' 카테고리의 다른 글
모두의 네트워크 - 7장. 응용 계층: 애플리케이션에 데이터 전송하기 (0) | 2023.01.24 |
---|---|
모두의 네트워크 - 6장. 전송 계층: 신뢰할 수 있는 데이터 전송하기 (0) | 2023.01.23 |
모두의 네트워크 - 4장. 데이터 링크 계층: 랜에서 데이터 전송하기 (0) | 2023.01.21 |
모두의 네트워크 - 3장. 물리계층: 데이터를 전기 신호로 변환하기 (0) | 2023.01.20 |
모두의 네트워크 - 2장. 네트워크의 기본 규칙 (0) | 2023.01.18 |