2024. 9. 28. 17:21ㆍCS/컴퓨터네트워크
IP(Internet Protocol)
인터넷 네트워크 계층에서의 핵심적인 역할을 하는 프로토콜로 IPv4,IPv6 두개가 존재한다.
인터넷 네트워크 계층 패킷은 데이터그램(Datagram)이라 하고 형식은 다음과 같다.이 형식은 IPv4이다.
맨 처음에는 ver(IP 프로토콜 버전),head.len(헤더 길이)이 들어간다.헤더길이는 IPv4 헤더가 가변길이 옵션을 제공하기 때문이다.
type of service에는 서비스의 종류 즉,realtime,background(Demon)인지를 구분한다.time to live는 패킷이 살아있는 시간으로 라우팅 알고리즘으로 인해 패킷은 좀비 패킷(Zombie Packet)이 된다면 시간이 지나면 자동으로 소멸하여 네트워크 부하를 줄이는 역할을 한다.Upper layer는 TCP,UDP를 구분하는데 사용한다.
IP fragmentation,reassembly
네트워크 링크는 MTU(Max Transfer Size)가 존재하기에 큰 패킷은 분할하여 보낼 필요가 있을 수 있다.라우터에서는 패킷을 분할하고 헤더를 복사하고 보낸다.그리고 송신단에서 재조립한다.이는 라우터의 오버헤드를 줄이기 위해 라우터에서 재조립하지 않는 방식을 선택한다.
fragmentation이 일어난지를 구분하는 방법은 IP format에서 flag,fragmentation offset을 통해 유무를 확인하고 분할 정보를 확인한다.
길이가 1500이지만 헤더 20비트를 제하면 1480바이트가 남고 이를 8로 나누어 offset을 설정한다.
IP addressing
IP 주소는 32비트로 구분되고 각각의 호스트 나 라우터 인터페이스와 연관이 되있다.
인터페이스란 호스트와 클라리언트의 물리적 링크 사이의 경계를 의미하고 라우터들은 여러개의 인터페이스를 가진다.호스트는 보통 1개나 2개의 인터페이스를 갖는다.(이더넷,무선 인터넷)
Subnet
서브넷은 세 호스트들의 인터페이스들과 하나의 라우터 인터페이스로 연결된 네트워크들의 집합이다.즉,하나의 구역을 의미하며 집에서 사용하는 컴퓨터 3대는 하나의 스위치에 연결되고 그 스위치는 라우터와 연결된다 하면 이 스위치에 연결된 컴퓨터 3대가 서브넷 하나를 구성하는 것이다.IP 주소는 Subnet Part,Host Part구조로 나뉜다.
서브넷을 사용하는 이유는 IP주소를 효과적으로 관리하기 위함이고 Subnet Mask을 통해 서브넷 ID를 지정하여 호스트 파트를 구분한다.서브넷 마스크 /24의 의미는 처음부터 24bit까지를 1로 설정하고 이를 AND 연산을 통해 서브넷만 살리는 원리이다.
인터넷 주소 할당 방식
IPv4에서는 32bit 길이의 주소를 사용했고 ICANN(Internet Corporation of for Assigned Names and Numbers)에서 5개의 그룹으로 나누어 IP주소를 할당했다.A그룹부터 E그룹까지 존재하며 A가 가장 큰 그룹으로서 많은 IP를 네트워크 장비들에게 할당이 가능했다.이런 주소 체계는 클래스 주소체계(Classful addressing)이라 알려졌다.
이 5개의 클라스를 구분하기 위해서는 가장 상위비트를 통해 비교가 가능했다.
A,B,C클래스만 기관에서 사용했고 D클래스는 동시에 여러 장치로 전송하는 네트워킹에 대해 이용했고 E클라스는 사용되지 않는다.
CIDR(Classless Internet Domain Routing)
이 기법이 등장한 이유는 위의 클래스 주소체계의 한계점이 명확했기 때문이다.우선 클래스 주소체계에서 한 그룹에 A클라스의 IP주소 범위를 할당했다하면 굉장히 방대한양의 IP를 사용할 수 있었다.하지만 이런 방대한 IP를 전부 다 사용할거란 보장이 없고 만일 사용이 안되면 이는 낭비로 이어진다.이를 임의의 길이의 서브넷 주소 구간을 할당하여 더 유연하게 IP를 할당하고 라우팅 테이블의 크기도 줄일 수 있게 고안된 방식이다.
기존 클래스 주소쳬계의 서브넷마스크는 8/,16/,24/ 만 가능햇지만 CIDR을 사용함으로써 IPv4의 주소 고갈 문제를 조금이나마 해결할 수 있었다.
이제 문제는 저렇게 할당된 IP를 어떻게 개인이 사용할 수 있는지다.보통은 2가지로 나뉜다.시스템파일에 직접 기입(고정 IP)하거나 DHCP(Dynamic Host Configuration Protocol,유동 IP)를 사용하거나 이다.네트워크는 계층적으로 이루어져 있기에 근본적으로 하나의 IP가 우리에게 할당될려면 ISP가 ICANN에서 IP블록을 구입하고 ISP가 더 작은 ISP에게 IP블록을 판매하는 것이 반복적으로 일어나서 우리에게 도달하게 된다.현재 많이 사용되는 방식은 DHCP이다.이는 현재 무선인터넷과도 관련이 매우 높다.모바일 기기,IOT기기의 보급화로 이동통신이 발달하면서 주목 받게 되었다.
DHCP(Dynamic Host Configuration Protocol)
동적 호스트 구성 프로토콜로 호스트가 임시 IP주소를 얻어 사용할 수 있고 서브넷 마스크,첫 번째 홈 라우터 주소,로컬 DNS 서버 주소 같은 추가 정보도 얻게 해준다.DHCP의 동작 방식은 다음과 같다.
즉,클라이언트는 Broadcast방식을 통해 DHCP서버들에게 요청을 보낸다.그리고 이를 수신한 DHCP서버에서 한개의 IP를 할당시켜준다.이후 클라이언트는 다시 해당 DHCP서버에게 사용가능 여부를 확인하고 ACK을 수신한뒤 IP를 사용하게 된다.
잘보면 클라이언트에서 사용하는 자신의 IP와 목적IP주소가 형식이 특이하다는걸 확인할 수 있다.이는 규정된 형식으로 0.0.0.0은 Broadcast만을 지원하는 주소다.목적지 주소 255.255.255.255또한 규정된 형식으로 뒤의 숫자들은 포트번호를 의미한다.
그리고 Transaction ID는 실제 클라이언트의 IP주소가 없기에 랜덤으로 생성되는 숫자로서 DHCP서버가 통신을 해야하기위해 사용된다.
lifetime은 DHCP로 할당된 IP를 얼마나 사용할 수 있는지를 의미한다.
호스트가 IP를 할당받고 다시 사용가능한지를 서버에 요청하는 이유는 만일 송신된 패킷이 로스가 되었을 수 있다는 점이다.그리고 여러 DHCP에서 IP를 할당했을때 어느것을 사용할지를 결정했다는 의미에서 전송한다.또한 DHCP과정에서 일어나는 통신은 UDP이다.
이는 서버와 Connection이 형성되지 않고 통신하기에 TCP는 사용할 수 없기때문이다.
Route Aggregation(경로 집약)
인터넷 ISP가 바뀌어도 IP주소를 그대로 사용하는 것이 효율적이다.따라서 이는 라우팅 테이블에 해당 주소를 추가하여 최장 프리픽스 매칭을 사용하도록 한다.
이로서 IPv4에 대한 내용은 끝이났다.IPv4는 2011년에 ICANN에서 마지막 블록을 할당함으로써 고갈 위기에 처했고 이후 NAT,IPv6의 등장으로 발전하게 된다.
'CS > 컴퓨터네트워크' 카테고리의 다른 글
SDN(Software Define Network),Middleboxes (0) | 2024.10.08 |
---|---|
NAT & IPv6 (0) | 2024.10.01 |
라우터 (0) | 2024.09.24 |
Network Layer (0) | 2024.09.21 |
3 & 4 Way Handshake (0) | 2024.09.20 |