목차
- IP (Internet Protocol)
- TCP/UDP
- PORT
- DNS
2. IP (Internet Protocol)
인터넷 프로토콜 스택은 네트워크 통신을 가능하게 만드는
4개의 계층으로 이루어져있다.
위에서부터 차례로 애플리케이션 계층(HTTP/FTP), 전송계층(TCP/UDP),
인터넷 계층(IP), 네트워크 인터페이스 계층으로 구성된다.
IP는 그 중 세 번째 계층인 인터넷 계층에 속한다.
IP란 무엇인가?
IP는 간단히 말해, 인터넷에서 사용하는 지정된 주소를 말한다.
예를 들어, 클라이언트가 원격 서버와 통신하고자 할 때,
서버가 가까운 거리에 있다면 케이블을 이용해 직접 연결할 수 있을 것이다.
하지만 서버와 클라이언트의 물리적 거리가 멀다면
인터넷 망을 통해 통신해야 한다.
이 과정에서 서로의 위치를 식별하기 위해 사용하는 주소가 바로 IP이다.
IP는 보통 100.100.100.1과 같이 숫자로 이루어져있으며
이는 특정 형식에 따라 규칙적으로 구성된다.
또한 IP주소는 고정적이지 않고 변경 가능한 값이다.
IP 패킷과 정보 전송
인터넷에서 데이터는 IP 패킷이라는 형태로 전송된다.
IP 패킷은 출발지 IP, 도착지 IP, 그리고 기타 부가 정보를 포함하고 있다.
이러한 패킷은 인터넷 망을 통해 목적지까지 전달되며,
이 과정에서 경유지(라우터)를 거치기도 한다.
2. TCP / UDP
IP의 한계
IP를 사용하면 통신을 가능하게 해주지만
여러 한계를 가지고 있기 때문에 안정적이고 신뢰성있는 통신을 보장하기 어렵다.
1. 비연결성
IP는 연결 상태를 확인하지 않고 데이터를 전송한다.
즉 클라이언트는 대상 서버의 상태를 알 수 없기 때문에
수신자가 없거나 서비스 불능 상태에서도 패킷을 전송한다.
2. 비신뢰성
IP는 데이터를 나눠서 패킷 단위로 전송하는데
이 과정에서 패킷 손실이나 순서가 섞이는 등의 문제가 발생할 수 있다.
3. 프로그램 구분 문제
같은 IP를 사용하는 애플리케이션이 여러 개일 경우
어떤 애플리케이션으로 데이터를 전달할지 구분이 어렵다.
이러한 한계를 극복하고자 존재하는 개념이 TCP이다.
TCP(Transmission Control Protocol)는 전송 제어 프로토콜이다.
TCP는 연결 지향적 프로토콜로, 안정적인 데이터 전송을 보장한다.
3-Way-Handshake 방식을 통해 양측이 통신 준비가 완료되었는지 확인하고,
패킷에 필요한 데이터를 추가하여, 데이터 전달 보증과 순서를 보장한다.
같은 계층에 있는 UDP는 IP와 거의 같은데 PORT와 체크섬이 추가된 개념이다.
3. PORT
PORT는 IP가 가지고 있는 세 번째 한계점(프로그램 구분 문제)를
해결하기 위한 중요한 개념이다.
IP 주소를 아파트에 비유한다면, 포트는 몇 동 몇 호를 의미한다.
즉, 포트를 사용하면 하나의 IP 주소에서 여러 애플리케이션을 구분할 수 있다.
기본적으로 HTTP는 80포트번호를 사용하고
HTTPS는 443이다.
일반적으로 표준 포트 번호를 사용하는 경우, URL에서 포트 번호를 생략한다.
ex. https://example.com:443 -> https://example.com
4. DNS
앞서 IP는 100.100.100.1과 같이
숫자로 이루어진 인터넷상의 주소라고 언급했다.
하지만 숫자로 이루어진 IP주소는 직관적이지 않고,
네트워크 환경에 따라 변경될 수도 있어 매번 기억하기 어렵다.
예를 들어, 우리가 구글에 접속할 때 173.194.126.240:443과 같은 IP주소를 입력하는 대신,
간단하게 https://google.com으로 접속한다.
이는 사용자의 편의를 위한 시스템 덕분이다.
DNS란?
DNS(Domain Name System)은 도메인 이름과 IP주소를 연결하는 전화번호부와 같은 역할을 한다.
클라이언트가 https://~로 시작하는 도메인 이름을 사용해 서버에 데이터를 요청하면,
DNS는 해당 도메인과 매핑된 IP주소를 찾아
클라이언트 요청에 올바른 서버로 전달한다.
DNS 덕분에 사용자는 복잡한 IP주소를 외울 필요 없이,
직관적이고 기억하기 쉬운 도메인 이름을 사용할 수 있다!
출처 : 모든 개발자를 위한 HTTP 웹 기본 지식 (김영한)
'스터디 > Web' 카테고리의 다른 글
웹 브라우저 요청 흐름 (0) | 2025.01.18 |
---|---|
STOMP란? WebSocket과의 차이 (0) | 2024.03.13 |
Web Socket 통신 방식이란? (0) | 2024.03.13 |