모두의 네트워크 5장

유동헌·2022년 1월 18일
0

모두의네트워크

목록 보기
5/8

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

Lesson17 네트워크 계층의 역할

네트워크 계층 : 서로 다른 네트워크에 있는 목적지로 데이터를 전송하기 위해 필요

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

💎 이더넷은 랜 상태에서 사용되는 프로토콜. 랜 환경에서만 작동한다고 이해하면 됨

네트워크 간의 통신을 가능하게 하는 것 → 네트워크 계층의 역할 ⇒ 라우터

💎 라우터는 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지 알려 주는 기능을 한다. 근데 목적지를 알아야 보내던 말던 하지 않을까? MAC 주소처럼, 받은 쪽의 주소가 필요한데 네트워크 계층에서 필요한 주소는 MAC 주소가 아니라 IP 주소이다!

🔥 작은 네트워크 규모는 하나의 스위치로 연결된 구조라고 생각하면 될 것 같다.

랜에서는 MAC 주소만으로도 통신할 수 있지만 다른 네트워크에는 데이터를 보낼 수 없음. 그래서 MAC 주소가 아닌 네트워크를 식별할 수 있는 다른 주소가 필요함 ⇒ IP 주소 필요, IP 주소란 어떤 네트워크의 어떤 컴퓨터인지 구분이 가능하도록 한다

또한 IP 주소로 목적지를 지정하는 것 뿐만 아니라 데이터를 어떤 경로로 보낼지도 결정해야함. 이처럼 목적지 IP 주소까지 어떤 경로로 데이터를 보낼지 결정하는 것을 라우팅(routing)이라고 함.

라우팅 데이블이 있어서 경로 정보를 등록하고 관리함. 거리에 상관 없이 데이터를 다른 네트워크로 보낼 수 있음.

네트워크 계층에는 IP 프로토콜 존재.

💠 IP 헤더의 모습

이처럼 IP 프로토콜을 사용하여 캡슐화할 때는 데이터에 IP 헤더가 추가되는데, 이렇게 만들어진 것을 IP 패킷이라고 함. 데이터 링크 계층에서는 프레임이었는데 네트워크 계층에서는 IP 패킷이라니, 각 계층에 따라 사용하는 용어가 달리짐

정리

네트워크 간의 통신을 하려면 라우터가 필요하다 → 근데 받은 쪽의 주소를 알아야 한다. 이때 필요한 것이 IP 주소이다 → 라우터IP 주소가 준비가 됐다면, 어떤 경로로 데이터롤 보내야 하는지에 대한 정리가 필요하다. 이 것을 결정하는 것을 라우팅이라고 한다 → 보냈던 경로들을 등록하고, 관리하는 걸 라우팅 테이블에서 한다.

랜 안에서는 MAC 주소만으로도 통신할 수 있지만 네트워크 간의 통신을 하려면 IP 주소가 필요하다

네트워크 계층의 대표적인 프로토콜에는 IP가 있다

네트워크 계층에서는 캡슐화할 때 IP 헤더를 추가한다

Lesson18 IP 주소의 구조

IP 주소는 인터넷 서비스 제공자에게 받을 수 있음

IP 버전은 IPv4, IPv6로 나뉨

현재 주로 사용하고 있는 IPv4 주소는 32비트로 되어 있어서 IP 주소를 약 43억개 만들 수 있는데, 처음 IP 주소를 만들 때는 43억 개면 충분하다고 생각했지만 인터넷이 널리 보급되면서 IP 주소 숫자가 부족해졌고, IPv6이 등장. 128비트로 되어 있어 2의 128승의 숫자만큼 생성 가능. 현재는 이 두개가 공존. IPv4의 주소가 고갈되고 있기 때문에, 인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인 IP 주소를 할당하고 회사나 가정의 랜에 있는 컴퓨터는 사설 IP 주소가 할당됨.

IP 주소의 종류는 공인 IP 주소, 사설 IP 주소로 다시 나뉨.

우선 인터넷 서비스 공급자가 제공하는 공인 IP 주소는 라우터에만 할당하고 랜 안에 있는 컴퓨터에는 랜의 네트워크 관리자가 자유롭게 사설 IP 주소를 할당, 아니면 라우터의 DHCP(Dynamic Host Configuration Protocol) 기능을 사용하여 주소를 자동으로 할당하고 있음.

