IP의 개념과 주소 체계, 서브넷 마스크
IP(Internet Protocol)는 인터넷 상에서 데이터를 주고 받기 위해 사용하는 프로토콜. 네트워크에서 장치의 주소를 지정하고 데이터를 전송하는 방법을 정의한다. IP 주소는 네트워크에 연결된 각 장치의 고유한 식별자로써 기능을 한다.
프로토콜이란, 네트워크에서 데이터 통신을 위해 정해진 규칙이나 표준을 의미한다. (형식이나 전송 방법, 오류 처리 등을 명시.)
ex) HTTP는 웹페이지 전송을 위한 프로토콜이고, TCP는 신뢰성있는 데이터 전송을 위한 프로토콜이다.
- IPv4
32비트 주소체계. 일반적으로 4개의 옥텟(8bit - 1byte)으로 구성된다. 주소 범위는 대략 42억개로 방대하나, 급속한 인터넷 성장으로 주소가 고갈되는 문제가 발생하였다. 그에 따라 IPv6가 등장했다.
- IPv6
128비트 주소체계. 8개의 옥텟으로 구성된다.
옥텟(Octet)은 8비트로 구성되어 있으며, 이는 0부터 255까지의 정수 값을 표현할 수 있다.
헥텟(Hectet)은 16비트, 2바이트로 구성된 데이터 단위다.
쿼텟(Quartet)은 4비트로 구성된 데이터 단위로, 보통은 2진수의 4자리와 관련있다.
이외에도 비트, 바이트, 킬로바이트, 메가바이트 등 여러 가지 비트 단위의 용어들이 존재한다.
- 서브넷 마스크
IP주소를 네트워크 부분과 호스트 부분으로 나누는데 사용하는 기준. 주로 32비트의 비트 마스크로 표현되고, 네트워크에 속한 장치들의 그룹을 정의한다.
예를 들어, (255.255.255.0) 일 경우 첫 3개의 옥텟(24bit)이 네트워크 구조, 마지막 옥텟(8bit)은 호스트 주소를 나타낸다.
즉, (192.168.1.0) 네트워크에서는 (192.168.1.1 ~ 192.168.1.254) 까지의 IP주소를 사용할 수 있다.
브라우저에 네이버 주소를 입력했을 때 네트워크 상에서 발생하는 과정
- 브라우저 주소창에 URL을 입력.
- DNS 조회 - 브라우저는 해당 도메인(www.naver.com)에 대한 IP주소를 찾기 위해 DNS(Domain Name Server)에 요청을 보낸다. DNS는 요청받은 도메인 이름을 IP 주소로 변환한다.
- TCP(Transmission Control Protocol) 연결 설정 - DNS 응답으로 IP주소를 받아오면 브라우저는 해당 IP 주소로 TCP 연결을 설정한다. 이 과정은 3-way handshake로 이뤄진다.
- HTTP 요청 전송 - TCP 연결이 설정되면 브라우저는 HTTP(s) 요청을 해당 서버에 전송한다. 이 요청은 웹페이지를 가져오기 위한 GET 요청에 해당한다.
- 서버 응답 - Naver의 웹서버는 요청을 처리하고 요청에 대한 웹페이지의 HTML을 비롯한 CSS, JS, 이미지 등을 응답으로 전송한다.
- 브라우저 렌더링 - 브라우저는 서버로부터 받은 HTML을 파싱하여 DOM(Document Object Model - 웹 페이지의 구조를 표현하는 프로그래밍 인터페이스)을 생성한다. 그 후 CSS, JS를 적용하여 최종 렌더링을 완료한다. 만약 추가 자원 요청 시(5) 렌더링 작업을 반복(6)한다.
3-way handshake: TCP(Transmission Control Protocol) 연결을 설정하기 위한 과정.
SYN: 브라우저 → 서버
SYN-ACK: 서버 → 브라우저
ACK: 브라우저 → 서버
SYN: 클라이언트가 서버에 연결 요청을 보내기 위해 SYN(동기화) 패킷을 전송.
SYN-ACK: 서버는 클라이언트의 SYN 패킷을 수신하고, 연결 요청을 승인하는 SYN-ACK(동기화 및 확인) 패킷을 클라이언트에게 전송.
ACK: 클라이언트는 서버의 SYN-ACK 패킷을 수신하고, 이를 확인하기 위해 ACK(확인) 패킷을 서버에 전송.
라우터와 라우팅(동적 라우팅, 정적 라우팅)
- 라우터(Router)
서로 다른 네트워크를 연결하고 데이터 패킷이 최적의 경로를 통해 목적지로 전송될 수 있도록 하는 장치. 라우터는 IP 주소를 기반으로 패킷의 전송 경로를 결정하며, 주로 인터넷 서비스 제공업체(ISP)와 기업 네트워크에서 사용한다.
- 라우팅(Routing)
데이터 패킷을 네트워크의 한 지점에서 다른 지점으로 전송 시 경로를 결정하는 과정. 라우팅 방식은 크게 두 가지로 나눌 수 있다.
- 정적 라우팅(Static Routing)
관리자가 수동으로 경로를 설정하는 방식. 라우터의 라우팅 테이블에 특정 경로를 고정적으로 추가한다.
변화가 적은 네트워크에 적합하다.
- 장점
간단하고 설정이 쉽다.
네트워크 트래픽이 일정할 때 안정적이다.
- 단점
네트워크 변화(장비 추가, 장애 발생 등)에 대응하기 어렵다.
수동으로 경로를 수정해야 하므로 관리가 번거로울 수 있다.
유연성이 부족하고 대규모 네트워크에는 비효율적이다.
- 동적 라우팅(Dynamic Routing)
라우터가 자동으로 경로를 학습하고 업데이트하는 방식. 라우터 간의 프로토콜을 통해 정보를 교환하여 최적의 경로를 결정한다.
라우팅 프로토콜(예: OSPF, RIP, BGP)을 사용하여 네트워크 상태에 따라 경로를 자동으로 조정한다.
- 장점
네트워크 변화에 능동적으로 대응할 수 있다.
관리자가 수동으로 경로를 수정할 필요가 없다.
- 단점
설정과 관리가 복잡할 수 있다.
프로토콜에 따라 네트워크 리소스를 더 사용할 수 있다.
'CS' 카테고리의 다른 글
메모리? (9) | 2024.10.08 |
---|---|
CPU? (0) | 2024.10.08 |
OSI - 데이터 링크 계층 (2) | 2024.09.27 |
OSI - 물리계층 (2) | 2024.09.27 |
3-way handshake에 대해 알아보자! (0) | 2024.09.26 |