네트워크 계층의 역할

won·2023년 2월 15일

많은 네트워크가 연결된 환경에서는 데이터 링크 계층의 기능만으로는 다른 네트워크로 데이터 전송이 힘들다.
(169쪽의 사진 첨부해야한다. 그림 5-2)

네트워크 A-E까지 네트워크 단위로만 서로 데이터 전송이 가능, A-E까지 각각의 네트워크 단위에 데이터를 전송하기 위해서는 라우터가 필요하다.

라우터는 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지를 알려주는 기능을 한다.하지만 목적지를 알지 못하면 가는 경로를 알려주지 못한다.
목적지를 알려주는 주소를 IP주소라고 한다.

IP주소는 어떤 네트워크의 어떤 컴퓨터인지를 구분할 수 있도록 하는 주소.
172(그림 5-3)
IP주소로 목적지를 지정하는 것 뿐만 아니라 데이터를 어떤 경로로 보낼지도 결정하는 것을 라우팅이라고 한다.


라우터의 예시 사진

라우터에는 라우팅 테이블(Routing table)이 있어 경로 정보를 등록하고 관리한다.

p.175(그림 5-5)
네트워크 계층에는 IP(Internet Protocol)이라는 프로토콜이 존재.
그림과 같이 네트워크 계층에서는 캡슐화를 할때 IP헤더를 붙인다.
1. 버전 , 2.헤더길이, 3.서비스유형 , 4.전체 패킷 길이, 5.ID(일련번호), 6.조각상태 7. 조각의 위치, 8. TTL, 9.프로토콜 ,10.헤더 체크섬, 11.출발지 IP, 12.목적지IP의 순서로 헤더 정보가 구성되어 있다.
-> 모든걸 기억할 필요는 x '출발지IP'와 '목적지IP' 정도만 기억하면 된다.
이렇게 IP프로토콜을 사용하여 캡슐화 한 것을 IP패킷이라고 한다.


IP 주소의 구조

IP주소는 인터넷 서비스 제공자(ISP)에게 받을 수 있다.
IP버전에는 IPv4, IPv6가 존재.

IPv4는 32비트로 구성이 되어 있고 IP주소를 약 43억개 정도 만들 수 있다.
인터넷이 널리 보급되면서 43억개의 IP주소가 부족해졌고 때문에 IPv6를 사용하게 되었다. IPv6는 128비트로 구성되어 있어 더 많은 IP주소가 생성가능하다.(약 320간 - 340조의 1조배의 1조배로 사실상 무한대)

IP주소에는 공인IP와 사설IP주소가 있다.
공인 IP는 인터넷 서비스 제공자가 제공.
IPv4의 주소는 사용할 수 있는 조수의 수가 고갈되고 있기 때문에 인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인IP가 회사나 가정의 랜에 있는 컴퓨터는 사설IP를 할당한다.
(p.180 그림 5-6)

MAC주소는 48비트 16진수 / IP주소는 32비트 10진수로 표현.
사람이 읽기 쉽게 8비트씩 나누어서 표시한다. 그렇게 8비트씩 나눈 단위를 옥텟(octet)이라고 부른다.
p.181 그림 5-8참고
p.182 그림 5-11참고
-> 32비트를 8비트씩 끊어서 네개의 옷텟으로 구분하고 숫자의 범위도 정해져있다.

IP주소는 네트워크ID와 호스트ID로 나뉘어져 있다.
네트워크ID란, '어떤 네트워크'인지를 나타내고, '호스트ID'는 해당 네트워크의 어느 컴퓨터인지를 나타낸다.
이 두가지 정보가 합쳐져 IP주소가 된다.
p.184 그림 5-12

IP주소의 클래스 구조

네트워크ID와 호스트ID를 크고 작게 만들어 네트워크의 크기를 조정할 수 있다. 이러한 네트워크 크기를 클래스라는 개념으로 구분한다.

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

일반 네트워크에서는 A-C 클래스까지 사용 가능.
A클래스는 처음 8비트가 네트워크 ID이고 다음 24비트가 호스트 ID이다.

B클래스는 처음 16비트가 네트워크ID이고 다음 16비트가 호스트ID이다.
C클래스는 처음 24비트가 네트워크ID이고 다음 8비트가 호스트ID이다.

