기본 개념
IPv4
- IPv4는 32비트 체계이고, 각 마디를 8bit씩 4마디로 표기한다.
- 한 마디가 8비트이므로, 2^8인 256개의 수를 나타낼 수 있어서 총 254^4개(약 40억개)의 주소를 만들 수 있다.
- 그러나 이 숫자로는 IP주소가 부족하므로 IPv6가 나오게 되었다.
- IP주소는 대역에 따라 A,B,C,D,E 클래스로 나뉜다.
IPv6
- IPv4와 다르게 32비트가 아닌 128비트 체계이다. 즉, 2^128개의 주소를 할당할 수 있다.
- 각 마디를 16bit씩 8마디로 표기하고, ':'로 구분한다.
서브넷
- IP주소는 정확하게 말하면 호스트나 라우터의 주소가 아니라 그들의 인터페이스의 주소이다.
- 서브넷은 라우터를 거치지 않고 물리적으로 연결된 인터페이스 네트워크로, 라우터와 호스트 사이의 영역이다.
- 흔히 사용되는 IPv4는 클래스를 나누어 IP를 할당한다. 그러나 이 방식은 여전히 많은 호스트가 낭비되므로, 이 비효율성을 해결하기 위해 네트워크 장치들의 수에 따라 효율적으로 사용할 수 있는 서브넷이 등장하였다.
- 서브넷(subnet)은 IP주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크를 말한다.
서브넷팅
- 서브넷을 만들 때 사용되는 것이 바로 서브넷 마스크(subnet mask)이고, 서브넷 마스크는 IP 주소체계의 Network ID와 Host ID를 분리하는 역할을 한다.
- 예를 들어 C클래스는 앞의 24비트는 Network ID, 뒤의 8비트는 Host ID를 나타낸다. 이때 서브넷 마스크를 이용하면 원본 네트워크를 여러개의 네트워크로 분리할 수 있다. 이 과정을 서브넷팅(subneting)이라고 한다.
- IP주소에 서브넷 마스크를 AND 연산하면 Network ID가 된다.
- 서브넷팅은 서브넷 마스크의 bit수를 증가시키는 것으로 생각하면 된다.
- 서브넷 마스크의 bit수를 1씩 증가시키면, 할당 가능한 네트워크 수가 2배수로 증가하고 호스트 수는 2배수로 감소한다.
- 192.168.32.0/24에서 192.168.32.0/25로 변경하게 되면, 할당 가능한 네트워크가 2개로 증가하고, 각 네트워크(서브넷)당 할당 가능한 호스트 수는 126개로 줄어든다.
CIDR
- Classless Inter-Domain Routing으로, 클래스 없는 도메인간 라우팅 기법이라는 뜻이다.
- 서브넷 마스크를 Host ID 방향으로 움직이면 서브네팅(증가)이고, Network ID 방향으로 움직이면 슈퍼네팅(감소)이다.
- 203.230.7.0/24
- 위의 IP주소에서 찾아낼 수 있는 것은? 할당 가능한 Host 갯수 : 256(2^8)개 - 2
- Network ID : 203.230.7.0
https://code-lab1.tistory.com/33
https://code-lab1.tistory.com/34
https://inpa.tistory.com/entry/WEB-🌐-IP-기초-사설IP-공인IP-NAT-개념-정말-쉽게-정리#공인_ip_/_사설_ip_/_고정_ip_/_유동_ip
https://inpa.tistory.com/entry/WEB-🌐-CIDR-이-무얼-말하는거야-⇛-개념-정리-계산법#
IPv4 데이터그램 포맷
인터넷 네트워크 계층 패킷을 데이터그램이라고 부르고, IPv4 데이터그램의 주요 필드는 다음과 같다.
- 버전 번호
- 데이터그램의 IP 프로토콜 버전을 명시
- 라우터는 버전 번호를 확인하여 데이터그램의 나머지를 어떻게 해석할지 결정함
- 다른 버전의 IP는 다른 데이터그램 포맷을 사용함
- 헤더 길이
- IPv4 데이터그램은 헤더에 가변 길이의 옵션을 포함하므로, 이 4비트로 데이터그램에서 실제 페이로드가 시작하는 곳을 결정함
- 서비스 타입
- IPv4 헤더에 포함된 서비스 타입 비트는 각기 다른 유형의 IP 데이터그램을 구별함
- 예를 들어 실시간 데이터그램과 비실시간 트래픽을 구분하는데 유용함
- 데이터그램 길이
- 바이트로 계산한 IP 데이터그램의 전체 길이
- 식별자, 플래그, 단편화 오프셋
- IP 단편화와 관련있는 필드들
- 큰 IP 데이터그램이 여러 작은 IP 데이터그램으로 분할된 후 다음 목적지로 독립적으로 전달되고, 여기서 페이로드 데이터가 최종 호스트의 트랜스포트 계층으로 전달되기 전에 다시 모임
- TTL (time to live)
- 이 필드는 네트워크에서 데이터그램이 무한히 순환하지 않도록 함 (라우팅 루프)
- 라우터가 데이터그램을 처리할 때마다 감소하고, 이 필드가 0이 되면 데이터그램을 폐기함
- 프로토콜
- 이 필드는 일반적으로 IP 데이터그램이 최종 목적지에 도착했을 때만 사용됨
- 이 필드값은 IP 데이터그램에서 데이터 부분이 전달될 목적지 트랜스포트 계층의 특정 프로토콜(TCP,UDP)을 명시함
- 헤더 체크섬
- 라우터가 수신한 IP 데이터그램의 비트 오류를 탐지하는데 도움을 줌
- 라우터는 오류 검출된 데이터그램을 폐기함
- TTL 필드와 옵션 필드의 값은 변경되므로, 체크섬은 각 라우터에서 재계산되고 저장되어야 함
- 트랜스포트와 네트워크 계층에서 오류 검사를 수행하는 이유:
- IP 헤더만 IP 계층에서 체크섬을 수행하지만, TCP/UDP 체크섬은 전체 TCP/UDP 세그먼트를 계산
- TCP/UDP와 IP는 동일 프로토콜 스택에 속할 필요가 없음
- 출발지와 목적지 IP주소
- 출발지가 데이터그램을 생성할 때, 자신의 IP주소를 출발지 IP주소 필드에 삽입하고, 목적지 IP주소를 목적지 IP주소 필드에 삽입
- 옵션
- IP 헤더필드를 확장함
- 데이터그램 헤더가 가변 길이로 데이터 필드 시작점을 초기에 결정할 수 없어 문제를 복잡하게 만듦
- 데이터 (페이로드)
- 데이터그램이 존재하는 이유이자 가장 중요한 마지막 필드
- 대부분의 경우 목적지에 전달하기 위해 트랜스포트 계층 세그먼트를 포함함
IPv4 주소체계
- 호스트는 일반적으로 네트워크와 연결되는 하나의 링크를 갖고, 호스트 IP가 데이터그램을 보낼 때 이 링크를 통해 데이터 링크를 보낸다.
- 호스트와 물리적 링크 사이의 경계를 인터페이스라고 부른다.
- 라우터는 여러개의 링크와 연결되고, 링크와 라우터 사이도 인터페이스로 이루어져 있어 여러개의 인터페이스를 갖는다.
- 모슨 호스트와 라우터는 IP 데이터그램을 송수신할 수 있으므로 IP는 각 호스트와 라우터 인터페이스가 IP주소를 갖도록 요구한다.
- 따라서 기술 면에서 IP주소는 인터페이스를 포함하는 호스트 라우터 보다는 인터페이스와 관련이 있다.
- 각 IP주소는 32비트 길이다. (각 바이트를 십진수로 표현하고, 점으로 구분하는 십진 표기법을 사용)
- 192.32.216.9 → 11000001 00100000 11011000 00001001
- 전세계 인터넷의 모든 호스트와 라우터의 각 인터페이스는 고유한 IP주소를 갖는다.
- 인터페이스의 IP주소는 마음대로 선택할 수 없고, IP주소의 일부는 연결된 서브넷이 결정한다.
- 왼쪽의 3개 호스트와 라우터 인터페이스는 모두 223.1.1.xxx 형식의 IP주소를 갖는다.
- 3개 호스트의 인터페이스들과 하나의 라우터 인터페이스로 연결된 네트워크는 서브넷을 구성한다고 말한다.
- 위 그림에서 3개의 라우터가 점대점으로 연결된 것을 볼 수 있다.
- 여기서 호스트와 라우터 간의 연결 뿐만 아니라, 라우터 간의 연결에서도 서브넷을 볼 수 있다.
- 라우터 R1과 R2를 연결하는 인터페이스용 223.1.9.0/24 서브넷, R2와 R3을 연결하는 인터페이스용 223.1.8.0/24 서브넷, R1과 R3을 연결하는 인터페이스용 223.1.7.0/24 서브넷이 추가되었다.
'CS > 네트워크' 카테고리의 다른 글
라우터의 내부 (1) | 2023.12.10 |
---|---|
네트워크 계층 (0) | 2023.12.10 |
TCP (1) | 2023.11.28 |
파이프라이닝된 신뢰적인 데이터 전송 프로토콜 (0) | 2023.11.16 |
신뢰적인 데이터 전송 원리 (0) | 2023.11.11 |