티스토리 뷰
이 포스트에서는 OSI모델의 제 3계층인 네트워크 계층에 대해 설명해보겠다.
전 세계는 수많은 네트워크가 있고 그 네트워크들은 서로 연결되어 거대한 인터넷을 이루고있다.
우리가 원하는 목적지에 데이터를 전달하기 위해서는 다른 네트워크로 데이터를 넘겨야하는데 해당 작업이 이뤄지는 곳이 네트워크 계층이다. 이전에 설명했던 이더넷 규칙을 기반으로 데이터를 전송하면 같은 네크워크로는 전달이 가능하지만 다른 네트워크로는 전달이 불가능하다. 그렇기에 다른 네트워크와 통신하기 위해 우리는 라우터를 사용한다.
라우터란?
집에 인터넷을 사용하려고할 떄 설치했던 것이 라우터인데 기억하는가? 라우터는 데이터의 목적지가 정해지면 해당 목적지 까지 어떤 경로로 가는 것이 좋은지 알려주는 기능을한다.그러나 상대가 어디 있는지 모르면 경로를 알려주지 못하는데 그럼 어떤걸로 판별할까... 이전에 배운 MAC주소? ㄴㄴ아니, 다른 네트워크의 어떤 컴퓨터인지 구별하기 위해 IP주소를 사용한다. 네트워크 A에서 네트워크B의 위치한 3번쨰 컴퓨터로 보내고자하면 라우터가 네트워크B의 3번째 컴퓨터 IP주소를 지정하고 어떤경로로 보낼지 결정해준다.
IP란?
네트워크 계층에는 IP(internet Protocol)라는 프로토콜이 있다. (TCP/ IP에서 IP와 같은녀석이다)
네트워크 계층에서는 캡슐화 할 때 헤더를 붙인다 했는데 해당 데이터의 헤더에 IP가 들어간다.
버전| 헤더길이 | 서비스 유형 | 전체 패킷 길이
ID(일렬번호) | 조각상태 |조각의 위치
TTL | 프로토콜 | 헤더 체크섬
출발지 IP 주소(32비트)
목적지 IP 주소(32비트)
이렇게 해서 만들어진 것을 IP패킷이라한다. (데이터링크 계층에서는 프레임이었는데 용어가 다르다)
IP주소의 구조?
IP주소는 ISP인터넷서비스 제공자에게 받을 수 있다. 통신사과 계약해서 받은 것이 바로 이거다.
해당 IP 버전에는 IPv4, IPv6이 있는데, 전자는 32비트 후자는 128비트로 만들 수 있는 IP 갯수가 다르다.
그렇기에 부족한 IPv4를 IPv6로 충당한다. (아마 앞으로 IPv6를 주로 사용할 것이다.)
IP 주소에는 공인,사설 주소가 있는데 ,IPv4의 개수가 적으므로 인터넷에 직접 연결되는 컴퓨터는 공인 IP주소를 할당하고 회사나 가정의 랜에 있는 컴퓨터는 사설IP 주소를 할당하는 정책을 사용중이다.
우선 ISP가 제공중인 공인 IP주소는 라우터에만 할당하고 랜안에 있는 컴퓨터에는 랜의 네트워크 관리자가 자유롭게 사설 IP주소를 할당하거나 라우터의 DHCP(IP자동할당 프로토콜)기능을 사용하여 주소를 자동으로 할당하고 있다.
++ 그래서 공인 IP주소 한 개로 랜안에 있는 컴퓨터에 인터넷을 모두 연결할 수 있는 한경을 만들 수 있다.
또한 IP 주소는 네트워크 ID와 호스트ID로 나눠진다.
네트워크 IP는 어떤 네트워크 인지를 나타내고
호스트 IP는 해당 네트워크의 어느 컴퓨터인지 나타낸다.. 이 두개를 합쳐서 IP주소가 되는 것이다
IP 주소의 클래스구조란?
IPv4의 IP주소는 32비트로 네트워크 ID 크게 호스트 ID를 작게 만들어 네트워크 크기를 조정할 수 있다.
여기서 네트워크 크기는 클래스란 개념으로 아래와 같이구분되고 있다.
A Class | 대규모 네트워크 주소 |
B Class | 중형 네트워크 주소 |
C Class | 소규모 네트워크 주소 |
D Class | 멀티캐스트 주소 |
E Class | 연구 및 특수용도 주소 |
일반 네트워크에서는 A~C로 사용가능하며 예시를 보자.
A 클래스 00000001 00000000 00000000 00000000 ( 8비트 네트워크 ID) 1.0.0.0 ~ 127.255.255.255
B 클레스 10000000 00000000 00000000 00000000 (16비트 네트워크 ID) 128.0.0.0 ~ 191.255.255.255
C 클레스 10000000 00000000 00000000 00000000 ( 24비트 네트워크 ID) 192.0.0.0 ~ 223.255.255.255
공인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 | 1.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 |
컴퓨터에 할당할 수 없는 IP주소인 네트워크 주소와 브로드 캐스트주소에 대해 알아보자
네트워크 주소와 브로드캐스트 주소의 구조란?
해당 두 주소는 틀별한 주소로 컴퓨터나 라우터가 자신의 IP로 사용하면 안되는 주소다.
일단
네트워크 주소를 보자
192.168.1.0
11000000 10101000 00000001 00000000
( 네트워크 ID ) ( 호스트 ID)
브로트캐스트 주소를 보자
192.168.1.255
11000000 10101000 00000001 11111111
( 네트워크 ID ) ( 호스트 ID)
네트워크 주소는 작은 전체 네트워크에서 특정 네트워크를 식별하는데 사용되고 호스트 ID는 그 네트워크 전체를 대표하는 주소가 된다.
즉 네트워크 주소가 192.168.1.0 이라면 안에 존재하는 컴퓨터 192.168.1.1~ 192.168.1.x 의 네트워크 주소는 192.138.1.0에 있다는 것이다.
그럼 왜 브로드캐스트 주소를 어디에 사용할 까?
바로 네트워크에 있는 컴퓨터나 장비 모두에게 한번에 데이터를 전송하는데 사요하기위한 전용 IP주소다.
192.168.1.0 네트워크 안에서 192.168.1.255로 브로트캐스트 주소에 전송하면 모든 컴퓨터에 데이터가 송신된다.
서브넷의 구조란?
네트워크르 분할하는 것을 서브넷팅이라고한다. 이전에 IP주소를 ABC 클래스로 나눈 것과 같이
A클래스는 네트워크ID가 8비트 호스트 ID가 24비트,
B클래스는 네트워크ID가 16비트 호스트 ID가 16비트,
C클래스는 네트워크ID가 24비트 호스트 ID가 8비트였다.
예로 A클레스 네트워크는 호스트 ID가 24비트이기에 IP주소를 1677만 7214개를 사용할 수 있는데..
이 모든걸 브로드캐스트 패킷을 전송하면 네트워크가 혼란해질 것이다.
그렇기에 작은 네트워크로 분할하여 패킷의 범위를 줄임으로 IP주소를 더 효과적으로 사용할 수 있다.
그렇게 되면 기존 구성 IP가 네트워크ID + 서브넷ID + 호스트 ID로 나누어지게된다.
그러나! 서브넷팅하다 보면 어디까지가 네트워크ID인지 어디서부터 호스트IP인지 헷갈리는 경우가 있다.
이럴 떄 서브넷 마스크라는 값을 사용한다.
예로 접두사로써 값을 적어 보내는 것이다
255.0.0.0 이라하면 첫번째 8비트가 네트워크 ID 값 -> /8
255.255.0.0 이라하면 두번째까지 16비트가 네트워크 ID값이 된다. -> /16
이러한 계산식으로 255.255.255.0은 /24로 값이된다.
추가) 255.255.255.240은?! -> 11111111 11111111 11111111 11111111 00000000 이기 때문에 24비트 -> /28이된다.
라우터란?
서로다른 네트워크와 통신하려면 필요한 기기로, 라우터는 각각의 네트워크를 분리하여 원하는 네트워크로 갎 수 있도록 경로를 지정해준다.
네트워크 분리가 헷갈릴 수 있으니 예시를 들어보겠다.
스위치도 네트워크를 만들 수 있지만 스위치 별로 네트워크를 구성을 한들
스위치끼리 연결하면 다 같은 동일 네트워크가 된다.
그리하여 우리는 스위치로 여러 컴퓨터의 네트워크를 만들고,
라우터로 각각의 컴퓨터뭉치( 네트워크)를 분리할 수 있다.
네트워크를 분리하고 컴퓨터 한 대가 다른 네트워크로 접속하기 위해서는 라우터 IP주소를 설정해야한다.(기본 게이트웨이)
원하는 컴퓨터의 주소를 모르기 때문에 송신측 컴퓨터는 일단 라우터 주소에 데이터를 보내는 것이다.
여기서! 라우팅이라는 기술을 통헤 경로정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로로 데이터를 전송한다.
여기서 이 경로가 등록되어 잇는 테이블이 라우팅 테이블이라고한다.
따라서 A-> B로 데이터를 보내게되면
A -> 라우터(라우팅 테이블) -> 라우터(라우팅 테이블) -> B
요약)
서로 다른 네트워크 간에 통신을 하려면 라우터가 필요하다.
랜 안에서는MAC 주소만으로도 통신할 수 있지만 네트워크 간에 통신을 하려면 P주소가 필요하다.
경로를 선택하고 목적지 IP주소까지 어떻게 데이터를 전달할지 결정하는 것을 라우팅이라고한다.
라우터의 라우팅 테이블에는 경로 정보가 등록되어 있다.
네트워크 계층의 대표적인 프로토콜에는 IP가 있다.
네트워크 계층에서는 캡슐화할 떄 IP헤더를 추가한다.
데이터를 다른 네트워크로 전달하려면 IP주소가 필요하다.
IP주소는 인터넷 서비스 공급자에게 할당 받을 수 있다.
IPv4의 IP주소는 32비트, IPv6의 주소는 128비트로 구성되어 있다.
IP주소의 종류에는 공인, 사설 Ip 주소가 있다.
IP 주소는 네트워크, 호스트 ID로 나누어진다.
네트워크 주소와 브로드캐스트 주소는 컴퓨터에 IP주소로 할당할 수 없다.
서로 다른 네트워크와 통신하려면 라우터가 필요하다.
라우터는 네트워크를 분할할 수 있지만 스위치와 허브는 분할할 수 없다.
컴퓨터에서 다른 네트워크로 데이터를 전송하려면 기본 게이트웨이(라우터주소)를 설정해야한다.
라우팅은 경로 정보를 기바능로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 방식이다.
경로 정보가 등록되어 있는 테이블을 라우팅테이블이라고한다.
라우터간에 라우팅 정보를 서로 교환하기 위한 프로토콜을 라우팅 프롵토콜이라고한다.
'Network' 카테고리의 다른 글
응용 계층 : 에플리케이션에 데이터 전송하기 (0) | 2022.07.19 |
---|---|
전송계층 : 신뢰할 수 있는 데이터 전송하기 (0) | 2022.07.19 |
데이터 링크 계층 : 랜에서 데이터 전송하기 (0) | 2022.07.19 |
물리 계층 :데이터를 전기 신호로 변환하기 (0) | 2022.07.19 |
네트워크의 기본 규칙 (0) | 2022.07.19 |