🌐 네트워크의 큰 그림
현대 사회에서 인터넷은 없어서는 안 될 인프라이다. 이 인터넷을 포함한 컴퓨터 간의 통신은 네트워크(Network) 라는 구조를 통해 이루어진다. 이 글에서는 네트워크의 기본 구조부터 IP 주소, MAC 주소까지의 개념을 하나씩 정리해본다.
🕸️ 네트워크의 구조 이해하기
📌 네트워크 토폴로지 (Network Topology)
네트워크에서 노드(컴퓨터, 서버 등) 간의 연결 형태를 토폴로지라고 한다.
- 버스형 (Bus) : 하나의 주 라인에 여러 장치가 연결된 형태
- 성형 (Star) : 중앙 장치에 모든 장치가 연결된 형태
- 링형 (Ring) : 원형으로 각 장치가 연결된 형태
- 트리형 (Tree) : 계층적 구조
- 망형 (Mesh) : 모든 장치가 서로 직접 연결
구조에 따라 통신 속도, 장애 발생 시의 영향, 비용 등에 차이가 발생한다.
👥 호스트 (Host)
- 최초 송신지와 최종 수신지를 의미하는 장치
- 예: 노트북에서 구글 서버에 웹페이지 요청 → 구글 서버가 응답
🖧 LAN과 WAN
- LAN (Local Area Network) : 한정된 공간(사무실, 집 등) 내에서 가까운 장치들을 연결하는 네트워크
- WAN (Wide Area Network) : 장거리, 광범위한 지역을 연결하는 네트워크
- ISP (Internet Service Provider) 업체가 관리
📦 패킷과 주소
네트워크 통신은 패킷(Packet) 단위로 데이터를 주고받는다. 패킷은 다음과 같은 구조를 가진다:
- 헤더 (Header) : 송수신지 정보, 전송 제어 정보 등
- 페이로드 (Payload) : 실제 데이터
- 트레일러 (Trailer) : 에러 검사 정보
📮 주소의 종류
- IP 주소 : 네트워크 내 위치 식별
- MAC 주소 : 물리적 장치 식별
🧭 전송 방식
- 유니캐스트 : 1:1 통신
- 브로드캐스트 : 1:모두 (네트워크 상의 모든 장치로 전송)
- 브로드캐스트 도메인 : 브로드캐스트가 전달되는 범위
- 멀티캐스트 : 1:선택된 그룹
- 애니캐스트 : 1:가장 가까운 노드로
🔁 두 호스트 간 통신 절차
네트워크 상에서 장치들이 서로 통신하기 위해서는 규약(프로토콜) 과 계층 구조가 필요하다.
🧾 프로토콜이란?
프로토콜은 네트워크 통신에서 지켜야 할 규칙 또는 약속이다.
- IP (Internet Protocol) : 주소 지정, 라우팅
- ARP (Address Resolution Protocol) : IP주소 ↔ MAC주소 매핑
- TCP (Transmission Control Protocol) : 신뢰성 있는 통신
- UDP (User Datagram Protocol) : 빠른 통신, 비신뢰성
- HTTPS : 암호화된 HTTP 통신
🧱 네트워크 계층 모델
📚 OSI 7계층
- 물리 계층 - 전기적, 기계적 신호 전달
- 데이터 링크 계층 - 물리적 주소(MAC) 기반의 데이터 전송
- 네트워크 계층 - 논리적 주소(IP) 기반의 라우팅
- 전송 계층 - 데이터 흐름 제어, 오류 검출 (TCP/UDP)
- 세션 계층 - 통신 세션 제어
- 표현 계층 - 데이터 표현 방식 (암호화, 압축 등)
- 응용 계층 - 사용자 응용 프로그램 (웹, 이메일 등)
🧰 TCP/IP 4계층
- 네트워크 인터페이스 계층 - OSI 1~2계층
- 인터넷 계층 - OSI 3계층
- 전송 계층 - OSI 4계층
- 응용 계층 - OSI 5~7계층
실무에서는 TCP/IP 모델을 더 많이 사용한다.
📦 캡슐화와 역캡슐화
캡슐화(Encapsulation)
→ 데이터를 하위 계층으로 보낼 때, 각 계층의 헤더를 추가하며 이동
역캡슐화(Decapsulation)
→ 데이터를 수신할 때, 계층별로 헤더를 제거하며 상위 계층으로 전달
🧭 IP 주소의 구조와 전달
📌 IP 주소의 목적
- 호스트 식별 및 데이터 라우팅
- 단편화(Fragmentation) 를 통해 큰 데이터를 나눠 전송
📬 신뢰성 없는 통신
- IP는 신뢰성 없는, 비연결형 프로토콜
- 최선형 전송(Best-Effort Delivery) 이며, 보장하지는 않음
🧩 IP 주소의 체계
📍 클래스풀 주소 체계
- A클래스, B클래스, C클래스로 구분
- 각 클래스마다 네트워크와 호스트의 비트 수가 다름
🎭 클래스리스 주소와 서브넷 마스크
- CIDR (Classless Inter-Domain Routing) 표기 사용
- 서브넷 마스크를 통해 네트워크 영역과 호스트 영역 구분
- 서브네팅 : 큰 네트워크를 나누어 효율적으로 관리
🌎 공인 IP vs 사설 IP
- 공인 IP : 인터넷에서 고유하게 식별 가능한 주소
- 사설 IP : 내부 네트워크에서만 사용
📥 IP 주소 확인 방법
- Windows :
ipconfig /all
- macOS/Linux :
ifconfig
🔄 IP 주소의 할당
- DHCP (Dynamic Host Configuration Protocol) : 자동 할당
- 정적 할당 : 수동으로 지정
📡 기타 설정
- 게이트웨이 : 외부 네트워크로 나가는 출입구
- DNS : 도메인을 IP로 변환
🛠️ 전송 보완 : ICMP
- ICMP (Internet Control Message Protocol)
- 오류 메시지 보고
- 네트워크 상태 정보 제공
🔗 MAC 주소와의 대응 : ARP
- ARP (Address Resolution Protocol) 은 IP 주소에 대응되는 MAC 주소를 조회
- 네트워크 통신에서 두 호스트가 직접 통신하기 위해 반드시 필요한 과정
Ref. 📗《이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접》, 강민철