일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dbeaver
- Oracle VM VirtualBox
- linux
- RFP
- MariaDB
- csharp
- 데이터베이스
- 파이썬 전처리
- it 용어
- it용어
- Oracle
- sql
- HTML
- python algorithm
- putty
- 파이썬
- PYTHON
- Algorithm
- VirtualBox
- 파이썬 알고리즘
- 코딩테스트
- 파이썬 데이터프레임
- 알고리즘
- C#
- Python DataFrame
- 리눅스 명령어
- Python 라이브러리
- tibero
- 리눅스
- 오라클
- Today
- Total
오경석의 개발노트
IT 용어_IP(Internet Protocol) 본문
■ 개념
IP는 인터넷이나 컴퓨터 네트워크에서 데이터를 주고받는 데 사용되는 규칙 또는 프로토콜. IP는 장치 간의 통신을 가능하게 하기 위해 네트워크에서 각 장치(컴퓨터, 서버, 스마트폰 등)를 고유하게 식별하는 IP 주소를 사용.
인터넷을 통과하는 데이터는 패킷이라고 하는 더 작은 조각으로 나뉜다. IP 정보는 각 패킷에 첨부되며, 이 정보는 라우터가 패킷을 올바른 위치로 보내는 데 도움이 된다. 인터넷에 연결하는 모든 장치나 도메인에는 IP 주소가 할당되며, 패킷이 연결된 IP 주소로 전달되면 데이터가 필요한 곳에 도착한다.
패킷이 목적지에 도착하면 IP와 함께 어떤 전송 프로토콜이 사용되는지에 따라 다르게 처리된다. 가장 일반적인 전송 프로토콜은 TCP와 UDP다.
IP 주소는 인터넷에 연결하는 장치나 도메인에 할당된 고유 식별자이다. 각 IP 주소는 '192.168.1.1'과 같은 일련의 숫자다. 사람이 읽을 수 있는 도메인 이름을 IP 주소로 변환하는 DNS 확인자를 통해 사용자는 이 복잡한 일련의 숫자를 기억하지 않고도 웹 사이트에 액세스 할 수 있다. 각 IP 패킷에는 대상 주소와 반송 주소를 모두 우편물에 기재하는 방식과 마찬가지로 패킷을 보내는 장치 또는 도메인의 IP 주소와 대상 수신자의 IP 주소가 모두 포함된다.
하나의 IP는 네트워크 부분 + 호스트 부분으로 구성되어있다. 하나의 네트워크 즉 하나의 브로드캐스트 도메인에 있는 IP끼리 통신하기 위해선 네트워크 영역이 같아야 하며, 호스트 IP는 달라야 한다. 호스트 IP가 다르지 않다면 IP는 충돌 나게 된다. 그렇다면 네트워크 영역이 다르다고 해서 통신할 수 없을까? 아니다. 네트워크 영역이 달라도 라우터나 게이트웨이와 같은 통신장비를 통해 통신할 수 있다. 다만 라우터와 네트워크 장비 없이 통신할 수 있는 영역을 우리는 브로드캐스트 도메인이라고 하며 하나의 네트워크는 같은 네트워크 영역을 가지는 반면, 호스트 IP는 자신의 노드를 식별할 수 있도록 자신 이외의 호스트 IP와는 달라야 한다.
■ 네트워크 주소와 호스트 주소
IP 주소 체계에서 특정 장치나 네트워크를 식별하는 개념. 네트워크 주소는 라우터를 거치지 않고 내부적으로 통신이 가능한 영역이며 브로드캐스트가 적용되는 영역을 말한다. 호스트 주소는 특정한 네트워크 내에서 서로를 구분하기 위한 주소이다. 호스트는 단말기라는 말로도 대체 가능하다.
1. 네트워크 주소
- 네트워크를 식별하는 주소
- 네트워크 내의 모든 장치가 공유하는 공통 주소
- 호스트 부분이 모두 0으로 설정됨
- 예를 들어, IP 주소가 192.168.1.10일 때, 네트워크 주소는 192.168.1.0
2. 호스트 주소
- 특정 네트워크 내에서 개별 장치를 식별하는 주소
- 네트워크 주소를 제외한 나머지 부분
- 예를 들어, IP 주소가 192.168.1.10일 때, 192.168.1.1 ~ 192.168.1.254가 호스트 주소로 사용
- X.X.X.0(네트워크 주소), X.X.X.255(브로드 캐스팅 주소) 이 두개를 제외한 2^8 -2개의 수
■ 종류
IP 주소는 두 가지 유형이 있다. IPv4와 IPv6. IPv4가 더 널리 사용되고 있지만 경우에 따라 IPv6도 사용된다. 1932년에 도입된 IPv4에서 IP 주소는 마침표로 구분된 4개의 숫자(옥텟)로 구성된다. 예를 들어 127.0.0.1은 컴퓨터의 루프백 IP 주소다(컴퓨터가 이 주소로 보내는 모든 트래픽은 이 주소로 되돌아간다). 이러한 각 값은 0-256 범위일 수 있으므로 2^32개의 가능한 주소가 생성된다.
그러나 자동차 번호판 번호의 경우에 가능한 순열이 너무 많고 주기적으로 다시 형태를 변경해야 하는 것처럼, 사용 가능한 IPv4 주소의 공급도 고갈되어간다. IPv6 주소에는 더 많은 문자가 있으므로 더 많은 순열이 있다. 그러나 IPv6는 아직 완전히 채택되지 않았으며 대부분의 도메인과 장치에는 여전히 IPv4 주소가 있다.
IPv6는 콜론으로 구분된 8개의 16비트 필드를 사용하여 컴퓨터를 식별한다. 이러한 주소는 일반적으로 2001:0db8:85a3:0000:0000:8a2e:0370:7334와 같이 16진수로 작성된다. 128개의 주소 비트를 사용하면 수조 개의 IPv6 주소를 사용할 수 있다.
■ 유형
● 공개(Public, 공인) 대 비공개(Private, 사설)
1. 공개(Public, 공인)
- 공인 IP 주소는 컴퓨터를 해당 인터넷 서비스 제공업체(ISP)와 나머지 인터넷에 식별한다. 공인 IP 주소는 단일 컴퓨터를 고유하게 식별하거나 비공개 네트워크의 공유 액세스 포인트 역할을 할 수 있다.
- 인터넷 상에서 유일한 IP 주소이자 인터넷 라우팅 가능
> Class A: 1.0.0.0 ~ 9.255.255.255, 11.0.0.0 ~ 126.255.255.255
> Class B: 128.0.0.0 ~ 172.15.255.255, 172.32.0.0 ~ 192.255.255.255
> Class C: 192.0.0.0 ~ 192.167.255.255 ~ 192.169.0.0 ~ 223.255.255.255
2. 비공개(Private, 사설)
- 사설 IP 주소는 로컬 네트워크 내의 컴퓨터를 식별하는 데 사용된다. 이를 위해 특정 범위의 IP 주소(10.0.0.0-10.255.255.255)가 할당된다. 172.16.0.0-172.31.255.255 및 192.168.0.0-192.168.255.255(IPv4)는 네트워크 외부의 컴퓨터를 식별하는 데 사용할 수 없다.
사설 IP 주소는 오늘날에도 여전히 IPv4에 사용되는 이유다. IPv4 주소 공간은 오래 전에 고갈되었어야 하지만, 사설 네트워크를 사용하면 많은 컴퓨터가 동일한 공용 IP 주소를 사용할 수 있어 사용 중인 총 주소 수가 줄어든다. NAT(네트워크 주소 변환)은 트래픽이 네트워크 경계를 넘을 때 공용 및 사설 IP 주소 간에 변환한다.
IP 주소는 임의로 우리가 부여하는 것이 아니라 전 세계적으로 ICANN이라는 기관이 국가별로 사용할 IP 대역을 관리하고, 우리나라는 한국인터넷진흥원(KISA)에서 국내 IP 주소들을 관리하고 있다. 이것을 ISP(Internet Service Provider의 약자로 KT, LG, SKT와 같이 인터넷을 제공하는 통신업체)가 부여받고, 우리는 위 회사에 가입을 통해 IP를 제공받아 인터넷을 사용하게 된다. 이렇게 발급받은 IP를 공인 IP라고 한다.
공유기를 사용한 인터넷 접속 환경일 경우 공유기까지는 공인 IP를 할당하지만, 공유기에 연결되어 있는 가정이나 회사의 각 네트워크 기기에는 사설 IP를 할당한다. 사설 IP는 어떤 네트워크 안에서 내부적으로 사용되는 고유한 주소이다. 즉, 공인 IP는 전 세계에서 유일하지만, 사설 IP는 하나의 네트워크 안에서 유일하다. 공인 IP는 외부, 내부 상관없이 해당 IP에 접속할 수 있으나, 사설 IP는 내부에서만 접근이 가능하다.
- 기업, 학교, 가정 등 내부 네트워크용 IP 주소이자 내부 네트워크 내에서는 인터넷 라우팅이 되지만 인터넷 상에서는 불가능(인터넷 직접 연결되지 않고 인터넷 접속 위해 NAT 기술 필요)
> Class A: 10.0.0.0 ~ 10.255.255.255(10.0.0.0/8 prefix)
> Class B: 172.16.0.0 ~ 172.31.255.255(172.16.0.0/12 prefix)
> Class C: 192.168.0.0 ~ 192.168.255.255(192.168.0.0/16 prefix)
● 정적(Static, 고정) 대 동적(Dynamic)
1. 정적 (Static, 고정)
- 고정 IP 주소는 특정 컴퓨터에 반영구적으로 할당된다. 예를 들어, 웹 서버, 이메일 서버 등 인터넷 서비스를 제공하는 기기에 사용되며, 안정적인 통신을 위해 필요하다. 또는 회사에서 라우터나 프린터와 같은 디바이스에 고정 IP 주소를 할당할 수 있다.
2. 동적(Dynamic)
- 동적 IP 주소는 동적 호스트 구성 프로토콜(DHCP)을 사용하여 라우터에 의해 컴퓨터에 임시로 할당된다. 노트북이나 모바일 디바이스와 같은 컴퓨터가 네트워크에 연결하면 라우터에 IP 주소를 요청하고, 라우터는 사용 가능한 IP 주소 풀에서 주소를 할당한다. 이 IP 주소 임대는 일정 기간 동안 유효하며, 그 이후에는 디바이스에서 새 IP 주소를 요청해야 한다. 동적 IP 주소는 일반 가정이나 회사에서 사용하는 인터넷 접속에 주로 사용된다. 동적 IP 주소는 IP 주소의 효율적인 관리와 부족한 IPv4 주소 자원의 활용에 도움이 된다.
■ 특수 목적 IP
일부 IP 주소는 TCP/IP에서 특정 목적을 수행하는 네트워크에 사용된다. 이러한 IP 주소 중 네 가지는 다음과 같다.
1. 0.0.0.0: IPv4의 이 IP 주소는 기본 네트워크라고도 한다. 유효하지 않거나, 적용되지 않거나, 알 수 없는 네트워크 대상을 지정하는 라우팅 불가능한 메타 주소다.
2. 127.0.0.1: 이 IP 주소는 루프백 주소라고 하며, 컴퓨터가 IP 주소가 할당되었는지 여부에 관계없이 자신을 식별하는 데 사용한다.
3. 169.254.0.1 ~ 169.254.254.254: 컴퓨터가 DHCP에서 주소를 수신하지 못하는 경우 자동으로 할당되는 주소 범위.
4. 255.255.255.255: 같은 네트워크 내의 모든 컴퓨터로 전송하거나 네트워크를 통해 브로드캐스트해야 하는 메시지 전용 주소.
■ Classful network(클래스기반 네트워크)
클래스기반 네트워크는 IP주소에서 클래스로서 IPv4의 32비트 IP 주소 공간을 표현할 수 있는 호스트 주소와 네트워크 주소 범위의 크기를 첫 번째 옥텟의 맨왼쪽편 값에 해당하는 최상위 4개 주소 비트를 기반으로 5개 주소 클래스로서 나누어 분할 구분한 것이다.
IP 주소를 클래스로 나누는 이유는 네트워크 크기에 따른 구분이다. 하나의 네트워크에서 몇 개의 호스트 IP 까지 가질 수 있는가에 따라 클래스를 나눌 수 있다. 클래스 개념을 알아야 어디까지가 네트워크 영역이고 호스트 영역인지 알 수 있다. 클래스 기반 네트워크 체계는 네트워크의 크기를 기준으로 주소를 할당하여, 효율적이고 단순한 관리를 목표로 한다.
1. A Class (0.X.X.X ~ 127.X.X.X)
- 첫 1bit의 값은 무조건 0
- 첫 8bit는 네트워크 주소, 그 뒤의 24bit는 호스트 주소
- 범위: 00000000 (0) ~ 01111111 (127)
- 서브넷 마스크: 255.0.0.0
- 네트워크 주소로 1byte 사용
- 네트워크 주소 범위는 0.X.X.X ~ 127.X.X.X 까지이고 호스트 주소는 X.0.0.0 ~ X.255.255.255
- 0.X.X.X, 127.X.X.X는 다른 용도로 예약되어 있다.
- 대규모 네트워크 환경에서 쓰임(정부, 대기업 등)
2. B Class (128.0.X.X ~ 191.255.X.X)
- 첫 1bit의 값은 무조건 10
- 첫 16bit는 네트워크 주소, 그 뒤의 16bit는 호스트 주소
- 범위: 10000000 (128) ~ 10111111 (191)
- 서브넷 마스크: 255.255.0.0
- 네트워크 주소로 2byte 사용
- 네트워크 주소 범위는 128.0.X.X ~ 191.255.X.X 까지이고 호스트 주소는 X.X.0.0 ~ X.X.255.255
- 중규모 네트워크 환경에서 쓰임(대학, 중소기업 등)
2. C Class (192.0.0.X ~ 223.255.255.X)
- 첫 1bit의 값은 무조건 110
- 첫 24bit는 네트워크 주소, 그 뒤의 8bit는 호스트 주소
- 범위: 11000000 (192) ~ 11011111 (223)
- 서브넷 마스크: 255.255.255.0
- 네트워크 주소로 3byte 사용
- 네트워크 주소 범위는 192.0.0.X ~ 223.255.255.X 까지이고 호스트 주소는 X.X.X.0 ~ X.X.X.255
- 소규모 네트워크 환경에서 쓰임(소규모 기업, 소규모 네트워크 등)
■ CIDR(Classless Inter-Domain Routing)
고정적인 클래스 개념을 더 이상 사용하지 않고, 대신 서브넷 마스크를 자유롭게 지정하여 유동적인 네트워크 크기로 주소를 관리하는 방식으로 발전한 것. 예를 들어, 255.255.192.0 등 자유롭게 지정 가능.
CIDR에서 클래스 개념이 사라지는 것은 고정된 클래스가 아니라 고정된 네트워크 크기가 사라지는 것이다. 예를 들어, 94.0.0.0 주소는 원래 Classful 개념에 따르면 무조건 Class A이고, 기본 마스크는 255.0.0.0였다. 그러나 CIDR 환경에서는 94.0.0.0/18, 94.0.0.0/24처럼 네트워크 크기를 자유롭게 변경할 수 있게 된다. 이러한 표현에서 사용하는 /18, /24등이 바로 CIDR 표기법이며, 이는 클래스 개념을 대체하는 새로운 방식이다.
현대의 CIDR 환경에서는 IP 주소만 보고 명확한 네트워크 클래스를 판단하는 것은 사실상 불가능하다. 따라서 서브넷 마스크가 반드시 필요하다. 예를 들어, IP 주소가 10.20.30.40일 때 서브넷 마스크가 없다면 실제 이 네트워크의 크기가 10.0.0.0/8인지, 10.20.0.0/16인지, 10.20.30.0/24인지 전혀 알 수 없다. 즉, CIDR 환경에서는 네트워크 규모는 IP 주소 + 서브넷 마스크로 결정된다.
따라서 현실적으로 IP 클래스 개념은 더 이상 큰 의미를 갖지 않고, 네트워크 클래스의 개념(서브넷 마스크가 포함된 CIDR 표기)이 중요해졌다.
■ CIDR 표기법 예시
- 94.204.0.0/16: 255.255.0.0 마스크(Class B처럼 운영 가능)
- 94.204.187.0/24: 255.255.255.0 마스크(Class C처럼 운영 가능)
- 94.204.187.128/25: 255.255.255.128 마스크(더 작은 규모의 네트워크 생성 가능)
■ 서브넷 마스크(Subnet Mask)
d
하나의 주소에 서브넷 마스크를 씌워서 자신에게 맞는 네트워크를 만드는 것을 서브네팅이라고 한다.
서브네팅의 주 이유는 특히 기업과 같은 곳에서 상대적으로 작은 주소 공간을 효율적으로 이용할 수 있게 하기 위함이다.
네트워크 측면에서는 너무 큰 브로트캐스트 도메인은 네트워크 환경에서 패킷 전송을 느리게 하고 성능 저하를 발생시킨다. 이에 네트워크를 쪼개서 통신 성능을 보장하는 것이다. 서브넷 마스크는 필요한 네트워크 주소만 호스트 IP로 할당할 수 있게 만들어 네트워크 낭비를 방지한다.
※ 서브네팅의 반댓말인 슈퍼네팅도 있다.
- 슈퍼네팅(Supernetting): 네트워크를 합쳐 네트워크를 확장하는 것
출처 : https://www.cloudflare.com/ko-kr/learning/network-layer/internet-protocol/
출처 : https://www.checkpoint.com/kr/cyber-hub/network-security/what-is-an-ip-address/
출처 : https://m.blog.naver.com/wjw1225/223099790901
출처 : https://study-recording.tistory.com/7
출처 : https://www.fortinet.com/kr/resources/cyberglossary/what-is-ip-address
출처 : https://itsaessak.tistory.com/174
출처: https://blog.naver.com/no1rogue/30095809969
출처: https://blog.naver.com/no1rogue/30015695686
출처: https://blog.naver.com/on21life/221531168277
출처: https://ko.wikipedia.org/wiki/%EB%B6%80%EB%B6%84%EB%A7%9D
출처: https://github.com/im-d-team/Dev-Docs/blob/master/Network/Subnetmask.md
출처:
출처:
'기타 > IT 용어' 카테고리의 다른 글
IT 용어_네트워크(Network) (1) | 2025.06.07 |
---|---|
IT 용어_CLI(명령 줄 인터페이스) (1) | 2023.11.27 |
IT 용어_GUI(Graphical User Interface) (1) | 2023.11.27 |
IT 용어_JSON (5) | 2023.11.20 |
IT 용어_정합성(Consistency) (0) | 2023.11.05 |