예전에 HTTP 프로토콜에 대해서 학습하고 기록으로 남기고 싶어서 포스팅 해놓았는데
오늘은 인터넷 계층인 IP 프로토콜에 대해서 정리해보겠다.
그전에 다시한번 프로토콜에 대해서 한 번 더 짚고 넘어가보자!
프로토콜
서로 다른 시스템에 있는 개체간에(= 서로 다른 디바이스 간에) 성공적으로 데이터를 전송할 수 있도록 정해둔 통신 규약프로토콜은 계층적인 구조로 정의되어있고, 계층별 역할이 구분됨
OSI 7계층 layer들과 TCP/IP계층 layer가 존재함
OSI 7계층은 이상적인 모델이며 TCP/IP는 실제 디바이스간에 데이터 전송이 구체화된 모델이다.
- OSI 7계층:
- 장비개발 참조용
- 실제 통신용 프로토콜
- 문제해결 참조용
- 유지보수 참조용
- 학습 참조용 - TCP/IP 계층: 실제 통신용 프로토콜
OSI계층 번호 | TCP/IP계층 이름 | 프로토콜 | 세부항목 |
5, 6, 7 | 애플리케이션 | HTTP, FTP, SMTP, SNMP, DNS, TELNET | - 응용 프로그램 간의 데이터 송·수신 제공 - 웹 브라우저, 네트워크, 게임, 채팅 프로그램, [socket 라이브러리] |
4 | 전송(OS) | TCP, UDP | - 호스트들 간의 신뢰성 있는 통신 제공 1 + 2 + TCP, UDP |
3 | 인터넷(OS) | IP, ICMP, IGMP, ARP, RARP | - 데이터 전송을 위한 주소 지정, 경로 설정 제공 1 + 2 + 3 IP |
1, 2 | 네트워크 인터페이스 | Ethernet, IEEE 802, HDLC, X.25, RS-232C, ARQ | - 실제 데이터(프레임)을 송·수신하는 역할 1 + 2 + 3 + 이더넷 프레임 -> (LAN, DRIVER) |
IP 프로토콜은 TCP/CP 계층 중 인터넷 계층에 속하며
장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층이다.
인터넷 계층 특징
- PDU(Protocol Data Unit: 프로토콜에서 사용하는 데이터의 단위): 패킷
- 인터넷 계층의 프로토콜은 IP, ARP, RARP, ICMP 등이 있으며 패킷을 수신해야할 상대의 주소를 지정하여 데이터를 전달함
- 상대방이 제대로 받았는지에 대해 보장하지 않는 비연결형, 비신뢰성적인 특징을 가지고 있음
- 상대방이 제대로 받지않아도(도착하지 않아도) 재전송하지 않음 ( -> 다음 계층인 TCP 프로토콜이 신뢰성을 보정함)
- 인터넷 계층을 처리하는 기기: 라우터, L3 스위치
라우터(router) | - 여러 개의 네트워크를 연결, 분할, 구분 시켜주는 역할 - "다른 네트워크에 존재하는 장치끼리 서로 데이터를 주고받을 때 패킷 소모를 최소화 하고, 경로를 최적화하여 최소 경로로 패킷을 포워딩"== 라우팅하는 장비 - 소프트웨어 기반의 라우팅, 하드웨어 기반의 라우팅으로 나뉘어짐 |
L3 스위치 | - L2 스위치(데이터 링크 계층을 처리하는 기기)의 기능과 + 라우팅의 기능을 갖춘 장비 - 하드웨어 기반의 라우팅을 담당하는 장치 |
- 참조 테이블, 참조 PDU, 참조 주소
구분 | L2 스위치 | L3 스위치 |
참조 테이블 | MAC 주소 테이블 | 라우팅 테이블 |
참조 PDU | 이더넷 프레임 | IP 패킷 |
참조 주소 | MAC 주소 | IP 주소 |
인터넷 계층을 처리하는 기기가 L3 스위치이고 참조 테이블은 라우팅 테이블이고 참조 주소는 IP 주소라고 하는데 그럼 IP 주소는 무엇일까?
IP 주소
- 컴퓨터 네트워크에서 각 기기를 식별하고 위치를 결정하기 위해 사용되는 고유한 숫자
- 인터넷 프로토콜을 사용하는 네트워크에서 사용되고 데이터가 네트워크를 통해 전송 될때 출발지와 목적지를 나타냄
- IP 주소로 동 또는 구까지 위치 추적이 가능함.
- IP 주소 버전은 2가지가 존재함. IPv4, IPv6
구분 | 단위 개수(단위) | 1단위당 표현 bit |
IPv4 | 4개(옥텟: octect) | 8bit |
IPv6 | 8개(블록) | 16bit |
- IPv4 -> 192.168.0.1
- IPv6 -> 2001:0db8:85a3:0000:0000:8a2e:0370:7334
-> IPv4가 약 43억개의 고유한 주소를 생성할 수 있는데 미래에 이것이 부족해지는 문제가 생길까 IPv6 도입하였고 현재 추세로 가고 있지만 가장 많이 쓰이는 주소 체계는 IPv4이다.
- 할당 방식: 클래스 기반 할당 방식
클래스 | 구분 비트(맨 왼쪽 비트) | 범위 | 네트워크 구별 주소 | 브로드 캐스트 주소 |
클래스 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 | 11110 | 240.0.0.0 ~ 255.255.255.255 | 첫 번째 주소 | 마지막 주소 |
-> 클래스 A, B, C는 일대일 통신, 클래스 D는 멀티캐스트 통신, 클래스 E는 앞으로 사용할 예비용
-> 해당 방법은 사용하는 주소보다 버리는 주소가 많은 단점이 존재해서 이를 해결하기 위해 DHCP, IPv6, NAT이 나옴
그러나 참조 주소가 IP 주소인 것이지 실제 컴퓨터간 통신은 IP 주소가 아닌 MAC 주소로 한다.
실제 컴퓨터간 통신 MAC 주소
MAC 주소란?
- 네트워크 인터페이스 카드(NIC)나 네트워크 어댑터에 할당된 고유한 식별자
- 물리적으로 NIC에 부여되고 이것은 전 세계적으로 유일한 주소로 보장
- 데이터 링크 계층에서 작동하는 네트워크 장비를 식별하는데 사용됨
- 총 48비트(6바이트)로 구성되고 16진수로 표현
ex) 00:1A:2B:3C:4D:5E
- 처음 24비트(3바이트): 제조사 식별자(Organizationally Unique Identifier, OUI)
- 나머지 24비트(3바이트): 고유 제품 식별자
ARP
ARP(Address Resolution Protocol) 프로토콜이란 (사실 ARP 자체에 프로토콜이라고 써있어서 약속 약속이 되지만 부르기 편하게 ARP 프로토콜이라 명시하겠다..) 참조하는 주소인 IP 주소를 MAC 주소로 변환 해주는 것이다.
반대로 RARP는 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환 해준다.
ARP를 통한 IP 주소 -> MAC 주소 변환 과정
Request: 네트워크에 연결되어있는 모든 PC들에게 ARP 요청을 BroadCast함
- IP 주소가 141.23.56.23인 PC의 MAC 주소가 뭐니?
Response: 해당 IP 주소를 가진 PC가 요청을 보낸 PC에게 UniCast를 통해 MAC 주소 응답
- 그 IP 난데, 내 MAC 주소는 A4:6E:F4:59:83:AB야~
BroadCast | 송신 호스트가 전송한 데이터들이 네트워크에 연결된 모든 호스트에 전송되는 방식 |
UniCast | 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식 |
이런 요청, 응답을 하면서 ARP Table에 IP 주소와 MAC 주소를 1:1 대응해서 정리해둔다.
그럼 L3 스위치가 참조하는 주소인 IP 주소에 대해서 알아봤는데
그럼 참조 테이블인 라우팅 테이블이라는 것은 무엇일까?
홉바이홉 통신
홉(hop)은 컴퓨터 네트워크에서 출발지와 목적지 사이에 위치한 경로의 한 부분이다.
인터넷 계층의 통신(단위: 패킷)은 출발지 -> 목적지로 바로 가는 단일 통신이 아니라 수많은 서브 네트워크와 브리지, 라우터, 게이트웨이를 패킷 단위별로 거쳐간다. 장치 별로 한번 거치는 것을 1개의 홉이 발생했다고 하고 출발지 -> 목적지로 가는 동안 중간 장치들의 개수마다 홉 개수가 카운트 된다.
바로 이 라우터에 라우팅 테이블이 있다.
라우팅 테이블에 적혀 있는 IP를 기반으로 패킷을 전달하면서 라우팅을 수행하고 최종 목적지까지 패킷을 전달한다. 라우팅 테이블에는 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야할 다음 라우터의 정보를 가지고 있다.
게이트 웨이란?
- 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간에 통신을 가능하게 하는 관문의 역할을 하는 컴퓨터나 소프트웨어를 두르 일컫는 용어.
- 서로 다른 네트워크상의 통신 프로토콜을 변환해주는 역할을 하기도 함
- 라우터는 장비, 게이트 웨이는 개념적 의미(통로, 출입구)
비유:
- 고속도로를 갈아탈때마다 지나는 톨게이트(톨게이트를 지날때마다 통행료를 부가하듯, 게이트웨이를 거칠 때마다 네트워크 부하도 증가하여 전송 속도가 느려질 수 있음)
- 다른 언어를 사용하는 두 사람 사이에서의 통역사나 번역기
- 다른 화폐를 사용하는 두 국가 사이에서의 환전소
일반적으로 게이트웨이 주소는 IPv4에서 4번째 옥텟(ex. 192.168.1.xxx)만 다른 경우가 많다.
또한 패킷이 버려지기 전에 허용되는 홉의 수가 제한되어있는데 IPv4에서는 TTL(Time to Live)
, IPv6은 홉제한이라고 한다.
그 외
DHCP
DHCP(Dynamic Host Configuration Protocol): IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜
이 기술을 통해 네트워크 장치의 IP 주소를 수동으로 설정할 필요 없이 인터넷에 접속할 때마다 자동으로 IP주소를 할당할 수 있다.
많은 라우터와 게이트웨이 장비에 DHCP 기능이 있으며 이를 통해 대부분의 가정용 네트워크에서 IP 주소를 할당한다.
NAT
NAT(Network Address Translation): 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법
IPv4 주소 체계만으로는 많은 주소들을 모두 감당하지 못하는 단점이 있는데, 이를 해결하기 위해 NA로 공인 IP와 사설 IP로 나눠서 많은 주소를 처리하고 이것을 가능하게 하는 소프트웨어는 ICS, RRAS, Netfilter가 존재한다.
특징
- 여러 대의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하는 곳에 쓰임
ex) 인터넷 회선 하나를 개통하고 인터넷 공유기를 달아서 여러 PC를 연결하여 사용 - 내부 네트워크에서 사용하는 IP 주소와 외부에 드러내는 IP 주소를 다르게 유지할 수 있기 때문에 내부 네트워크에 대한 보안이 어느정도 가능해짐
- 여러 명이 동시에 인터넷을 접속하게 되므로 실제 접속하는 호스트 숫자에 따라 접속 속도가 느려질 수 있음
'CS > 네트워크' 카테고리의 다른 글
HTTP 특징(http message) (0) | 2023.07.30 |
---|---|
HTTP의 특징(서버/ 클라이언트 구조, Stateless, Connectionless) (0) | 2023.07.29 |
HTTP 프로토콜 (0) | 2023.07.28 |