공인 IP 주소와 사설 IP 주소는 모두 2진수의 32비트를 동일하게 사용

MAC 주소 : 48비트 - 16진수, IP 주소 : 32비트 - 10진수

IP 주소는 사람도 읽기 편해야 하기 때문에 10진수로 표기, 8비트 단위로 표기가 되고 8비트 단위를 옥텟이라고 부르기도 함. 읽기 쉽게 4옥텟으로 구성된 숫자(2진수)를 10진수로 변환.

이처럼 10진수로 표시하지만 실제로는 2진수로 되어 있음.

IP 주소는 또, 네트워크 ID와 호스트 ID로 나눠져있음.

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

정리

데이터를 다른 네트워크로 전달하려면 IP 주소가 필요하다

IP 주소는 인터넷 서비스 공급자에게 할당받을 수 있다

IPv4의 IP 주소는 32비트, IPv6의 IP 주소는 128비트

IP 주소의 종류에는 공인 IP 주소와 사설 IP 주소가 있다

IP 주소는 네트워크 ID와 호스트 ID로 나누어진다

Lesson19 IP 주소의 클래스 구조

IPv4의 IP 주소는 32비트. 비트로 구분하지만 네트워크 ID를 크게 만들거나 호스트 ID를 작게 만들어 네트워크의 크기를 조정할 수 있음. 네트워크의 크기는 클래스라는 개념으로 구분.

클래스는 A ~ E /// 공인 IP 주소와 사설 IP 주소를 포함한 클래스의 범위

A 클래스 = 8비트 - 네트워크 ID : 24비트 - 호스트 ID

A 클래스의 1옥텟(8비트)의 범위는 2진수로 00000001 ~ 01111111. 이 수를 10진수로 변환하면 1 ~ 127이 됨.

2 ~ 4 옥텟의 범위는 각각 2진수로 00000000 ~ 11111111이고 이것을 10진수로 변환하면 0 ~255됨.

최대 호스트 수는 1677만 7214대, 네트워크 ID와 호스트 ID의 32비트 전체 범위는 ..

1.0.0.0 ~ 127.255.255.255


B 클래스 = 16비트 - 네트워크 ID : 16비트 - 호스트 ID

B 클래스의 1옥텟(8비트)의 범위는 2진수로 10000000 ~ 10111111. 이 수를 10진수로 변환하면 128 ~ 191이 됨.

최대 호스트 수는 6만~, 네트워크 ID와 호스트 ID의 32비트 전체 범위는 ..

128.0.0.0 ~ 191.255.255.255


C 클래스 = 24비트 - 네트워크 ID : 8비트 - 호스트 ID

C 클래스의 1옥텟(8비트)의 범위는 2진수로 11000000 ~ 11011111. 이 수를 10진수로 변환하면 192 ~ 223이 됨.

최대 호스트 수는 254, 네트워크 ID와 호스트 ID의 32비트 전체 범위는 ..

192.0.0.0 ~ 223.255.255.255


🔥 여기까지는 전체 범위이고 공인 IP 주소의 범위는 또 따로 있음!

🔥 전체 범위 - 공인 IP 범위, 사설 IP 주소의 범위 역시 따로 있음!

🔥 범위를 확인하고 공인 IP인지 사설 IP인지 알 수 있음

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

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

네트워크 주소는 호스트 ID가 10진수로 0이고, 2진수면 00000000인 주소. 브로드캐스트 주소는 호스트 ID가 10진수로 255, 2진수면 11111111인 주소.

🔥 이 두 개를 비교할 필요가 있을까?

💠 뒤에가 0이면 네트워크 주소, 255면 브로드캐스트 주소

네트워크 주소는 전체 네트워크에서 작은 네트워크를 식별하는데 사용되고 호스트 ID가 10진수로 0이면 그 네트워크 전체를 대표하는 주소가 되는 것. 쉽게 말해 전체 네트워크의 대표 주소라고 생각하면 됨.

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

정리

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

Lesson21 서브넷의 구조

A 클래스 ~ C 클래스를 하나의 네트워크로 사용. 그 많은 수의 컴퓨터가 브로드캐스트 패킷을 전송하면 모든 컴퓨터에 패킷이 전송되고 네트워크가 혼잡해질 가능성이 높음.

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

