IP address
일반적으로 IP 프로토콜에서는 호스트와 라우터 인터페이스를 구분하기 위해 IP 주소를 사용합니다.
IP주소는 32bit로 이루어져 있으며, 4개의 바이트를.으로 구분하여 표시합니다.
ex) 223.1.1.1 = 11011111 00000001 00000001 00000001
Interface
- 네트워크 장비 또는 컴퓨터 시스템의 논리적 또는 물리적인 연결을 의미합니다.
- 간단하게 말하면, 인터페이스는 네트워크 장비가 다른 장비 또는 네트워크와 통신하기 위해 사용하는 연결점이라고 할 수 있습니다.
- 라우터는 여러 개의 인터페이스를 가질 수 있고, 호스트는 하나 혹은 2개의 인터페이스를 가질 수 있습니다.
- 각 인터페이스는 서로 다른 IP주소를 가지며, 다른 네트워크와 연결될 수 있습니다.
네트워크 장비가 다른 장비 또는 네트워크와 통신하기 위해 사용하는 연결점
IP address의 구성
IP address에는 network부분과 host부분이 있습니다.
이러한 구성은 네트워크와 호스트를 식별하는데 도움을 줍니다.
주소형식은 네트워크.호스트로 표현되며 각 부분은 8비트로 나타냅니다.
예를 들어 182.168.0.1은 네트워크 부분이 182.168이고, 호스트 부분은 0.1인 IPv4주소입니다.
초기에는 IPv4주소 클래스는 인터넷확장을 위해 도입되었습니다.
클래스를 통해 주소 공간을 네트워크 클래스와 호스트 클래스로 나눕니다.
IPv4 주소 클래스는 5개로 나눌 수 있습니다.
클래스 A
- 주소는 첫번재 비트가 0으로 시작합니다.
- 네트워크 부분은 첫 번째. 까지인 8비트로 구성됩니다.
- 호스트 부분은 나머지 24비트로 구성됩니다.
- 예를 늘어 네트워크가 10이라면, 10.0.0~10.255.255.255까지가 호스트입니다.
클래스 B
- 클래스 B는 첫 번째 두 비트가 10으로 시작합니다.
- 네트워크 부분은 2번째 .까지인 16비트로 구성됩니다.
- 호스트 부분은 당연하게 16비트로 구성됩니다.
클래스 C
- 클래스 C는 첫번째 세 비트가 110으로 시작합니다.
- 네트워크 부분은 세번째 .까지인 24비트로 구성됩니다.
- 호스트 부분은 당연학 8비트로 구성됩니다.
클래스 D
- 클래스 D 주소는 첫번째 네 비트가 1110으로 시작합니다.
- 클래스 D는 멀티캐스트 그룹 주소를 지정하는 데 사용되며, 네트워크 부분이 아닌 특정 그룹을 식별하는데
사용됩니다.
클래스 E
- 클래스 E 주소는 첫번째 네 비트가 1111로 시작합니다.
- 클래스 E는 예약된 주소로, 실험 및 특수 목적을 위해 사용됩니다.
Subnet
IP네트워크를 더 작은 네트워크로 분할하는 과정이거나, 그 결과로 생성된 작은 네트워크
IP 주소는 다음과 같은 구조를 가지고 있습니다.
subnet part
- 라우터를 통하지 않고도 서로 물리적으로 닿을 수 있는 네트워크를 나타내는 bit들
- 네트워크 구조에서 라우터를 제거해 보면 어느 부분이 subnet인지 알 수 있음.
- 즉 고립된 네트워크
- 아래 그림을 보면 해당 구조는 6개의 서브넷을 가지고 있는 것을 알 수 있다.
subnet의 구현은 subnet mask를 통해서 이루어집니다.
subnet 마스크는 IP주소와 함께 사용되어 IP 주소의 네트워크 ID를 식별하고, 호스트 ID를 구분합니다.
표현은 subnet mask : /N -> 상위 N 비트가 네트워크 주소라는 것을 가르쳐 줍니다.
조금 더 자세하게 설명하자면,
서브넷 마스크는 네트워크 부분을 나타내는 1의 연속과 호스트 부분을 나타내는 0의 연속으로 구성됩니다.
이러한 서브넷 마스크와 IP 주소를 AND연산하면 네트워크 부분을 얻을 수 있습니다.
예를 들어 IP주소가 192.168.1.100, 서브넷 마스크가 255.255.255.0인 경우
AND 연산을 통해 네트워크 부분이 192.168.1.0 , 호스트 부분이 100이라는 것을 알 수 있습니다.
이렇게 서브넷 마스크를 사용해서 IP 주소를 서브넷으로 분할하고, 네트워크와 호스트를 식별해,
효율적인 관리와 네트워크 구성을 가능하게 해 줍니다.
host part
- subnet part 하위의 bit들
CIDR(classless Inter Domain Routing)
클래스를 활용해서 주소공간을 나눌 때, 주소 공간을 비효율적으로 사용하고,
작은 네트워크에는 많은 주소를 할당하는 등의 문제가 있었습니다.
CIDR은 이러한 제약을 극복하기 위해(클래스를 활용하지 않고) IP 주소를 표현하는 방법입니다.
표현은 a.b.c.d/x고 뒤의 x값이 subnet 부분의 비트수를 나타냅니다. 즉
상위 x비트가 subnet 주소이고, 나머지 비트가 host 주소라는 것을 표현해 줍니다.
위 그림을 예로 들면 200.23.16.0/23으로 표현할 수 있습니다.
DHCP(Dynamic Host Configuration Protocol)
목표는 IP 주소가 필요한 host에게 자동으로 IP 주소를 할당해 주자입니다.
왜 자동으로 할당할까?
일반적인 데스크톱같이 고정된 컴퓨터는 이동할 일이 거의 없어서 고정된 IP 주소를 사용하는 것이 유리합니다.
하지만 노트북, 모바일기기같이 계속해서 장소를 이동해서 사용해야 하므로, 하나의 IP주소를 받는 것이
아닌 여러 개의 IP 주소를 사용합니다.
DHCP를 통해서 장치가 네트워크에서 떠나도 해당 IP주소를 다른 장치에 할당할 수 있는 것처럼 낭비가 발생하지 않습니다.
DHCP 동작
- DHCP discover
- 호스트가 DHCP Discover 메시지를 뿌려 DHCP를 찾습니다.
- DHCP offer
- DHCP 서버가 DHCP Offer 메시지로 응답합니다. ex)이 걸 써라
- DHCP request
- 호스트가 IP 주소를 얻고, 이를 사용해도 되는지 허락을 요청하는 DHCP request 메시지를 보냅니다.
- DHCP ACK
- 요청받은 IP 주소를 사용하는 것에 문제가 없으면 , DHCP 서버는 DHCP ack 메시지를 보냅니다.
💡요약하자면, 호스트가 DHCP 서버를 찾아서 사용가능해?라고 묻고, DHCP 서버에게 사용가능한 IP 주소를 받아오는 것입니다.
아래는 동작과정을 도식화한 그림입니다.
위 과정에서 추가 설명을 하자면,
Client가 DHCP를 발견한 적이 있다면, Broadcast 과정을 거치지 않고, request-ack 과정만을 통해 IP주소를 할당받을 수 있다.
DHCP에는 다음과 같은 정보들이 포함된다.
- 첫 번째 hop의 라우터의 주소
- DNS 서버의 주소와 이름
- network mask
- 어디까지가 네트워크 부분이냐를 판단하게 해 줌.
- 이걸 토대로 송신 측 수신 측이 네트워크가 같은지 확인을 할 수 있다.
네트워크는 어떻게 IP주소에서 subnet 부분을 얻을 수 있을까?
ISP's address를 활용해서 얻는다.
ISP block에는 상위 N 비트가 네트워크라고 명시를 해준다.
ISP 블록을 활용해서 network부분을 얻을 수 있음.
Hierarchical addressing
효율적인 라우팅을 위해서 계층을 나누는 것
Longest prefix 원칙을 이용함.
ICANN : Internet Corporation for Assigned Names and Numbers)를 통해 ISP block을 할당받는다.
요약
- IPv4는 32bit로 이루어져있으며 4개의.으로 1byte를 구분한다.
- Interface는 네트워크 장비 간 물리적인 연결 지점을 의미한다.
- 각 인터페이스는 서로 다른 IP주소를 가지며, 다른 네트워크와 연결될 수 있다.
- IP 주소는 network 부분과 host부분으로 구성되어 있다.
- 클래스를 통해 IP 주소를 network와 host로 나눌 수 있다.(A, B, C, D, E)
- 그리 효율적인 방법은 아님
- CIDR -> 클래스를 사용하지 않고 IP주소를 표현하는 방법.
- Subnet을 통해서 상위 N 비트가 네트워크 부분이라는 것을 알려줌. 그럼 나머지 부분은 host
- DHCP -> 호스트에게 IP 주소가 필요할 때 동적으로 할당해 주는 것.
- 과정은 Discover, Offer, Request, Ack
- 여기서 호스트가 한 번이라도 DHCP 서버를 발견했다면 Requset-ACK만 진행
'Computer Science > Network' 카테고리의 다른 글
[컴퓨터망]-Flow table (0) | 2023.06.12 |
---|---|
[컴퓨터망]-NAT & IPv6 (3) | 2023.06.12 |
[컴퓨터망] - IP datagram format (2) | 2023.04.15 |
[컴퓨터망] - Network Layer(Routing & Forwarding & Switching Fabric && Buffer Management) (1) | 2023.04.15 |
[컴퓨터망] - TCP congestion control (1) | 2023.04.15 |