javascript
사용자
-----------------
응용 계층
표현 계층
세션 계층
전송 계층
네트워크 계층
데이터 링크 계층
물리 계층
-----------------
전선
WAN에서의 이야기를 다룬다. (LAN과 LAN 간의 통신)
네트워크 간 연결
- 라우터라는 장비가 필요하다.
- IP 주소라는 새로운 식별주소가 필요
IP 주소
javascript
컴퓨터1
- 네트워크 계층 : IP 헤더를 붙여 IP 패킷을 만든다.
- 데이터링크 계층 : 이더넷 헤더와 트레일러를 붙여 프레임을 만든다.
- 물리 계층 : 프레임을 전기신호로 변환 후 전송.
- 물리 계층 : 전기신호를 프레임으로 변환
- 데이터링크 계층 : 이더넷 헤더와 트레일러 분리.
- 네트워크 계층 : IP 헤더를 분리
컴퓨터2
IP 헤더에 들어가는 것
javascript
버전, 헤더길이, 서비스 유형, 전체 패킷 길이, ID, 조각 상태, 조각의 위치,
TTL, 프로토콜, 헤더 체크섬, 출발지 IP주소, 목적지 IP주소
IP 주소의 구조
- IP 주소는 인터넷 서비스 제공자(ISP = 통신사)에게 받을 수 있다.
- 처음에는 IPv4를 사용. 주소 갯수가 부족해져서 인제는 IPv6.
- IPv4는 32비트, 총 2^32 = 43억개의 주소를 만들 수 있음.
- IPv6는 128비트, 총 2^128개의 주소를 만들 수 있음.
- IP 주소에는 공인과 사설이 존재.
- 공인 : ISP가 제공하는 ip
- 사설 : 개인이 쓰는 ip (DHCP를 이용해 할당)
- DHCP : IP 주소를 자동으로 할당하는 프로토콜. 이를 통해 IP주소의 갯수를 절약할 수 있음.
IP 주소 읽기
javascript
총 32비트. 8비트 씩 끊어서 독해.
단 실제 주소는 10진수로 되어 있음.
172.168.0.2
- 각 범위에 들어갈 수 있는 것 (1 ~ 255)
- 4개의 옥텟으로 구분했다는 것이 바로 .으로 숫자를 나눴다는 뜻
IP 주소는 2개로 나눌 수 있음
- 네트워크 ID : 어떤 네트워크인지를 나타냄
- 호스트 ID : 해당 네트워크의 어떤 컴퓨터인지를 나타냄
IP 나누기
네트워크가 너무 커지다보니, IP주소를 네트워크/호스트 ID를 이용해 적절하게 나누게 된다.
또 기능에 따라 네트워크 주소와 브로드캐스트 주소라는 것이 존재한다.
과거에는 IP주소 클래스를 이용했다면, 요즘은 서브넷팅을 이용한다.
IP 주소 클래스
| 네트워크 ID | 호스트 ID | |
|---|---|---|
| A클래스 | 8 | 24 |
| B클래스 | 16 | 16 |
| C클래스 | 24 | 8 |
범위를 십진수로 나타내면 다음과 같다.
javascript
<클래스별 공인>
1.0.0.0 ~ 9.255.255.255
11.0.0.0 ~ 126.255.255.255
128.0.0.0 ~ 172.15.255.255
172.32.0.0 ~ 191.255.255.255
192.0.0.0 ~ 192.167.255.255
192.169.0.0 ~ 223.255.255.255
- 끝이 0 = 호스트ID가 0 = 네트워크 주소
- 끝이 255 = 호스트 ID가 255 = 브로드캐스트 주소
<사설>
10.0.0.0 ~ 10.255.255.255
172.16.0.0 ~ 172.31.255.255
192.168.0.0 ~ 192.168.255.255
네트워크 주소 = 작은 네트워크를 대표하는 주소.
브로드캐스트 주소 = 네트워크 상 모든 장비에게 한번씩 데이터를 전송하는 전용 IP 주소
이 두 주소는 단말기의 IP주소로 설정하면 안됨.
서브넷팅
ip 주소 클래스를 좀 더 세분화한 것이라고 생각하면 됨.
따라서 ip가 네트워크 id, 서브넷 id, 호스트 id로 나눠지게 됨.
이를 좀 더 쉽게 보기 위해 서브넷 마스크나 프리픽스 표기법(cidr)을 사용하게 됨.
javascript
서브넷 마스크 : 네트워크 id와 호스트 id를 식별하기 위한 값.
- 0으로 표기된 부분이 호스트 id
프리픽스 표기법 : /와 숫자를 사용한 표기법
255.255.255.0 = /24
서브네팅 테이블
| 호스트 주소 | 한 서브넷 당 ip 갯수 | 네트워크의 서브넷 총 갯수 | |
|---|---|---|---|
| 255.255.255.128 | 2^7 | 2^1 | /25 |
| 255.255.255.192 | 2^6 | 2^2 | /26 |
| 255.255.255.224 | 2^5 | 2^3 | /27 |
| 255.255.255.240 | 2^4 | 2^4 | /28 |
| 255.255.255.248 | 2^3 | 2^5 | /29 |
| 255.255.255.252 | 2^2 | 2^6 | /30 |
| 255.255.255.253 | 2^1 | 2^7 | /31 |
| 255.255.255.255 | 2^0 | 2^8 | /32 |
라우터
- 네트워크를 분리하는 장비
- 기본 게이트웨이 : 네트워크의 출입구라고 할 수 있는 부분
- 네트워크 주소를 기본 게이트웨이로 설정하는 경우가 많다
- 라우팅 : 경로 정보를 기반으로 현재 네트워크에서 다음 네트워크로 데이터를 전송하는 것
- 경로정보가 등록되어 있는 테이블 = 라우팅 테이블
- 라우팅 테이블을 자동으로 설정 = 동적 라우팅
- 라우팅 테이블을 수동으로 설정 = 정적 라우팅
- 동적 라우팅을 위해서는 라우터끼리 정보를 교환해야 함.
- 이때 라우팅 정보를 교환하기 위한 프로토콜을 라우팅 프로토콜이라고 함.