영상: [따라學 IT] 04. 실제로 컴퓨터끼리는 IP주소를 사용해 데이터를 주고받는다
- 컴퓨터끼리는 IP주소로 통신한다
- IP주소는 3계층에서 쓰는 주소 체계, 논리적 주소
- MAC주소는 2계층에서 쓰는 주소 체계, 물리적 주소
3계층의 기능
-
멀리 떨어진 곳에 존재하는 네트워크(다른 네트워크 대역)까지 어떻게 데이터를 전달할지 제어하는 일을 담당
-
가까운 네트워크 대역: LAN
-
LAN —— (WAN) —— LAN
-
대표적인 장비: 라우터 (2계층 대표적인 장비: 스위치)
-
발신에서 착신까지의 패킷의 경로를 제어함
-
powershell에서 Ipconfig 쳐보면 현재 IP 주소를 확인할 수 있음
- IPv4 주소: 현재 PC에 할당된 IP주소
- 서브넷 마스크: IP주소에 대한 네트워크의 대역을 규정하는 것
- 게이트웨이 주소: 외부와 통신할 때 사용하는 네트워크 출입구
⇒ 이렇게 있으면 멀리 있는 네트워크와 통신할 수 있음
3계층 프로토콜
- ARP 프로토콜
- IPv4 프로토콜 (IPv6와 완전히 다른 프로토콜)
- ICMP 프로토콜
일반적인 IP 주소 (=IPv4 주소)
Classful IP 주소
- 필드 4개, 콤마(.) 으로 구분
- 내부는 이진수이지만 십진수로 기재
- 한 필드당 1byte(=8bit) ⇒ 한 필드당 0 ~ 255까지 가능)
- 옛날, 초창기 방식임
클래스 | 네트워크 구분 | 시작 주소 | 마지막 주소 |
---|
A클래스 | 0XXXXXXX(첫번째 필드를 이진수로 바꿨을 때) | 0.0.0.0 | 127.255.255.255 |
B클래스 | 10XXXXXX(첫번째 필드를 이진수로 바꿨을 때 = 128) | 128.0.0.0 | 191.255.255.255 |
C클래스 | 110XXXXX(첫번째 필드를 이진수로 바꿨을 때 = 192) | 192.0.0.0 | 223.255.255.255 |
D클래스 | 1110XXXX | 224.0.0.0 | 239.255.255.255 |
E클래스 | 1111XXXX | 240.0.0.0 | 255.255.255.255 |
- A 클래스
- 첫번째 필드만 네트워크 대역 구분에 쓰임(=> A 클래스의 네트워크 대역은 128가지 있을 수 있음)
- 두번째~네번째 필드는 하나의 네트워크 대역 내의 PC 종류를 구분하는데 쓰임 (=> 0.0.0 -> 255.255.255 : 256256256 개의 PC 구분 가능함)
- 구분 가능한 네트워크 대역 수 << 구분 가능한 PC 수 => 엄청나게 규모가 큰 네트워크 대역에서 사용하는 IP 주소체계
- B 클래스
- 두번째 필드까지 네트워크 대역 구분에 쓰임 (=> A클래스보다 구분 가능한 네트워크 대역이 늘어남)
- 세번째, 네번째 필드는 하나의 네트워크 대역 내의 PC 종류를 구분하는데 쓰임 (=> 256*256 개의 PC 구분 가능함)
- C 클래스
- 세번째 필드까지 네트워크 대역 구분에 쓰임 (=> A클래스보다 구분 가능한 네트워크 대역이 훨씬 늘어남)
- 네번째 필드는 하나의 네트워크 대역 내의 PC 종류를 구분하는데 쓰임 (=> 256개의 PC 구분 가능함)
- 일반적으로 가장 많이 사용됨
- D 클래스
- E클래스
⇒ 문제점: 낭비가 심하다
ex) A클래스를 한 장소에서 사용한다고 하면, 하나의 네크워크 대역을 차지할텐데, 해당 네트워크 대역에 연결된 컴퓨터가 10대라고 하면, (256256256 – 10)개의 IP주소가 쓰이지 못하고 낭비된다.
Classless IP주소
- 하나의 큰 네트워크를 여러 개의 작은 네트워크로 쪼개서 쓰자.
- 서브넷 마스크로 (어디까지가 네트워크 대역에 대한 구분)이고 (어디서부터가 PC(=호스트) 구분)을 위한 IP 주소인지 알 수 있음
- 규칙
- 8bit * 4로 이루어져 있음
- 2진수로 표기했을 때 1로 시작해야함
- 1과 1 사이에는 0이 올 수 없음
- 1의 위치 = 네트워크 대역 구분에 쓰이는 IP 주소 위치
- 0의 위치 = PC 구분에 쓰이는 IP 주소 위치
ex) 255.255.255.192 => 1111111.11111111.11111111.11000000
- 예시
- IP 주소에서 1111111.11111111.11111111.11000000 => 이 부분은 네트워크 대역 구분에 쓰임 (256256256*4가지)
- IP 주소에서 1111111.11111111.11111111.11000000 => 이 부분은 PC 구분에 쓰임 (64가지)
- 서브넷마스크가 255.255.255.0(=1111111.11111111.11111111.00000000)이면 C 클래스를 의미함
⇒ 이렇게 해도 이진수 기준이라서 낭비가 됨
ex) 20대 PC가 있는데 255.255.255.224 (=1111111.11111111.11111111.11100000) 서브넷마스크를 쓰면 32대 구분이 가능해서 12개의 IP주소가 낭비된다
- 한 필드에 16bit를 담을 수 있는 IPv6를 쓰자는 이야기가 나왔다.
사설 IP와 공인 IP
- 현재 사용하는 IPv4의 개념
- 공인IP 1개당 256256256*256개의 사설IP가 생길 수 있다
- 공인 IP : 인터넷 세상, 즉, 네트워크 통신망과 통신할 때 사용하는 IP 주소. 인터넷과 통신할 때 같은 네트워크 대역에 있으면 하나의 IP 사용
- 사설 IP : 같은 네트워크 대역에서 사용하는 IP 주소
- NAT(Netword Address Translation) : 특정 IP를 특정 IP로 변환하는 기술 ⇒ 공유기
- 집에 인터넷 설치하는건 공유 IP 하나를 돈 주고 사는 개념임
- 실제 인터넷 세상에서는 공인 IP로만 통신 ⇒ 외부 네트워크 대역에서 사설 IP 대역은 보이지 않음
- 개인 PC에서 어떠한 요청을 보내면(사설IP → 공인IP → 바깥 세상) 공유기가 NAT 테이블에 기록
- 응답이 오면, NAT 테이블을 보고 요청 보냈던 사설 IP로 응답 보내줌
- 응답이 왔는데, NAT 테이블에 기록된 요청이 없으면 공유기가 응답을 받음(안 보내줌)
- 요청이 있어야만 응답이 외부에서 내부로 들어올 수 있어서 서버는 사설 IP를 잘 쓰지 않는다 ⇒ 포트포워딩이라는 추가적인 설정을 하면 가능
특수한 IP 주소
- 0.0.0.0 : 나머지 모든 IP
- IPv4 경로 테이블에서 네트워크 대상에 적힌 IP 주소들 외의 모든 IP
- 127.0.0.1 : 나 자신을 나타내는 주소 (localhost)
- 게이트웨이 : 일반적으로 공유기의 주소, 외부랑 통신할 때 쓰는 기본 IP