일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- cmd
- 기본코드
- Eclipse
- CSS
- java
- MySQL
- js
- 이클립스
- Git알아보기
- jdbc
- arraylist
- javascript
- Git이해하기
- java입문
- java기초
- 데이터베이스연동
- 배열
- emmet
- list
- html
- 컬렉션프레임워크
- Collection
- object
- 버튼페이지이동
- 점프 투 파이썬
- form
- 맨땅에 해딩
- 오버라이딩
- 파일이동버튼
- 필드
- Today
- Total
단단히
IP(Internet Protocol) 본문
JSP를 실행하고 배우다 보니 서버, 네트워크.. 등 구조에 궁금함이 생긴다.
사실 어떻게 연결되는지 감이 안 잡히고 환경설정 후 확인할 때마다 등장하는 단어들도
잘 모르겠어서 조금씩 개념을 쌓아보고자 한다.
IP
Internet protocol의 약자인 ip는 인터넷에서 다른 컴퓨터와 통신할때 사용하는 프로토콜*이다.
컴퓨터는 통신하기위해 논리적인 주소를 생성한다.
컴퓨터는 0과 1로 표현하는데 그때 1비트를 차지한다.
현재 IP는 32비트 체계를 사용하기 때문에 약 40억 개 이상의 주소 표현이 가능하다.
IP의 형태는 보통 192.168.0.1 같은 숫자와 온점(.)으로 이뤄진 형태이다.
(자세한건 아래쪽에 조금 더 자세히 적어놓는다.)
즉, 인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비, 스마트폰... 등 )을 식별할 수 있도록
각각의 장비에 부여되는 고유 주소이다.
웹에 접속할때 IP 주소를 이용해 통신하는 것이다.
*프로토콜 : 통신 시스템이 데이터를 교환하기 위해 사용하는 통신 규칙이다.
OSI 7계층 모델에서는 각 계층에서 수행되는 프로토콜이 서로 독립적이라고 간주한다.
사용할 수 있는 IP주소는 2의 비트 수를 제곱하여 나온 값에 2를 뺀 값을 말한다.
이때 2를 빼는 이유는 부여받지 못하는 수가 있기때문이다.
IP주소에는 사용될 기능이 미리 정해져 있어 호스트(각 개인인 우리들)에게 할당할 수 없는 주소가 있다.
1. 네트워크 NAME으로 사용되는 네트워크 주소
: 이 주소는 모든 숫자가 0으로 이루어진 주소를 말한다. 호스트 주소들 중에 가장 우선에 있는 주소이다.
2. 브로트 캐스트 용 주소
: 이 주소는 호스트 주소가 모두 1로 이루어진 주소를 말한다. 호스트 주소들 중 가장 뒤에 있는 주소이다.
IPv4 / IPv6
IP의 종류는 2가지로 나눌 수 있다.
IPv4는 IP Version 4의 약자이다. 세계적으로 사용된 첫 번째 인터넷 프로토콜이다.
1비트씩 32비트 방식으로, 8비트씩 4자리로 되어 있으며 각 자리는 점(.)으로 구분한다.
ex) 192.168.0.1
IPv6는 IP Version 6의 약자이다. 점점 인터넷 사용자 수가 증가하면서 version 4의 고유 주소 고갈 문제가
생겼다. 그래서 등장한 게 IPv6이다. 주소체계를 128비트로 확장한 프로토콜 주소이다.
16비트씩 8자리로 각 자리는 콜론(:)으로 구분한다.
장점
확대된 주소 공간이다. 0과 1로만 표현할 수 있는 컴퓨터에서 128비트로 표현할 수 있으니 2^128 개의 주소를 생성할 수 있다.
두 번 때는 간편한 주소 설정 기능이다. 프로토콜에 내장된 주소 자동 설정 기능을 이용하여 플러그 앤 프레이 설치가 가능하다.
또한 보안에서도 강해졌다. IPv6에서는 IPSec* 기능을 기본 사항으로 제공하기 때문이다.
*IPSec : 통신 세션의 각 IP 패킷을 암호화하고 인증하는 안전한 인터넷 프로토콜 통신을 위한 인터넷 프로토콜 스위트이다.
고정 IP, 유동 IP / 공인 IP, 사설 IP
IP를 방식에 따라 나눌 수 있는데, 고정 IP/ 유동 IP 와 공인 IP/ 사설 IP로 나눌 수 있다.
고정 IP 주소는 정적 IP라고도 부른다. ISP에 의해 해당 사용자 전용으로 부여되는 인터넷 주소로서, 특별한 사유가 없는 한 늘 변하지 않고 사용되는 주소를 위미 한다.
늘 고정되어있기 때문에 자신의 주소를 숙지하면 인터넷이 연결된 어느 곳에서 나 자신의 컴퓨터에 접속해
작업을 하거나 서비스를 할 수 있다.
대신 들어가기 쉬운만큼 해킹도 쉬울 수 있다.
유동 IP 주소는 DHCP라는 서버에게 IP를 할당받아 사용하고 기간이 만료되면 IP 주소를 다시 반납한다.
이 방식은 컴퓨터의 전원을 껐다가 다시 켰을때 arp라는 신호를 보내서 DHCP server로부터 IP주소를 받아온다. 빌려주는 시간은 관리자가 정하기 때문에 언제 바뀌는지 확인을 해봐야 한다.
즉, 고정적으로 IP를 부여하지 않고 IP 갱신주기가 됐을 때 기기를 껐다가 켜면 ISP(인터넷 서비스 공급자)에서 남은 IP를 기기에 할당해 준다.
공인 IP 주소는 외부에 공개되어있는 인터넷 주소를 말한다. ICANN 기관에서 국가 별로 사용할 IP 대역을 관리하고 있다. 우리나라에서 KT, SKT, LG.. 등에서 IP를 사용자에게 제공한다.
외부에 공개되어있기 때문에 다른 컴퓨터에서 쉽게 접근이 가능하다.
그만큼 해킹의 대상이 될 수 있기때문에 보안 프로그램이 필수이다.
사설 IP 주소는 로컬 IP 또는 가상 IP라고 불린다. 외부에서는 접근할 수 없는 IP를 의미한다.
개인이나 회사 내부에서 사용할 목적으로 할당된 인터넷 주소이고 공인 IP가 할당된 라우터나 공유기를 통해
로컬 네트워크에 연결된 기기에 사설 IP가 할당된다.
공유기를 사용하는 가정집이 있다고 가정해보자. 공유기까지는 공인 IP가 주어지지만 공유기에 연결된 장치들에게는 사설 IP가 할당된다.
사설 IP는 외부 접근이 불가능해서 보안에 용이하다.
비유
IP 주소도 특정 컴퓨터를 지칭하는 고유한 문자, 숫자이다. 때문에 마을과 각 주소로 비유가 많다.
이해를 돕는데 비유만큼 좋은 게 없는 것 같다.
누군가 우편을 보내서 우체국에서 우편물에 있는 주소를 보고 나를 찾아와야 한다.
이때 나는 AA시 BB동 CC마을 001번지에 있다고 생각해보자.
우리 모든 마을 사람들이 공유하는 공통된 주소는 AA시 BB동 CC마을이다.
나만 가지고 있는 부분, 즉 나의 위치를 설명해 주는 유일한 부분은 001번지이다.
이렇게 IP주소도 공통되는 부분과 유일한 부분으로 나눠져 있다.
공통된 부분은 네트워크 주소 부문이고 유일한 주소는 인터페이스 주소 부문(호스트 주소)이다.
IP 주소는 컴퓨터의 주소를 의미하고 다른 컴퓨터와 통신하기 위한 고유 식별 주소이다.
IP는 종류와 방식으로 구분할 수 있으며 각각 장단점이 존재한다.