해당 글은 “이것이 취업을 위한 컴퓨터 과학이다.” 를 읽고 요약한 글 입니다.
자세한 내용은 책을 참고하시길 바랍니다.
이번 글에서 요약할 내용은 네트워크의 큰 그림, 물리 계층과 데이터 링크 계층, 네트워크 계층 - IP에 대해서 정리해보겠습니다.
Ch. 5 네트워크
1. 네트워크의 큰 그림
해당 장에서는 네트워크를 이해하기 위한 배경 지식에 대해 알아보겠습니다.
네트워크의 기본 구조
네트워크는 노드와 간선으로 이루어진 자료구조라는 점에서 그래프의 형태를 띤다고 할 수 있습니다.
네트워크 상에서 노드와 노드 사이의 연결 구조는 네트워크 토폴리지 라고 부릅니다.

네트워크의 가장자리에 위치하면서 네트워크를 통해 주고받는 정보를 최초로 송신하고 최종 수신하는 노드를 호스트(host)라고 부릅니다.
요청(request)을 보내는 호스트를 클라이언트(client)라고 하고, 응답(response)을 보내는 호스트를 서버(server)라고 합니다.
LAN과 WAN
네트워크는 규모에 따라 LAN과 WAN으로 나뉩니다.
- LAN (Local Area Network)
- 근거리 네트워크를 의미
- 가정이나 기업처럼 비교적 가까운 거리를 연결하는 한정된 공간에서의 네트워크
- 같은 네트워크(LAN)정보를 주고받는 것 뿐만 아니라 LAN 간의 통신도 빈번함
- WAN (Wide Area Network)
- 원거리 네트워크를 의미
- WAN을 통해 LAN 간 통신이 이루어짐
- 인터넷을 가능하게 만드는 네트워크
- 일반적으로 ISP(Internet Service Provider)라는 인터넷 서비스 업체가 구축하고 관리함
패킷 교환 네트워크
네트워크를 통해 주고받는 데이터는 한 번에 송수신 되지 않고, 여러 데이터로 쪼개져서 송수신 됩니다.
네트워크를 통해 송수신되는 데이터의 단위를 패킷(packet)이라고 합니다.
오늘날의 네트워크는 패킷 단위로 주고받는 정보를 쪼개서 송수신하고, 수신지에서 재조립하며 패킷을 주고받는 패킷 교환 네트워크가 대부분입니다.
이런 패킷에서는 페이로드(payload), 헤더(header)로 구성되어 있으며, 트레일러(trailer)라는 정보가 포함되기도 합니다.
- 페이로드 : 패킷에서 송수신하고자 하는 데이터
- 헤더, 트레일러 : 패킷에 추가되는 부가 정보
주소의 개념과 전송 방식
올바르게 정보를 주고받기 위해서는 서로를 특정할 수 있는 정보인 주소가 필요합니다.
주소는 패킷의 헤더에 명시 되는 정보로, 네트워크에서 사용되는 대표적인 주소로는 IP 주소와 MAC 주소가 있습니다.
주소를 바탕으로 다양한 수신지 유형을 지정해 패킷을 보낼 수 있으며, 전송 방식은 다음과 같습니다.
- 유니캐스트 (unicast) : 송신지와 수신지가 일대일로 메시지를 주고받는 전송 방식
- 브로드캐스트 (broadcast) : 네트워크상의 모든 호스트에게 메시지를 전송하는 전송 방식
- 브로드캐스트 도메인
- 브로드캐스트가 전송되는 범위
- 호스트가 같은 브로드캐스트 도메인에 속해 있는 경우에는 같은 LAN에 속해 있다고 간주함
- 브로드캐스트 도메인
- 멀티캐스트 (multicast) : 네트워크 내의 동일 그룹에 속한 호스트에게만 전송
- 애니캐스트 (anycast) : 네트워크 내의 동일 그룹에 속한 호스트 중 가장 가까운 호스트에게 전송
프로토콜
프로토콜(protocol)은 네트워크에서 통신을 주고받는 노드 간의 합의된 규칙이나 방법을 뜻합니다.
프로토콜마다 목적과 특징이 다르며, 유사한 목적을 지닌 프로토콜들이 존재할 경우 각 프로토콜을 구분 짓는 특징이 존재합니다.
기본적으로 알아야 할 프로토콜의 종류는 다음과 같습니다.
- IP : 네트워크 간의 주소를 지정함
- ARP : IP 주소와 MAC 주소를 대응시킴
- HTTPS : 보안상 HTTP에 비해 안전함
- TCP : UDP에 비해 신뢰성이 높음
패킷은 패킷을 구성하는 프로토콜의 목적과 특징에 따라 그에 맞는 패킷 헤더를 가집니다.
각 프로토콜의 목적과 특징을 이해하기 위해서는 프로토콜의 패킷 헤더를 분석해 보는 것이 좋습니다.
네트워크 참조 모델
패킷을 주고받는 과정에도 정형화된 순서가 있고, 계층적으로 표현할 수 있습니다.
통신이 이루어지는 단계를 계층적으로 표현한 것이 네트워크 참조 모델이라고 합니다.
패킷을 송신하는 쪽에서는 상위 계층 → 하위 계층으로 정보를 보내고, 패킷을 수신하는 쪽에서는 하위 계층 → 상위 계층으로 정보를 받아들이게 됩니다.
대표적인 네트워크 참조 모델은 OSI 모델과 TCP/IP 모델이 있으며, 다음과 같습니다.
- OSI 모델
- 국제 표준화 기구(ISO)에서 만든 네트워크 참조 모델
- 7개의 계층으로 나눠 OSI 7계층으로 불리고, 이론적 기술을 목적으로 사용함
- 물리 계층 (physical layer)
- 가장 최하위 계층으로, 비트 신호를 주고받는 계층
- 0과 1로 이루어진 신호로 구성되며, 이 신호를 유무선 통신 매체를 통해 운반하는 계층
- 데이터 링크 계층 (data link layer)
- 같은 LAN에 속한 호스트끼리 올바르게 정보를 주고받기 위한 계층
- 같은 네트워크에 속한 호스트를 식별할 수 있는 주소(MAC 주소)를 사용하고, 물리 계층을 통해 주고받는 정보에 오류가 없는지 확인함
- 네트워크 계층 (network layer)
- 네트워크 간 통신을 가능하게 하는 계층
- LAN을 넘어 다른 네트워크와 통신을 주고받기 위해 필요한 계층
- 네트워크 간 통신 과정에서 호스트를 식별할 수 있는 주소(IP 주소) 필요
- 대표적으로 사용되는 프로토콜 : IP
- 전송 계층 (transport layer)
- 신뢰성 있는 전송을 가능하게 하는 계층
- 포트(port)라는 정보를 통해 특정 응용 프로그램과의 연결 다리 역할을 수행하는 계층
- 대표적으로 사용되는 프로토콜 : TCP, UDP
- 세션 계층 (session layer)
- 응용 프로그램 간의 연결 상태를 의미하는 세션을 관리하기 위한 계층
- 표현 계층 (presentation layer)
- 번역가와 같은 역할을 하는 계층
- 인코딩과 압축, 암호화와 같은 작업을 수행
- 응용 계층 (application layer)
- 사용자와 가장 밀접하게 맞닿아 있어 여러 네트워크 서비스를 제공하는 계층
- 대표적으로 사용되는 프로토콜 : HTTP, HTTPS, DNS 등
- TCP / IP 모델
- TCP/IP 4계층이라고 불리며 구현과 프로토콜에 중점을 둔 네트워크 참조 모델
- 네트워크 액세스 계층 (network access layer)
- 최하위 계층
- 링크 계층 or 네트워크 인터페이스 계층이라고 불리며, OSI 모델의 데이터 링크 계층과 유사
- 인터넷 계층 (internet layer)
- OSI 모델의 네트워크 계층과 유사
- 전송 계층
- OSI 모델의 전송 계층과 유사
- 응용 계층
- OSI 모델의 세션 계층 + 표현 계층 + 응용 계층을 합친 것과 유사
- 확장된 모델로 물리 계층이 있음 (추후 챕터에서 함께 다룰 예정)
캡슐화와 역캡슐화
프로토콜과 네트워크 참조 모델을 토대로 이뤄지는 패킷의 송수신 과정 중 송신 과정에서는 캡슐화가 이루어지고, 수신 과정에서는 역캡슐화가 이뤄집니다.
- 캡슐화 (encapsulation)
- 송신 과정에서 헤더(및 트레일러)를 추가해 나가는 과정
- 역캡슐화 (decapsulation)
- 캡슐화 과정에서 붙인 헤더(및 트레일러)를 각 계층에서 확인한 뒤 제거하는 과정
각 계층에서 주고받는 패킷(메시지)을 지칭하는 이름이 다릅니다.
OSI 모델을 기준으로 계층마다 패킷을 부르는 이름을 간단하게 정리하면 다음과 같습니다.
- 그 이상의 계층 : 데이터(data) 또는 메시지(message)
- 전송 계층
- TCP 기반 : 세그먼트 (segment)
- UDP 기반 : 데이터그램 (datagram)
- 네트워크 계층 : 패킷(이하 IP 패킷) 또는 데이터그램
- 데이터 링크 계층 : 프레임 (frame)
- 물리 계층 : 심볼(symbol) 또는 비트 bit)
2. 물리 계층과 데이터 링크 계층
이더넷
물리 계층과 데이터 링크 계층에는 LAN 내의 호스트들이 올바르게 정보를 주고받을 수 있게 해주는 이더넷(Ethernet)이 있습니다.
이더넷은 통신 매체를 통해 신호를 송수신하는 방법, 데이터 링크 계층에서 주고받는 데이터(프레임) 형식 등이 정의된 기술을 의미합니다.
대부분의 (유선)LAN은 이더넷을 기반으로 구현되어 있습니다.
이더넷 표준
이더넷은 IEEE 802.3이라는 이름으로 국제 표준화된 기술입니다.
개발자 입장에서 특정 이더넷 표준을 자세히 들여다 봐야 하는 상황은 많지 않으나 다음의 2가지는 기억해야 합니다.
- 오늘날의 (유선)LAN은 대부분이 이더넷 표준을 따르기 때문에 대다수의 LAN 장비들이 특정 이더넷 표준을 따른다.
- 이더넷 표준이 달라지면 통신 매체의 종류를 비롯한 신호 송수신 방법, 최대 지원 속도도 달라질 수 있다.
이더넷 프레임
이더넷 프레임은 이더넷 기반의 네트워크에서 주고받는 프레임을 의미합니다.
오늘날 (유선)LAN은 대부분 이더넷을 기반으로 구현되고 있기에, 프레임이 이더넷 프레임을 지칭한다고 보아도 무방합니다.
프레임을 구성하는 5가지 정보는 다음과 같습니다.
- 프리앰블 (preamble)
- 송수신지 동기화를 위해 사용되는 8바이트(64비트) 크기의 정보
- 첫 7바이트는 10101010이라는 값을 가지고, 마지막 바이트는 10101011이라는 값을 가짐
- 수신지 입장에서 현재의 이더넷 프레임이 수신되고 있다는 사실을 알아차리게 해줌
- 송수신지 MAC주소 (mac address)
- 프레임에서 가장 중요한 정보
- 송신지와 수신지를 특정할 수 있는 6바이트(48비트) 길이의 MAC주소가 명시됨 → (:) 으로 구분된 12자리 16진수로 구성
- 물리적 주소 라고도 불리는 MAC주소는 네트워크 인터페이스마다 하나씩 부여됨
- 네트워크 인터페이스 : 네트워크를 향하는 통로, 연결 매체와의 연결 지점을 의미하고, NIC라는 장치가 네트워크 인터페이스를 담당
- 타입 / 길이
- MAC주소의 타입 / 길이 필드에 명시된 크기로 구분
- 1500 이하 (16진수 05DC) → 프레임의 크기를 의미
- 1536 이상 (16진수 0600) → 타입을 의미
- 타입 : 캡슐화된 상위 계층의 정보를 의미하며, 어떤 상위 계층 프로토콜이 캡슐화 되었는지 알 수 있음
- MAC주소의 타입 / 길이 필드에 명시된 크기로 구분
- 데이터
- 페이로드, 즉 상위 계층으로 전달하거나 전달받을 데이터가 명시됨
- 데이터 필드에 포함될 수 있는 데이터의 최대 크기는 정해져 있음
- 일반적으로 1500바이트 이하로 제한되어 있으며, 이보다 큰 데이터를 보낼 경우 여러 패킷으로 나뉘어 보내짐
- FCS (Frame Check Sequence)
- 트레일러이며, 프레임의 오류가 있는지의 여부를 확인하기 위한 필드
- CRC(Cyclic Redundancy Check)라는 오류 검출용 값이 명시됨
유무선 통신 매체
물리 계층과 데이터 링크 계층에 속한 다양한 네트워크 하드웨어(통신 매체와 네트워크 장비)에 대해 살펴보겠습니다.
가장 대표적인 유선 매체로는 트위스티드 페어 케이블(twisted pair cable)이 있으며, 구리선을 통해 전기적으로 신호를 주고받는 통신 매체 입니다.
트위스티드 페어 케이블의 성능은 카테고리를 통해 알 수 있습니다.
- 카테고리 : 트위스티드 페어 케이블의 성능을 구분하는 등급 역할 (Cat으로 표현함)
구리선을 통해 전기적인 신호를 주고받기 때문에 전기 신호에 왜곡을 줄 수 있는 주변 잡음(노이즈)에 취약합니다.
그물 모양의 철사나 포일로 감싸 노이즈를 방지하기도 합니다.
구리선 주변을 보호해 노이즈를 감소시키는 방식은 차폐(shielding)라고 하며, 그물 모양의 철사와 포일은 각각 브레이드 실드(braided shield)와 포일 실드(foil shield)라고 합니다.
이러한 방식으로 만들어진 케이블의 종류는 다음과 같습니다.
- STP 케이블 : 브레이드 실드로 노이즈를 감소시킨 케이블
- FTP 케이블 : 포일 실드로 노이즈를 감소시킨 케이블
- UTP 케이블 : 아무것도 감싸지 않아 구리선만 있는 케이블
유선 매체에는 트위스티드 페어 케이블이 있는 것처럼 대표적인 무선 매체에는 전파가 있습니다.
- 전파 : 약 3kHz ~ 3THz 사이의 진동수를 갖는 전자기파를 의미
유선 LAN에서 가장 대중적으로 활용되는 기술이 이더넷이면, 무선 LAN에서 가장 대중적으로 사용되는 기술은 와이파이 입니다. (주로 사용되는 주파수 대역 : 2.4GHz / 5GHz)
전파 통신을 주고받을 때 주파수 대역이 겹치면 신호의 간섭이 발생할 수 있습니다.
주파수 대역은 같은 대역을 사용하는 서로 다른 무선 네트워크를 구분하기 위해 채널이라는 하위 주파수 대역으로 세분화되고, 채널 대역에서 무선 통신이 이루어집니다.
네트워크 인터페이스 : NIC
네트워크 상에서 노드와 통신 매체가 연결되는 지점을 네트워크 인터페이스라고 합니다.
네트워크 인터페이스마다 물리적 주소라고 불리는 MAC 주소가 부여되고, NIC 라는 하드웨어가 네트워크 인터페이스의 역할을 담당합니다.
- NIC (Network Interface Controller)
- 네트워크 인터페이스 카드, 네트워크 어댑터, LAN 카드, 네트워크 카드, 이더넷 카드 등 다양한 명칭으로 불리는 하드웨어
- 통신 매체의 신호를 호스트가 이해하는 프레임으로 변환
- 또는 호스트가 이해하는 프레임을 통신 매체의 신호로 변환하는 역할을 수행함
- MAC주소를 토대로 잘못 전송된 패킷이 없는지 확인하기도 함
허브와 스위치
허브와 스위치는 물리 계층과 데이터 링크 계층의 중간 노드이며, 오늘날 네트워크에서는 허브는 잘 사용하지 않고 스위치를 사용하는 경우가 많습니다.
허브는 물리 계층의 대표적인 네트워크 장비로, 여러 대의 호스트를 연결하는 장치입니다.
허브에서 케이블의 커넥터가 꽂히는 부분, 통신 매체를 연결하는 지점은 포트라고 합니다.
허브의 2가지 중요한 특징은 다음과 같습니다.
- 신호를 전달 받으면 해당 신호에 대한 조작이나 판단을 하지 않고, 모든 포트에 단순하게 신호를 내보냄
- 반이중 통신 - 반이중 모드로 송수신함
- 반이중 모드 : 송신 또는 수신을 번갈아 가면서 수행해야 하는 통신 방식을 의미 - 동시 송수신이 불가능함
- 허브를 향해 동시에 메시지를 보내면 충돌이 생길 수 있으며, 충돌이 발생할 수 있는 영역을 콜리전(충돌) 도메인이라고 함
스위치는 허브의 한계를 보완하기 위한 네트워크 장비입니다.
전달받은 신호를 목적지 호스트가 연결된 포트로만 내보내고, 전이중 모드를 지원합니다.
- 전이중 모드 : 동시 송수신이 가능한 상태 (양방향 송수신 가능)
- 이로 인해 허브와 비교해서 콜리진 도메인이 좁음
스위치가 전달받은 신호를 원하는 포트에만 내보낼 수 있는 이유는 스위치에 MAC 주소 학습 기능이 있기 때문입니다.
포트, 연결된 호스트의 MAC 주소 의 대응 관계를 테이블의 형태로 메모리에 저장하는데, 이 정보를 MAC 주소 테이블이라고 합니다.
스위치는 MAC 주소 테이블을 생성하고 참조할 수 있기에 목적지 호스트가 연결된 포트로만 내보낼 수 있습니다.
이 외에 또 다른 대표 기능은 VLAN(Virtual LAN) 입니다.
VLAN은 가상 LAN을 의미하며, 같은 스위치에 연결된 모든 호스트를 하나의 네트워크로 간주하고 싶지 않을 때나 여러 논리적인 네트워크로 나누고 싶을 때 사용됩니다.
3. 네트워크 계층 - IP
IP의 목적과 특징
LAN을 넘어서 다른 네트워크와 통신을 주고 받기 위해서 네트워크 계층 이상의 기술이 필요합니다.
여기서 중요하게 사용되는 가장 핵심적인 프로토콜이 바로 IP 입니다.
IP의 본래 목적은 크게 주소 지정과 단편화 2가지로 나뉘며, 이에 대한 설명은 다음과 같습니다.
- 주소 지정 (addressing)
- 네트워크 간의 통신 과정에서 호스트를 특정하는 것을 의미
- IP 주소를 통해 이루어지며, IP 패킷 헤더를 통해 알 수 있음
- 송신지 IP주소, 수신지 IP주소 : 송수신지를 식별할 수 있는 IP주소가 명시됨 (10진수 4개로 표시)
- 옥텟(octet) : 4개의 10진수로 표기된 IP주소에서 점으로 구분된 하나의 10진수를 의미
- 라우터(router)
- 서로 다른 네트워크에 속한 두 호스트가 네트워크 간 통신을 수행할 때, IP주소를 바탕으로 목적지까지 IP 패킷을 전달하는 네트워크 장비
- 라우팅 : 라우터가 IP 패킷을 전달할 최적의 경로를 결정하고, 해당 경로로 패킷을 내보내는 과정
- 공유기도 라우팅을 수행할 수 있기에 라우터의 일종이라고 볼 수 있음
- 단편화 (fragmentation)
- 데이터를 여러 IP 패킷으로 올바르게 쪼개어 보내는 것을 의미
- MTU(Maximun Transmission Unit)
- 최대 전송 단위를 의미 (1500 바이트)
- MTU 보다 클 경우 패킷을 MTU 이하의 여러 패킷으로 쪼개서 전송하고, 수신지에서 재조합됨
- 식별자 (identifier)
- 특정 패킷이 어떤 데이터에서 쪼개진 패킷인지를 식별하기 위해 사용되는 필드
- 같은 정보에서 쪼개진 패킷들은 같은 식별자를 공유하기에 식별자를 통해 단편화되어 전송되는 패킷을 구분할 수 있음
- 플래그 (flag)
- 3비트로 구성된 필드로 첫 번째 비트를 제외한 나머지 2개의 비트는 각각 DF와 MF라는 이름이 붙어 있음
- 첫 번째 비트는 항상 0 : 오늘날에는 사용되지 않음
- DF(Don’t Fragment) : IP 단편화를 수행하지 말라는 표시
- MF(More Fragment) : 단편화된 패킷이 더 있다라는 표시
- 3비트로 구성된 필드로 첫 번째 비트를 제외한 나머지 2개의 비트는 각각 DF와 MF라는 이름이 붙어 있음
- 단편화 오프셋 (fragment offset)
- 특정 패킷이 초기 데이터에서 얼마나 떨어져 있는지가 명시된 필드
- 단편화되어 전송되는 패킷을 목적지에서 재조합하기 위해 패킷의 올바른 순서를 나타내는 데 사용
신뢰할 수 없는 프로토콜과 비연결형 통신
IP는 신뢰할 수 없는 프로토콜이자, 비연결형 프로토콜이라고 말합니다.
- 신뢰할 수 없는 프로토콜
- 패킷이 수신지까지 제대로 전송되었다고 보장하지 않는 프로토콜
- 패킷이 유실되거나 목적지에 순서대로 전송되지 않더라도 이에 대한 조치를 취하지 않음
- 최선형 전달이라고 부름 (어떠한 보장도 하지 않는 전송 특징)
- 비연결형 프로토콜
- 패킷을 주고받기 전에 사전 연결 과정을 거치지 않는다는 것을 의미
- 상대 호스트의 수신 가능 여부 고려하지 않고, 수신지를 향해 패킷을 전송함
IP 주소의 구조
IP의 주요 목적인 주소 지정의 수단인 IP 주소의 구조에 대해서 알아보겠습니다.
IP 주소는 크게 네트워크 주소와 호스트 주소로 이루어져 있습니다.
- 네트워크 주소
- 네트워크 식별자, 네트워크 ID 등으로 불림
- 호스트가 속한 네트워크를 특정하기 위해 사용
- 호스트 주소
- 호스트 식별자, 호스트 ID 등으로 불림
- 네트워크에 속한 호스트를 특정하기 위해 사용
하나의 IP 주소에서 네트워크 주소를 표현하는 크기와 호스트를 표현하는 크기가 유동적일 수 있습니다.
각각의 크기는 상황에 따라 다른데, 이러한 점을 해결하기 위해 IP 주소의 클래스가 있습니다.
- 클래스 : 네트워크의 크기에 따라 유형별로 IP 주소를 분류하는 기준
- A, B, C, D, E 가 있으며, D, E는 각각 멀티캐스트를 위한 클래스로 실질적으로 사용되는 것은 A, B, C임
- A 클래스 : 네트워크 주소는 비트 0으로 시작해 1옥텟으로 구성되고, 호스트 주소는 3옥텟으로 구성
- B 클래스 : 네트워크 주소는 비트 10으로 시작해 2옥텟으로 구성되고, 호스트 주소도 2옥텟으로 구성
- C 클래스 : 네트워크 주소는 비트 110으로 시작해 3옥텟으로 구성되고, 호스트 주소는 1옥텟으로 구성
- 클래스풀 주소 체계 : 클래스 바탕으로 IP주소를 관리하는 주소 체계
- A, B, C, D, E 가 있으며, D, E는 각각 멀티캐스트를 위한 클래스로 실질적으로 사용되는 것은 A, B, C임
클래스리스 주소 체계와 서브넷 마스크
클래스풀 주소 체계는 클래스별 네트워크 크기가 고정되어 있어 IP 주소가 낭비될 수 있다는 한계가 있습니다.
더 정교하고 유동적으로 네트워크 영역을 나누기 위해 클래스리스 주소 체계가 등장했습니다.
- 클래스리스 주소 체계 : 클래스를 이용하지 않고, 네트워크와 호스트를 구분하는 방식으로 서브넷 마스크를 이용함
- 서브넷 마스크 : IP 주소상에서 네트워크 주소를 1로 표기하고, 호스트 주소를 0으로 표기한 비트열
- 서브네트워크 : IP 주소에서 네트워크 주소로 구분할 수 있는 네트워크의 부분 집합을 의미 (서브넷이라고 줄여 부름)
- 서브네팅 : 서브넷 마스크를 이용해 원하는 크기로 클래스를 더 잘게 쪼개어 사용하는 것
공인 IP 주소와 사설 IP 주소
호스트의 IP 주소는 네트워크 설정이나 명령어를 통해서 확인할 수도 있고, 온라인 검색을 통해 확인할 수 있습니다.
하지만 이 경우 전자와 후자의 IP 주소는 다르게 나오는 것을 확인할 수 있습니다.
이유는 IP 주소에는 고유한 IP 주소도 있고, 고유하지 않은 IP 주소가 있기 때문입니다.
- 공인 IP 주소
- 고유한 IP 주소
- 인터넷을 비롯한 네트워크 간 통신에서 사용되는 IP 주소
- 사설 IP 주소
- 고유하지 않은 IP 주소
- 사설 네트워크에서 사용하기 위한 IP 주소
- 일반적으로 라우터를 통해 할당되기에 공유기(라우터)를 중심으로 구성된 LAN 대부분은 사설 네트워크에 해당함
- 해당 호스트가 속한 네트워크상에서만 유효한 주소로 중복될 수도 있음
IP 주소의 할당
크게 2가지로 정적 할당과 동적 할당이 있으며, 이에 대해 정리해보겠습니다.
- 정적 할당
- 직접 수작업으로 IP 주소를 부여하는 방식 → 할당된 IP 주소를 정적 IP 주소라고 함
- IP 주소, 서브넷 마스크, 게이트웨이 (라우터) 주소, DNS 주소 등이 필요함
- 게이트웨이 : 일반적으로 서로 다른 네트워크를 연결하는 하드웨어적/소프트웨어적 수단
- 기본 게이트웨이
- 호스트가 속한 네트워크의 외부로 나가기 위한 첫 기본 경로
- 네트워크 외부와 연결된 라우터(공유기)의 주소를 의미하는 경우가 많음
- DNS 주소 : 호스트가 도메인 네임을 토대로 IP 주소를 알아내기 위해 질의하는 서버의 주소
- 동적 할당 : DHCP
- 프로토콜을 통해 자동으로 IP 주소를 부여하는 방식 → 할당된 IP 주소를 동적 IP 주소라고 함 ****
- 가장 흔히 사용되는 프로토콜 : DHCP (Dynamic Host Configuration Protocol)
- IP 주소를 동적으로 할당받고자 하는 호스트는 DHCP 서버와 메시지를 주고받으며 동적 IP 주소를 할당 받을 수 있음
- DHCP 서버 : 호스트에 할당 가능한 IP주소 목록을 관리하다가, IP주소 할당 요청을 받았을 때 IP주소를 할당해 주는 호스트
- 동적 IP주소에는 사용 가능한 기간이 정해져 있음
- 동적 IP주소는 할당받을 때마다 다른 주소를 받을 수 있음
IP 전송 특징의 보완 : ICMP
IP의 신뢰할 수 없는 비연결형 통신이라는 특징은 반드시 극복해야 할 단점은 아니지만 보완해야 할 때가 있습니다.
이를 위한 방법으로 네트워크 계층의 프로토콜로 ICMP를 이용하는 방법입니다.
- ICMP(Internet Control Message Protocol)
- IP 패킷의 전송 과정에 대한 피드벡 메시지(ICMP 메시지)를 얻기 위해 사용하는 프로토콜
- ICMP 메시지를 통해 패킷이 상대방에게 어떻게 전송 되었는지를 알려줄 수 있어 IP 전송의 결과를 엿볼 수 있음
- IP 의 신뢰성을 완전히 보장하지는 않음
- ICMP 메시지 종류
- 전송 과정에서 발생한 오류 보고
- 네트워크 도달 불가 (Destination network unreachable)
- 호스트 도달 불가 (Destination host unreachable)
- 프로토콜 도달 불가, 수신지에서 특정 프로토콜을 사용할 수 없음 (Destination protocol unreachable)
- 포트 도달 불가 (Destination port unreachable)
- 단편화가 필요하지만 DF가 1로 설정되어 단편화할 수 없음 (Fragmentation required, and DF flag set)
- TTL 만료 (TTL expired in transit)
- 네트워크에 대한 진단 정보
- Echo 요청 (Echo request)
- Echo 응답 (Echo reply)
- 전송 과정에서 발생한 오류 보고
IP주소와 MAC주소의 대응 : ARP
패킷의 송수신 과정에서도 IP 주소와 MAC 주소를 함께 사용하지만 IP 주소를 우선적으로 활용합니다.
이 때 상대 호스트의 IP 주소만 알고, MAC 주소를 모르는 상황이 있을 수 있는데, 해당 상황에서 ARP 라는 프로토콜이 사용됩니다.
- ARP (Address Resolution Protocol)
- IP 주소와 MAC 주소를 함께 활용하는 통신 과정에서 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아내는 프로토콜
- MAC 주소를 알아내는 과정은 ARP 요청 메시지와 ARP 응답 메시지를 통해 이루어짐
- APR 요청 메시지인 브로드캐스트 메시지를 전송 → 네트워크 내 모든 호스트가 수신 → 호스트들은 IP 주소를 확인 → 자신의 IP 주소의 경우 ARP 응답 메시지 전송 (MAC 주소 포함)
- ARP 테이블 : <IP주소, MAC주소>의 항목들로 구성된 표 형태의 정보로 ARP를 활용하는 호스트는 해당 정보를 유지함
마치며
새로 알게 된 사실
OSI 7계층이랑 몇몇 부분은 대학 수업때 들어서 알고는 있었으나 이번 기회를 통해 좀 더 자세하게 알 수 있게 된 거 같다.
그 중 이더넷에 대해서 처음으로 자세히 알게 된 거 같다… (용어가 왜 안 익숙하지 -.-)
Quiz
1. 네트워크를 송수신하는 데이터의 단위는?
2. 이더넷 프레임의 구성 요소 중 하나가 아닌 것은 무엇입니까?
A. 프리앰블
B. MAC 주소
C. IP 주소
D. 페이로드
3. IP 특징 2가지를 설명하시오.
IP는 ( ) 프로토콜 이자, ( ) 프로토콜이라고 말합니다.
1번 : 패킷
2번 : IP 주소
3번 : 신뢰할 수 없는 프로토콜, 비연결형