ARP
컴퓨터와 컴퓨터 간의 통신은 IP 주소 기반으로 통신한다고 알고 있지만
실제로는 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신함
ARP(Address Resolution Protocol):
- IP 주소 → MAC 주소로 변환하는 프로토콜
- IP와 MAC 사이의 다리 역할을 수행
- 실질적인 통신은 MAC 주소 기반으로 이루어짐
📌 ARP 동작방식
- 송신 장비는 목적지 IP 주소를 알고 있음
- 목적지 MAC 주소를 모를 경우 → ARP 요청 브로드캐스트 전송
- 해당 IP를 가진 장비가 자신의 MAC 주소를 응답(유니캐스트)
- 송신 장비는 응답받은 MAC 주소로 프레임을 전송
📌 RARP
브로드캐스트: 모든 장치에 데이터를 전송(1:N)
유니캐스트: 특정 장치 1곳에만 전송(1:1)
홉바이홉 통신
IP 주소를 통해 통신하는 과정을 홉바이홉(hop by hop) 통신이라고 함
- 홉(Hop): 하나의 라우터를 건너가는 단위
- 패킷은 여러 라우터(여러 홉)를 거쳐 최종 목적지까지 점프하듯이 이동
📌 동작 과정
- 출발지 장비는 목적지 IP 주소를 기반으로 패킷 생성
- 패킷은 라우팅 테이블을 기반으로 다음 홉(라우터)으로 전달
- 각 라우터는 자신이 가진 라우팅 테이블을 참조해 다음 홉으로 또 전달
- 최종적으로 목적지 IP에 도달
이 과정을 라우팅 이라고함
라우팅 테이블
- 각 라우터나 장비에 저장된 경로 정보 리스트
- 목적지 IP에 도달하기 위해 거쳐야 할 다음 홉 라우터의 IP 보유
게이트웨이
- 다른 네트워크 간 통신의 관문
- 서로 다른 통신망이나 프로토콜을 연결
- 사용자 트래픽은 항상 게이트웨이를 거쳐 외부 네트워크로 나감
IP 주소 체계
| 항목 | IPv4 | IPv6 |
|---|
| 주소 길이 | 32비트 | 128비트 |
| 표기 방식 | 123.45.67.89 (10진수 점 표기) | 2001:db8::ff00:42:8329 (16진수 콜론 표기) |
| 사용 현황 | 여전히 가장 많이 사용 | 점차 확대 중 |
이후 설명은 IPv4를 기준으로 설명
클래스 기반 할당 방식
- IP 주소는 과거 클래스 A~E로 나눠 사용
- 앞 비트로 구분 → 네트워크 주소 + 호스트 주소
| 클래스 | 구분 비트 | 범위 | 용도 |
|---|
| A | 0 | 0.0.0.0 ~ 127.255.255.255 | 대형 네트워크 |
| B | 10 | 128.0.0.0 ~ 191.255.255.255 | 중형 네트워크 |
| C | 110 | 192.0.0.0 ~ 223.255.255.255 | 소형 네트워크 |
| D | 1110 | 224.0.0.0 ~ 239.255.255.255 | 멀티캐스트 |
| E | 1111 | 240.0.0.0 ~ | 실험용 |
클래스 A의 12.0.0.0 네트워크를 부여받으면
실제 할당 가능한 IP는 12.0.0.1 ~ 12.255.255.254
(첫 주소는 네트워크, 마지막은 브로드캐스트용)
하지만 이 방식은 사용하는 주소보다 버리는 주소가 많은 단점이 있었고
해결책으로 DHCP, IPv6, NAT가 나옴
DHCP
- IP 주소를 자동으로 할당하는 프로토콜
- 수동 설정 없이 인터넷 연결 가능
- 대부분의 공유기, 라우터에 내장
NAT
- 공인 IP ↔ 사설 IP 주소 매핑 기술
- 하나의 공인 IP로 여러 장치 인터넷 사용 가능
- 내부 사용자 (ex: 192.168.0.2, 192.168.0.3) → NAT 장치 → 하나의 공인 IP (ex: 121.165.151.200)로 외부 요청
📌 NAT 장점
- IP 주소 절약
- 공유기 하나로 여러 기기 인터넷 접속 가능
- 외부에 내부 IP 노출되지 않아 보안성 향상
📌 NAT의 단점
- 동시 접속 수가 많아지면 속도 저하 가능
- 특정 서비스 사용에 포트 포워딩 등 추가 설정 필요
IP 주소를 이용한 위치 정보
- IP 주소는 인터넷에서 사용하는 네트워크 주소
- 이를 통해 동 또는 구까지 위치 추적이 가능
- 인터넷 서비스 제공업체(ISP)는 할당된 IP 주소 대역과
지역 정보를 매핑해 관리
mylocation 사이트 링크: https://mylocation.co.kr/
참고: 북스터디 - 면접을 위한 CS 전공지식 노트 (Chapter 2-4)