하마롱크의 블로그
IP 주소 (1) 본문
OSI 7계층에서 주소를 가지는 계층은 2계층과 3계층입니다. 2계층은 물리 주소인 MAC 주소를 사용하고 3계층은 논리 주소인 IP 주소를 사용합니다. 대부분의 네트워크가 TCP/IP로 동작하므로 IP 주소 체계를 이해하는 것이 매우 중요합니다.
IP 주소를 포함한 다른 프로토콜 스택의 3계층 주소는 사용자가 변경 가능한 논리 주소입니다.
그리고 주소에 레벨이 있으며, 그룹을 의미하는 네트위크 주소와 호스트 주소로 나뉩니다.
IP 주소 체계
- 주로 사용하는 IP 주소는 32비트인 IPv4 주소이고, IPv6는 128비트임
- IPv4 주소를 표기할 때는 4개의 옥텟(Octet)이라 부르는 8비트 단위로 나누고, 각 옥텟은 "."으로 구분
- IP 주소는 10진수로 표기하므로 8비트 옥텟은 0~255 값 사용 가능
- IP 주소는 네트워크 주소와 호스트 주소 두 부분으로 나뉨
- 네트워크 주소
- 호스트들을 모은 네트워크를 지칭하는 주소로, 네트워크 주소가 동일한 네트워크를 로컬 네트워크라 함
- 호스트 주소
- 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소
- 네트워크 주소와 호스트 주소는 이 둘을 구분하는 경계점이 고정되어 있지 않음
-> 다른 주소 체계와 IP 주소 체계를 구분하는 큰 특징
- IP 주소 체계는 필요한 호스트 IP 개수에 따라 네트워크 크기를 다르게 할당할 수 있는 클래스(Class) 개념 도입
- A 클래스는 가장 큰 주소를 가지며, 약 1,600만 걔의 IP 주소를 가질 수 있음
- A 클래스는 첫 번째 옥텟에 네트워크 주소와 호스트 주소를 나누는 구분자가 있고, B 클래스는 두 번째 옥탯에,
C 클래스는 세 번째 옥텟에 구분자가 있음
-> 네트워크 주소와 호스트 주소를 나누는 구분자는 클래스(네트워크 크기)에 따라 변경됨
- 이 구분자는 서브넷 마스크임
- 네트워크 주소와 호스트 주소를 나누는 구분자가 이동할 수 있어 네트워크의 크기가 달라질 수 있음
- 다른 고정된 네트워크 주소 체계에 비해 주소를 절약할 수 있는 장점
- A 클래스는 네트워크 주소를 표현하는 부분이 1개 옥텟, 호스트 주소를 나타낼 수 있는 부분이 3개 옥텟이므로,
2^8(256)개의 네트워크와 한 네트워크당 2^24(16,777,216)개의 호스트 주소를 갖게 됨
- A, B, C 클래스는 맨 앞 옥텟의 주소만 보고 구별 가능
- 맨 앞 옥텟의 주소가 0~127 범위이면 이 주소는 A 클래스
- 첫 옥텟을 이진수로 표기했을 때, 2진수 8자리 중 맨 앞 자리가 0인 주소가 A 클래스(00000000~01111111)
- 127만 예외로 자신을 의미하는 루프백(Loopback) 주소로 사용됨
-> 실제 A 클래스 사용가능 주소 : 1.0.0.0 ~ 126.255.255.255
- B 클래스는 첫 옥텟을 2진수로 표기했을 때 첫번째 자리가 1이고 두 번째 자리가 0인 주소(10000000~10111111)
- 10진수로 표기하면 128부터 191까지
- C 클래스는 첫 옥텟을 2진수로 표기했을 때 1, 2번째 자리가 1이고 세번 째 자리가 0인 주소(11000000~11011111)
- 10진수로 표기하면 192부터 223까지
이러한 클래스 기반의 네트워크 분할 기법은 과거에 사용했던 개념으로, 현재는 클래스 기반으로 네트워크를 분할하지는 않습니다. 현재는 네트워크 주소를 세밀하게 분할하고 할당하기 위해 필요한 네트워크의 크기에 맞추어 1비트 단위로 네트워크를 상세히 분할하는 방법을 사용합니다.
클래스 기반의 IP 주소 체계를 클래스풀(Classful)이라고 합니다. IP 주소 체계를 처음 만들었을 때는 클래스 개념을 도입한 것이 확장성 있고, 주소 낭비가 적은 좋은 방법이었습니다. 이 체계에서는 구분자(서브넷 마스크)가 필요가 없었습니다. 맨 앞자리 숫자를 통해 이 주소가 어느 클래스에 속하는지 구분이 가능했고, 주소 구분자를 적용할 수 있었습니다.
클래스풀과 클래스리스 - 클래스리스(Classless) 네트워크의 등장
- 인터넷이 상용화되며 인터넷에 연결되는 호스트 숫자가 증가함
- 클래스풀 기반 주소 체계는 늘어나는 IP 주소 요구 감당 못함
- IP 주소 부족과 낭비 문제 해결 위해 3가지 보존, 전환전략 마련
- 첫 번째 단기 대책 : 클래스리스, CIDR(Classless Inter-Domin Routing) 기반의 주소 체계
- 두 번째 중기 대책 : NAT와 사설 IP 주소
- 세 번째 장기 대책 : 차세대 IP인 IPv6
- IPv4에서 주소 자체가 부족하다는 문제이지만, 상위 클래스(A Class)를 할당받은 조직에서 대부분 제대로 사용을
못하고 낭비되는 것도 문제
- 수천만 개의 IP를 사용할 수 있는 A클래스 를 할당받아도 그중 많아야 수만개 정도에서 끝나면 나머지는 다 낭비되며 다른 조직이나 기관에서 사용할 수도 없음
- 이러한 문제를 해결하기 위해 클래스 개념 자체를 버리고, 이를 클래스리스라고 함
- 현재 사용하는 주소 체계는 클래스리스 기반 주소 체계
- 클래스리스 네트워크에서는 별도로 네트워크와 호스트 주소를 나누는 구분자를 사용해야 함
-> 이 구분자는 서브넷 마스크(Subnet Mask)라 부름
- 서브넷 마스크는 IP 주소와 네트워크 주소를 구분할 때 사용
- 2진수 숫자 1은 네트워크 주소, 0은 호스트 주소로 표시
- 10진수를 사용해 255.0.0.0, 255.255.0.0, 255.255.255.0과 같이 표현
- 2진수 11111111을 10진수로 표현하면 255가 되어 255는 네트워크 주소 부분, 0은 호스트 주소 부분으로 구분
- IP 주소에서 네트워크 주소만 뽑아낼 때 2진수의 and 연산을 사용
ex> 103.9.32.146 주소에 255.255.255.0 서브넷 마스크를 사용하는 IP
-> 네트워크 주소가 103.9.21.0이고 호스트 주소는 0.0.0.146
- 서브넷 마스크가 2진수 1인 부분(10진수 255인 부분)은 IP 숫자가 그대로 연간 결과가 되고, 서브넷 마스크가 0인
부분은 모두 0으로 변경됨
- 클래스리스 기반의 IP 네트워크에서는 네트워크를 표현하는 데 반드시 서브넷 마스크가 필요
- 서버나 PC에 IP 주소를 부여할 때도 사용되어야 함
<참고문헌>
IT 엔지니어를 위한 네트워크 입문
'Network' 카테고리의 다른 글
TCP (0) | 2021.12.22 |
---|---|
IP 주소 (2) (0) | 2021.12.21 |
MAC 주소 (0) | 2021.12.19 |
통신 방식 : 유니캐스트, 브로드캐스트, 멀티캐스트, 애니캐스트 (0) | 2021.12.19 |
네트워크 연결 구분 (0) | 2021.12.18 |