p.189 ~ 190까지 그림 전부 첨부
-> A클래스의 1옥텟의 범위는 2진수로 00000001 ~ 01111111이다. 이것을 10진수로 표현하면 1~127이 된다. 2~4옥텟의 범위는 각각 2진수로 00000000~11111111이고 이것을 10진수로 표현하면 0~255가 된다.
-> B클래스의 1옥텟의 범위는 2진수로 10000000 ~ 10111111이고 이것을 10진수로 변환하면 128~191이 된다.
-> C클래스의 1옥텟의 범위는 2진수로 11000000 ~ 11011111이며, 이것을 10진수로 변환하면 192~223이 된다.

공인 IP주소와 사설 IP주소를 포함한 클래스 범위

종류공인 IP주소의 범위
A클래스1.0.0.0 ~ 9.255.255.255
11.0.0.0 ~ 126.255.255.255
B클래스128.0.0.0 ~ 172.15.255.255
172.32.0.0. ~ 191.255.255.255
C클래스192.0.0.0 ~ 192.167.255.255
192.169.0.0 ~ 223.255.255.255

종류사설 IP주소의 범위
A클래스10.0.0.0 ~ 10.255.255.255
B클래스172.16.0.0 ~ 172.31.255.255
C클래스192.168.0.0 ~ 192.168.255.255

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

일반적으로 가정의 랜은 C클래스의 사설IP주소인 192.168.0.0.이 사용된다.
cmd창에서 ipconfig명령어를 치면 ip주소를 확인할 수 있다.

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

IP주소는 네트워크 주소와 브로드캐스트 주소가 있다.
이 두 주소는 특별한 주소로 컴퓨터나 라우터가 자신의 IP로 사용하면 안되는 주소이다.
C클래스로 예를 들어 호스트 ID가 10진수이고 첫번째 숫자가 0이면 네트워크 주소, 호스트 ID가 10진수이고 마지막 숫자가 255이면 브로드캐스트 주소이다.
p.196 그림 5-24참고

네트워크 주소는 전체 네트워크에서 작은 네트워크를 식별하는 데 사용.
브로드캐스트 주소는 네트워크에 있는 모든 컴퓨터와 장비에 한번에 데이터를 전송하는 전용IP 주소이다. p197~198 그림 모두 참조

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

서브넷의 구조

네트워크를 분할하는 것을 서브넷팅이라고 한다.

p.202 그림 5-27참조

한번에 많은 수의 컴퓨터가 브로드캐스트 패킷을 전송하면 모든 컴퓨터에 패킷이 전송되고 네트워크가 혼잡해진다. 그 상황을 방지하기 위해 네트워크를 작은 네트워크로 분할하여 패킷의 범위를 좁힌다. 이렇게 네트워크를 분할하는 하는 것을 서브넷팅이라고 부르고, 분할된 네트워크를 서브넷이라고 부른다.
기존에 네트워크 ID 8비트 호스트 ID가 24비트인 상태에서 작은 네트워크고 분할하여 네트워크ID와 호스트ID로 구성되어 있던 비트를 빌려 쪼개어 네트워크ID, 서브넷ID, 호스트 ID 세개로 나눈다.

p.203그림 첨부

서브넷 마스크란 네트워크ID와 호스트ID를 식별하기 위한 값.
p.204 그림 첨부
p.206 그림 첨부
-> 그림을 보면 C클래스를 서브넷팅하는 방법이 나와있다.
C클래스는 일반적으로 네트워크ID가 24비트이지만 네트워크ID를 28비트로 변경하면 4비트를 호스트ID에서 빌려게 된다. 그러면 네트워크ID가 24비트 , 서브넷ID가 4비트, 호스트ID가 4비트가 된다.

프리픽스(prefix)표기법은 서브넷 마스크를 슬래쉬(/비트수)로 나타낸 것.
예) 255.255.255.0 = /24가 된다.

라우터의 구조

라우터는 허브와 스위치와는 다르게 네트워크를 분리할 수 있다.
네트워크를 분리한다는 것은 다른 IP주소를 사용하는 것.
p.212 그림 5-39 참조

라우터를 사용해서 PC끼리 통신을 하려면 라우터의 IP주소를 설정해야 한다. 네트워크의 출입구를 설정하는 것으로 기본 게이트웨이(default gateway)라고 한다.
게이트웨이 설정만으론 아직 데이터를 보낼 수 없다. 데이터를 보내기 위해서는 라우팅(routing)기능이 필요하다.
라우팅은 앞에서 말했듯이 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 것. 이 경로 정보가 등록되어 있는 테이블이 라우팅 테이블이다.
p.214 그림 5-41 참조 (라우팅 테이블에 등록되는 경로 정보)

추가해도 될 만한 것 : 라우팅 프로토콜 방식 (RIP, OSPE, BGP) 가 있다.

profile
어찌저찌 굴러가는 개발자

0개의 댓글