최대 1677만 7214대의 컴퓨터가 연결이 되어 있고, 이 네트워크를 작은 네트워크로 나눠 IP 주소를 더 효과적으로 이용하게 한다

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

A 클래스는 네트워크 ID가 8비트고 호스트 ID가 24비트. 이 상태를 서브넷팅하여 작은 네트워크로 분할하는 것을 말함. 그러면 기존에 네트워크 ID와 호스트 ID로 구성되어 있던 것이, 네트워크 ID, 서브넷 ID, 호스트 ID로 나누어지게 됨.

0 0 0 0 0 0 0 1 | 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0

네트워크가 8비트 나머지 24비트

0 0 0 0 0 0 0 1 | 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0

네트워크 ID // 서브넷 ID // 호스트 ID

호스트 ID에서 비트를 빌려 서브넷으로 만들 수 있음

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

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

🔥 서브넷 마스크... 어떤 범위 이런 건가?

프리픽스 표기법 : 프리픽스 표기법은 다음과 같이 서브넷 마스크를 슬래시(/ 비트수)로 나타낸 것을 말함. 예를 들어 255.255.255.0은 /24가 됨.

C 클래스 : 일반적으로 네트워크 ID가 24비트지만 다음과 같이 네트워크 ID를 28비트로 변경하면 4비트를 호스트 ID에서 빌리게 됨. 즉 네트워크 ID가 24비트, 서브넷 ID가 4비트, 호스트 ID가 4비트가 됨.

이처럼 서브넷팅하여 여러 네트워크를 만들 수 있음. 이 네트워크의 서브넷 마스크는 255.255.255.240 → /28

🔥 어렵다

정리

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

서브넷팅되면 구성이 바뀐다 중간에 서브넷 ID가 할당된다

서브넷 마스크는 네트워크 주소와 호스트 주소를 식별하는 값

클래스 별 서브넷 마스크는 255 ~~ 가 늘어간다

프리픽스 표기법은 서브넷 마스크를 슬래시로 나타낸다.

Lesson22 라우터의 구조

스위치만 있는 네트워크에서는 모든 컴퓨터와 스위치가 동일한 네트워크에 속하게 됨.

라우터가 있으면 분리할 수 있음.

네트워크를 분할한 다음, 컴퓨터 한 대가 다른 네트워크로 접속하려면? 컴퓨터 1이 다른 네트워크에 데이터를 전송하려면 라우터의 IP 주소를 설정해야 함. 이 것은 네트워크 출입구를 설정하는 것으로 기본 게이트웨이라고 함.

라우터의 IP 주소 = 기본 게이트웨이 : 컴퓨터 1은 다른 네트워크로 데이터를 보낼 때 어디로 전송해야 하는지 알지 못하기 때문에. 그래서 네트워크의 출입구를 지정하고 일단은 라우터로 데이터를 전송. 기본 게이트웨이가 설정이 되었지만, 이것만으로는 컴퓨터 6에 데이터를 보낼 수 없음. 라우팅이 필요!

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

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

라우팅 테이블이 등록되는 절차 : 수동 / 자동. 수동으로 등록하는 방법은 소규모 네트워크에 적합하고, 자동으로 등록하는 방법은 대규모 네트워크에 적합. 대규모 네트워크에서는 정보를 하나하나 라우터에 등록하기가 힘들기 때문. 또 등록된 내용이 수정되면 수동으로 변경해야 해서 작업량이 많아짐. 자동으로 등록하는 방법은 라우터 간에 경로 정보를 서로 교환하여 라우팅 테이블 정보를 자동으로 수정해줌. 수동으로 등록하는 방법처럼 직접 네트워크 관리자가 변경하지 않아도 되는 것. 자동으로 등록하는 편이 훨씬 좋음.

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

라우팅 프로토콜에는 RIP OSPF BGP 등이 있음

정리

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

라우터는 네트워크를 분할할 수 있지만 스위치와 허브는 분할할 수 없다

컴퓨터에서 다른 네트워크로 데이터를 전송하려면 기본 게이트웨이를 설정해야 한다

라우팅은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 방식

경로 정보가 등록되어 있는 테이블을 라우팅 테이블이라고 한다

라우터 간에 라우팅 정보를 서로 교환하기 위한 프로토콜을 라우팅 프로토콜이라고 한다

profile
지뢰찾기 개발자

0개의 댓글