Love Every Moment
〔NETWORK〕 네트워크, IP 주소, 사설 IP, 클래스, 포트포워딩 본문
0. 네트워크(Network)
- 두 대 이상의 컴퓨터가 물리적으로 또는 논리적으로 연결되어 통신 가능한 상태
규모에 따른 네트워크의 종류
(1) PAN(Personal Area Network)
- 가장 작은 규모의 네트워크
(2) LAN(Local Area Network)
- 근거리 영역 네트워크 또는 근거리 통신망
- 집, 학교, 또는 회사처럼 좁은 범위 내에서 고속 통신이 가능한 통신망
- 여러 기기가 하나의 네트워크(=와이파이 라우터)에 연결되어 있는 것
(3) MAN(Metropolitan Area Network)
- 대도시 영역 네트워크
(4) WAN(Wide Area Network)
- 광대역 통신망으로 LAN 보다 넓은 지역을 하나로 묶는 네트워크
- 지역과 지역, 지방과 지방, 국가와 국가, 또는 대륙과 대륙을 연결하는 통신망
- 라우터를 통해 연결되는 외부의 네트워크들이 모여 있는 것
- 인터넷은 하나의 거대한 WAN
1. IP 주소
(1) IP(Internet Protocol)
- 각각의 컴퓨터가 서로 통신하기 위해 가지고 있는 고유의 네트워크 '주소'를 부여해 서로 인식하고 통신하도록 하자는 규약
- TCP/IP 프로토콜을 사용하는 모든 장비를 구분해주기 위해서 만들어진 것이다.
- TCP 가 데이터의 효율적인 전달을 담당한다면 IP 는 데이터를 어디로 전달하면 되는지에 대한 규칙을 담당한다.
- IP 주소: 데이터가 전송되어야 하는 곳의 주소
프로토콜(Protocol) 이란?
컴퓨터가 서로 통신하려면 데이터 송수신 방법이 양쪽 모두 통일되어야 하기 때문에 공통된 약속에 따르도록 하는 규약
(2) IP 주소 체계
■ IPv4
- 점(.)으로 구분된 4개의 옥텟(8비트)으로 이루어져 있는 주소 체계
- 8비트는 10진수로 표현하면 0~255 사이의 값을 가진다.
- 따라서 0.0.0.0 ~ 255.255.255.255 사이가 주소가 된다.
- 255.255.255.255 를 2진수로 표현하면 11111111.11111111.11111111.11111111
- IPv4 는 총 32비트의 숫자로 이루어져 있으므로 약 43억(2^32)개의 주소를 만들 수 있다.
- 최근 사용 가능한 IPv4 주소가 빠르게 고갈되면서 고안된 것이 IPv6 이다.
127.0.0.1 은 로컬 호스트, 즉 자기 자신을 가리키는 특별한 주소로 예약되어 있다.
■ IPv6
- 콜론(:)으로 구분된 8개의 16비트 숫자로 이루어져 있는 주소 체계
- 예를 들면 2001:0db8:0000:0000:8a2e:0370:7334
- IPv6 는 총 128비트의 숫자로 이루어져 있으므로 총 2^128 (43억^4) 개의 IP 주소를 만들 수 있다.
2. 사설 IP 와 공인 IP
- 위의 IPv6 처럼 IPv4 주소가 한정되어 있다는 문제로 인해 고안된 방법
- 내부에서만 사용할 수 있는 IP 주소라면 외부의 IP 와 중복되더라도 상관 없다.
- 공인 IP(Public IP): 와이파이 공유기의 주소
- 사설 IP(Private IP): 공유기에 연결된 각 기기들의 주소
- 공유기는 고유의 공인 IP 주소를 가지지만 공유기에 연결된 기기들은 다른 네트워크 기기와 같은 사설 IP 주소를 가진다.
- 보통 집에서 쓰는 컴퓨터의 IP 주소가 192.168.0.~ 인 이유이다.
■ 사설 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
3. 네트워크 클래스(Network Class)
- 클래스: IP 주소의 타입으로, 클래스마다 하나의 IP 주소를 네트워크 ID와 호스트 ID로 나누는 방법이 다르다.
- 하나의 네트워크에서 몇 개의 호스트 ID까지 가질 수 있는가에 따라 클래스가 나뉜다.
- 즉, 네트워크 ID의 범위가 커질수록 호스트 ID의 범위는 작아지는 반비례 관계에 있다.
- IPv4 에는 A, B, C, D, E 총 다섯 개의 클래스가 있지만 A, B, C 만이 주로 사용된다.
- D 와 E 는 멀티캐스팅이나 정부 차원에서만 사용하는 특수한 클래스이다.
클래스를 나누는 이유: IP 주소를 적절하고 효율적으로 배분하기 위해서
네트워크 ID
- 같은 네트워크 상에 있다면 같은 네트워크 ID를 가진다.
- 같은 네트워크에 있으면 서로 ping 을 날리거나 공유폴더를 만드는 등의 자유롭게 통신이 가능하다.
- 하나의 네트워크 ID 아래 여러개의 기기가 존재할 수 있다.
- 브로드캐스트 영역(Broadcast Domain)으로, 라우터를 거치지 않아도 통신이 가능하다.
- 라우터가 라우팅을 할 때에 참고하는 부분이다.
호스트 ID
- 해당 네트워크에 속한 사용자에게 부여하는 고유의 번호이다.
- 호스트: 각각의 PC 또는 장비
- 리눅스 터미널에서 ifconfig 명령어를 통해 나의 IP 주소를 확인 가능하다.
- 예를 들어 inet 172.16.0.1 이라는 결과가 나왔다면,
- 172.16 는 네트워크 ID 이고 0.1 은 호스트 ID 이다.
- 같은 네트워크 ID 를 가지면서 다른 호스트 ID 를 가진다면 서로 통신할 수 있다.
- 어디까지가 네트워크 ID이고 어디까지가 호스트 ID 인지 알아내려면 클래스의 개념을 알아야한다.
■ 클래스별 IP 주소의 앞자리
(1) A 클래스: 0 ~ 127 (0xxx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx)
(2) B 클래스: 128.0 ~ 191.255 (10xx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx)
(3) C 클래스: 129.0.0 ~ 223.255.255 (110x xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx)
- 이들은 각 클래스의 네트워크 ID 를 의미한다.
- A 클래스에서는 IP 의 첫번째 블락까지만 같으면 같은 네트워크에 속해있다는 의미이다.
- B 클래스에서는 두번째 블락까지, 그리고 C 클래스에서는 세번째 블락까지 같아야 같은 네트워크에 속해있다.
- 네트워크 ID 를 제외한 나머지가 호스트 ID 가 되며 해당 네트워크에서 몇 개의 IP 가 만들어질 수 있는지를 결정한다.
- 127.0.0.1 의 경우 엄밀히 따지면 A 클래스에 속하지만 보통은 로컬 호스트(Local Host) 라고 지칭한다.
■ 클래스별 호스트 주소의 개수
(1) A 클래스: (2^24) - 2
(2) B 클래스: (2^16) - 2
(3) C 클래스: (2^8) - 2
- -2 를 해주는 이유는 모두 0으로 표현되는 네트워크 주소와 모두 1로 표현되는 브로드캐스트 주소 때문이다.
- 예를 들어 A 클래스로 13.0.0.0 네트워크 주소를 할당 받았다면,
- 13.0.0.0 은 네트워크 주소가 되고 13.255.255.255 는 브로드캐스트 주소로 사용된다.
- A 클래스가 가장 많은 호스트를 포함하므로 규모가 큰 기관에서 사용한다.
클래스 | 첫 고정 비트 | 네트워크 ID | 호스트 ID |
A 클래스 | 0 | 8 비트(2^7개) | 24 비트(2^24-2개) |
B 클래스 | 10 | 16 비트(2^14개) | 16 비트(2^16-2개) |
C 클래스 | 110 | 24 비트(2^21개) | 8 비트(2^8-2개) |
4. 디폴트 게이트웨이(Default Gateway)
- 다른 네트워크로 통하는 액세스 포인트
- 라우터의 사설 IP 주소로, 할당 가능한 호스트 중에서 첫번째 주소이다.
- 예를 들어 나의 사설 IP 주소가 192.168.0.4 라고 한다면, 디폴트 게이트웨이는 192.168.0.1 이 된다.
5. 포트 포워딩(Port Forwarding)
- 외부에서 LAN 안에 있는 기기에 접근이 가능하도록 하는 기술이다.
- 포트는 기본적으로 0~65535번으로 구성되어 있다.
- 네트워크 주소 변환(NAT)의 응용이다.
NAT(Network Address Translation): 컴퓨터 네트워크에서 패킷이 라우터나 방화벽 같은 네트워크 게이트웨이를 통과하는 동안 하나의 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 것
외부의 데이터가 우리집 라우터에 연결된 나의 노트북에 들어오는 과정을 살펴보자.
우선 우리집 라우터에는 휴대폰, 노트북, 컴퓨터가 연결되어 있다.
이렇게 하나의 네트워크(=라우터)에 여러 기기가 연결되어 있는 것을 LAN 이라고 부른다.
라우터의 공인 IP 와 연결된 기기의 사설 IP 가 다르기 때문에 이를 매핑해주는 것이 NAT 이다.
하나의 라우터에는 여러 개의 포트가 있는데 해당 포트로 요청이 오면 특정 기기로 연결하라는 이정표를 달아주는 것이다.
예를 들어 라우터의 공인 IP 가 59.6.66.238:8080 이고 외부에서 59.6.66.238:8080 으로 접속할 경우
라우터는 설정된 출발지(포트: 8080)를 확인하고 매칭되는 목적지(포트: 8080)로 연결시켜준다.
여기서는 포트 번호 8080 에 노트북이 설정되어 있으므로 노트북으로 전송되게 된다.
REFERENCE:
'PROGRAMMING::CORE > Network' 카테고리의 다른 글
〔NETWORK〕서브넷마스크, OSI 모형, TCP/UDP, DNS/DHCP (0) | 2021.06.19 |
---|