가능세계
[Network] IP(Internet Protocol)와 패킷(Packet) 이해하기 본문
인터넷은 상호(inter) 연결된 네트(net)워크로, 컴퓨터들이 서로 통신 가능한 방대한 네트워크라 할 수 있습니다. 그렇다면 인터넷에서 어떻게 데이터를 주고받는 것일까요? 우선 IP에 대해 알아야 합니다.
1. IP(Internet Protocol)란 무엇인가요?
IP
(Internet Protocol)란 인터넷 프로토콜을 의미하며, 인터넷에서 데이터 통신을 관리하는 규약을 말합니다.
이렇게 생각해봅시다. 각기 다른 나라에서 자란 두 사람은 공통 언어를 사용해야 소통할 수 있습니다. 그리고 해당 언어로 대화하기 위해서는 따라야 할 고유한 어휘와 문법이 있을 것입니다.
이처럼 인터넷에서는 컴퓨터를 식별하는 방법, 컴퓨터 간에 정보를 교환하는 방법, 그 정보를 형식화하는 방법 등에 대한 규칙이 있습니다.
프로토콜(Protocol)은 양측이 소통하기 위한 규칙과 비슷합니다. 네트워킹에서 서로 데이터를 주고받기 위해서는 발신자와 수신자 모두 동일한 프로토콜을 따라야 합니다.
그럼 발신자와 수신자는 어떻게 서로를 찾을 수 있을까요?
2. IP 주소와 도메인 이름에 대해 알아봅시다
2-1. IP 주소(IP Address)는 무엇인가요?
인터넷상에서 데이터를 주고받을 컴퓨터를 찾기 위해서는 각 컴퓨터는 자신을 고유하게 식별할 주소가 있어야 합니다.
바로 그 주소가 IP 주소
입니다.
IP 주소는 마치 전호 번호와 같아서 컴퓨터들이 서로를 찾을 수 있도록 도와줍니다.
2-2. 도메인 이름(Domain Name)은 유용합니다
인터넷에 직접 또는 간접적으로 연결된 모든 장치는 IP 주소를 가지고 있습니다. IP 주소를 사용해 목적지를 찾아가는 것입니다.
그러나 IP 주소는 173.194.121.32와 같은 형태로, 사람이 기억하기에 어렵습니다. 그래서 IP 주소에 도메인 이름(Domain Name)이라고 하는 사람들이 쉽게 읽을 수 있는 이름을 지정합니다.
DNS
(Domain Name System)는 전화번호부와 같은 서버를 제공해 줍니다. www.example.com
과 같이 사람이 읽을 수 있는 이름을 등록하면, 그것을 173.194.121.32 처럼 IP 주소로 변환하여 컴퓨터 간 서로 통신할 수 있도록 합니다. 이렇게 하면 IP 주소가 변경되어도 도메인을 통해 접근할 수 있습니다.
이처럼 IP 주소를 사용해 컴퓨터를 식별하고, 지정한 IP 주소에 패킷
(Packet)이라는 통신 단위로 데이터를 전달하게 됩니다.
3. 패킷(Packet)이란 무엇을 의미하나요?
인터넷에서 데이터는 IP 패킷
(IP Packet)으로 전달됩니다.
여기서 패킷
은 정보 전송의 기본 단위로, 네트워크를 통해 전달되는 작은 데이터 덩어리라고 볼 수 있습니다.
3-1. 패킷은 어떻게 구성되나요?
IP 패킷에는 지정된 형식이 있습니다. 그 구조를 살펴보면 다음과 같습니다.
IP 패킷은 헤더와 페이로드 두 부분으로 구성되며, 패킷이 어디서 오고 어디로 향하는지 알려 주는 주소와, 패킷이 전달하는 데이터를 포함합니다.
- 헤더: 출발지 IP 주소, 목적지 IP 주소 같은 패킷에 대한 정보
- 페이로드: 실제 데이터
이러한 구조 덕분에 IP 패킷을 수신하는 장치에서는 패킷의 출처, 용도, 처리 방법 등을 알 수 있습니다.
3-2. 패킷은 왜 작게 나뉘나요?
네트워크 연결을 통해 한 번에 전송할 수 있는 데이터 양에는 제한이 있습니다. 따라서 긴 메시지는 작은 덩어리로 분할되어 따로따로 전송된 다음 받는 쪽에서 재조립됩니다.
데이터가 작은 덩어리로 분할되는 이유는 데이터의 안정적이고 효율적인 전송을 보장하기 위함입니다.
만약 데이터가 커다란 덩어리라면, 네트워크의 대역폭*을 너무 많이 차지해 다른 패킷의 흐름을 막고, 결과적으로 특정 지점에서 막히거나 느려질 위험이 있기 때문입니다.
이처럼 패킷 사용은 네트워크를 더 빠르게 작동하도록 만드는 중요한 요소입니다.
* 대역폭(bandwidth): 일정한 시간 내에 네트워크 연결을 통해 처리할 수 있는 데이터의 양을 나타냅니다. 네트워크가 데이터를 얼마나 빨리 전송할 수 있는지 판단하는 기준이 됩니다.
그런데 각 패킷은 출발지에서 목적지로 어떻게 이동하는 걸까요?
3-3. 라우터(Router)란 무엇인가요?
바로 출발지와 목적지 사이에 수많이 존재하는 라우터를 통해서입니다.
라우터는 데이터들이 전송되는 경로를 설정하는 장치입니다.
라우터는 인터넷상에서 패킷을 안내하는 역할을 합니다. 패킷이 목적지까지 갈 수 있는 길을 검사하고, 어떤 경로로 전송하는 것이 효율적인지 결정합니다. 그렇게 각 패킷이 최종 목적지에 한 단계씩 가까워지도록 도와줍니다.
4. IP에도 한계점이 있습니다
IP는 신뢰성 없는(unrelibale) 비연결형(connectionless)인 전송을 제공합니다. 패킷을 정확한 목적지 전송하지만, 데이터가 확실히 도착할 것이라는 약속은 하지 않습니다.
- 비연결성
IP에는 패킷의 상태를 관리하는 기능이 없습니다. 패킷을 받을 대상 서버가 없거나, 서비스 불능 상태여도 알 길이 없습니다. 예를 들어, 목적지 컴퓨터가 꺼져 있는데 이를 모른 채 패킷이 전송될 수 있습니다. - 비신뢰성
패킷이 분실되거나 손상될 수 있고, 여러 개의 패킷이 순서대로 도착하지 않거나 중복해서 전송될 수도 있습니다. - 프로그램 혼동
같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 여러 개일 때, 어떤 프로그램이 데이터를 받게 될지 구분할 수 없습니다.
참고
'Blog > Network' 카테고리의 다른 글
[Network] HTTP란 무엇인가요? 무상태와 비연결성 정리하기 (0) | 2023.09.10 |
---|---|
[Network] URI vs URL vs URN 차이점 알아보기 (0) | 2023.09.10 |
[Network] UDP란? TCP vs UDP 차이점 살펴보기 (0) | 2023.09.10 |
[Network] TCP 3-Way Handshake와 4-Way Handshake 이해하기 (0) | 2023.09.10 |
[Network] TCP 개념과 TCP/IP 4계층 정리하기 (0) | 2023.09.10 |