네트워크는 노드와 간선으로 이루어진 그래프 형태의 자료구조를 의미한다. 이때, 네트워크를 구성하는 노드와 간선의 의미는 각각 다음과 같다.
- 노드: 네트워크 기기 ex) 노트북, PC, 스마트폰
- 간선: 네트워크 기기 간에 정보를 주고받는 유무선의 통신 매체
컴퓨터 네트워크는 그 용어에서도 짐작할 수 있듯이, 분산되어 있는 ‘컴퓨터’들이 정보를 주고받을 수 있는 그래프 형태의 통신망이라 할 수 있다.
우선 컴퓨터 네트워크를 이해하기 위해 필요한 기초적인 용어를 정리하였다.
- 네트워크 토폴로지: 네트워크 상에서 노드와 노드 사이의 연결 구조 ex) 망형, 트리형, 링형, 성형, 버스형(선형) 등
- 호스트(host): 네트워크의 가장자리에 위치하면서 네트워크를 통해 주고받는 정보를 최초로 송신하고 최종 수신하는 노드
- 클라이언트(client): 요청(request)을 보내는 호스트
- 서버(server): 응답(response)을 보내는 호스트
- 중간 노드: 가장자리에 위치한 호스트가 주고받는 정보들을 원하는 수신지까지 안정적으로 전송하는 역할을 하는 노드 ex) 스위치, 라우터, 공유기 등
- LAN(Local Area Network): 근거리 네트워크
- WAN(Wide Area Network): 원거리 네트워크
- 특징
- 인터넷을 가능하게 만드는 네트워크이다.
- 일반적으로 ISP(Internet Service Provider)라는 인터넷 서비스 업체가 구축하고 관리한다.
🤔개념
패킷 교환 네트워크
오늘날의 네트워크 통신은 패킷 교환 네트워크 내에서 이루어진다. 이때, ‘패킷 교환 네트워크’란 이름 그대로 패킷이라는 데이터 단위를 주고받는 네트워크를 의미한다.
패킷(packet)
송수신되는 데이터의 단위
- 특징
- 패킷 단위로 주고받는 정보를 쪼개서 송수신한다.
- 수신지에서는 쪼개진 패킷을 재조립하여 해석한다.
- 구성
- 페이로드(payload): 송수신하고자 하는 데이터이며, 헤더와 데이터를 구분하기 위해 사용된다.
- 헤더(header): 각 계층마다 필요한 프로토콜 제어 정보를 담으며, n layer에서 생성된 헤더는 n layer에서 삭제된다.
PCI(Protocol Control Information)
헤더와 같은 의미로, 각 계층에 필요한 정보 및 기능이 담긴다.
- 트레일러(trailer): 패킷에 추가되는 부가 정보
패킷 교환을 택배 물류에 비유하면 다음과 같이 정리할 수 있다.
| 패킷 교환 | 택배 물류 |
|---|
| 단위 | 패킷 | 박스 |
| 내용 | 페이로드 | 내용물 |
| 출발지/도착지 정보 | 헤더 | 송장 |
| 부가정보 | 트레일러 | 기타 정보 (ex. 파손주의 스티커 등) |
주소의 개념과 전송 방식
패킷 구성을 완료한 후에 패킷을 송신하려고 한다. 이때, 수신지의 정보를 알아야 하는데, 이 정보를 네트워크 상에서는 주소로 표현한다. 주소는 패킷의 헤더에 명시되며, 대표적으로 IP 주소와 MAC 주소가 있다.
- 인터넷에서의 주소: 인터넷에서 사용하는 주소는 논리 주소(logical address), 물리 주소(physical address)로 나눌 수 있다.
- 논리 주소(Logical Address): 호스트나 라우터가 사용하는 네트워크 레벨 주소이다. 전세계적으로 유일하며 32비트(IPv4)로 이루어지며, IP주소가 이에 해당한다.
- 물리 주소(Physical Address): 로컬 네트워크에서 유효한 주소이다. 로컬에서만 유일하면 되고 보통 하드웨어로 구현되며 MAC주소가 이에 해당한다. 호스트나 라우터 내 설치된 NIC에 들어 있다.
전송 방식
주소가 있다면 송신 대상을 특정할 수 있다.
- 유니캐스트(unicast) 프로토콜: 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 트래픽 또는 메시지를 전송하는 프로토콜
- 브로드캐스트 프로토콜: 하나의 송신자가 동일한 서브 네트워크 상의 모든 수신자에게 데이터를 전송하는 프로토콜로, 특정 송신자의 브로드캐스트 중에는 다른 모든 수신자는 신호를 보낼 수 없다.
호스트 id 부분이 255(이진수로 모두 1)인 경우에 해당한다.
- 브로드캐스트 도메인: 브로드캐스트가 전송되는 범위이다. 동일한 브로드캐스트 도메인에 속한 호스트는 동일한 LAN에 속해 있다고 간주하는 것이 일반적이다.
Collision domain vs Broadcast domain
Collision domain은 네트워크 내에서 데이터 패킷 충돌이 발생할 수 있는 물리적 영역이며, 충돌은 두 개 이상의 디바이스가 동시에 네트워크 매체에 데이터를 전송하려고 할 때 발생한다.
Broadcast domain은 네트워크 내에서 브로드캐스트 트래픽이 전송될 수 있는 논리적 영역이며, 브로드캐스트 메시지는 동일한 브로드캐스트 도메인 내의 모든 디바이스가 수신한다.
Collision Domain vs Broadcast Domain
- 멀티캐스트(multicast) 프로토콜: 인터넷에서 같은 내용의 데이터를 여러 명의 특정한 그룹의 수신자들에게 동시에 전송할 수 있는 프로토콜로, 멀티캐스트 라우팅 프로토콜과 IGMP(그룹관리 프로토콜)이 합쳐진 형태이다.
- 멀티캐스트 라우팅 프로토콜: IP 주소로 구분되는 네트워크 상의 특정 그룹의 모든 사용자에게 동일한 메시지를 전송하기 위한 라우팅 프로토콜
- IGMP(Internet Group Management Protocol): 멀티캐스트를 지원하는 라우터가 멀티캐스트 그룹에 가입한 네트워크 내의 호스트를 관리하기 위해 사용하는 프로토콜 ex) IPTV
- 애니캐스트(anycast) 프로토콜: 하나의 호스트에서 그룹 내 가장 가까운 곳에 있는 수신자에게 데이터를 전달하는 프로토콜
프로토콜(protocol)
네트워크에서 서로 다른 시스템이나 기기들 간 원활한 데이터 교환을 위해 합의된 규칙이나 방법
- 기본요소
- 구문: 데이터 형식, 인코딩 방식 등 정의
- 의미: 흐름, 오류, 동기화 제어 정의
- 타이밍(순서): 시스템 간 통신 속도나 순서 등 정의
모든 프로토콜은 목적과 특징을 지니며, 그에 따른 패킷 헤더를 가진다. 예시는 아래와 같다.
| 프로토콜 | 목적 or 특징 |
|---|
| IP | 네트워크 간 주소 지정 |
| ARP | IP 주소와 MAC 주소를 대응 |
| HTTPS | 보안상 HTTP에 비해 안전 |
| TCP | UDP에 비해 신뢰성이 높음 |
네트워크 참조 모델
통신이 이루어지는 단계를 계층적으로 표현한 것이다.
패킷을 송신하는 측에서는 상위 계층에서 하위 계층으로 정보를 보내고, 패킷을 수신하는 측에서는 하위 계층에서 상위 계층으로 정보를 받아들인다. 이때, 프로토콜은 두 호스트가 네트워크 참조 모델을 통해서 메시지를 송수신할 때 계층별로 적용되는 경우가 일반적이다.
- 프로토콜 스택(Protocol Stack): 데이터 통신에 활용되는 프로토콜의 구조에 관한 개념으로, 계층화된 구조(스택 구조)로 모여 있는 프로토콜의 집합을 의미한다.
OSI 7 layer
OSI(Open System Interconnection) 7 Layer는 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 의미한다.
국제 표준화 기구(ISO, International Organization for Standardization)에서 만들었다.
TCP/IP 모델
TCP/IP 모델은 네트워크 액세스 계층과 인터넷 계층, 전송 계층, 응용 계층으로 구성된다.
- TCP/IP: 패킷 통신 방식의 인터넷 프로토콜인 IP(인터넷 프로토콜)와 전송 조절 프로토콜인 TCP(전송 제어 프로토콜)로 이루어져 있다. 이때, IP는 패킷 전달 여부를 보증하지 않기 때문에, 패킷을 보낸 순서와 받는 순서가 다를 수 있다(unreliable datagram service). TCP는 IP 위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다. HTTP, FTP, SMTP 등 TCP를 기반으로 한 여러 애플리케이션의 프로토콜들이 IP 위에서 동작하기 때문에, 묶어서 TCP/IP로 부르기도 한다.
인터넷 프로토콜 스위트
인터넷에서 컴퓨터들이 서로 정보를 주고 받는 데 쓰이는 프로토콜의 모음으로, 이중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP 프로토콜 슈트라고도 불린다.
OSI 모델과 TCP/IP 계층의 차이
OSI 표준 모델은 장비 개발과 통신 자체를 어떻게 표준으로 잡을 지에 관한 이론적 모델이다. 반면, TCP/IP 모델은 구현과 프로토콜에 중점을 두며, 실질적인 통신을 설명할 때 주로 사용된다.
PDU(Protocol Data Unit)
네트워크 구조에서 정보를 실어 나르는 기본 단위
- 응용: message(또는 data)
- 전송: segment(TCP), datagram(UDP)
- 네트워크: packet(또는 datagram)
- 데이터 링크: frame
- 물리: bit(또는 symbol)
UDP와 IP 모두 datagram?
UDP는 전송 계층에서 해야 할 최소한의 역할만 수행하므로 사실상 네트워크 계층의 datagram에 껍데기만 씌운 것이라 볼 수 있다. 따라서 UDP 기반의 패킷의 경우 datagram이라 불린다.
캡슐화와 역캡슐화
패킷의 송신 과정에서는 캡슐화가 이루어지고, 수신 과정에서는 역캡슐화가 이루어진다. 이때, 각각의 의미는 다음과 같다.
- 캡슐화(encapsulation): 송신 과정에서 헤더(및 트레일러)를 추가해 나가는 과정
- 역캡슐화(decapsulation): 캡슐화 과정에서 붙인 헤더(및 트레일러)를 각 계층에서 확인한 뒤 제거하는 과정
참고자료
[취업을 위한 CS 지식] 27강. 네트워크의 큰 그림
프로토콜 스택이란 무엇인가?
데이터? 세그먼트? 패킷? 헷갈릴 땐 PDU를 알아보자