네트워크
네트워크
네트워크(Network)란 장치들(컴퓨터, 스마트폰, 서버 등)이 서로 연결되어 데이터를 주고받을 수 있는 구조를 의미합니다.
네트워크의 기본 구성요소는 크게 3가지입니다.
- 노드(Node)
- 네트워크의 기본 단위입니다.
- 엔드 노드(End Node)와 중간 노드(Intermediate Node) 두 종류
- 기능
- 통신: 다른 노드와 데이터 교환 기능
- 라우팅: 데이터가 목적지에 도달할 수 있도록 최적의 경로를 선택하는 기능
- 데이터 처리: 데이터를 패킷화, 패킷 분할 / 재조립, 오류검사 등의 기능
- 네트워크 관리: 상태감시, 트래픽 관리, 보안
컴퓨터-컴퓨터
,서버-컴퓨터
,서버-서버
,서버-스위치
,스위치-스위치
,스위치-라우터
등
- 링크(Link)
- 노드 간 데이터를 전송하는 연결
- 유선: 이더넷, 광섬유, 케이블 등
- 무선: Wifi, 블루투스 등
- 노드 간 데이터를 전송하는 연결
- 프로토콜(Protocol)
- 데이터의 전송규칙(
TCP
,UDP
,HTTP
,HTTPS
,FTP
등)
- 데이터의 전송규칙(
네트워크의 배치 형태
네트워크의 배치 형태(Topology)는 물리적 및 논리적 구조에 따라 6가지로 나뉩니다.
- P2P: 두 대의 장치를 직접 연결하는 방식
- 과거에 시리얼 포트 또는 크로스 UTP 케이블로 연결하는 구성
- 버스(Bus): 1개의 BNC 케이블(케이블 TV 동축 케이블)에 여러 대의 컴퓨터를 연결하는 구성
- 전체에 브로드캐스팅(Broadcasting)하면 수신 측이 자기 것만 채택하고 나머지는 무시
- 링(Ring): 1개의 BNC 케이블을 원형으로 만든 뒤에 여러 대의 컴퓨터를 연결하는 구성
- 버스에 비해서 양방향 통신이 가능하지만, 버스와 같이 초기 네트워크에서 구성되던 형태
- 스타(Star): 중앙 허브(Hub) 또는 스위치(Switch)를 중심으로 연결된 구조
- 대부분의 가정과 사무실, IDC 센터 등에서 채택하는 구조
- 중간 허브/스위치가 고장나면 전체가 고장나는 형태
- 메쉬(Mesh):
1:N
의 구성으로 신뢰성이 높지만, 복잡하고, 비용이 비쌈- 군사 분야 및 무선 네트워크에 주로 사용
- 트리(Tree): 스타 토폴로지를 확장한 널리 사용되는 형태
- 회사, IDC 센터, ISP 사업자 등
HUB(허브)와 SWITCH(스위치)는 여러 장치를 네트워크로 연결하는 장치입니다.
구분 | HUB | SWITCH |
---|---|---|
동작 방식 | 받은 데이터를 모든 포트로 전송 | 받은 데이터를 목적지 포트로만 전송 |
데이터 전달 | 브로드캐스트 방식(모든 장치에 보냄) | MAC 주소 기반으로 필요한 곳에만 보냄 |
속도 | 충돌(Collision) 발생 가능 → 느림 | 충돌 없음 → 더 빠름 |
보안 | 보안 위약(모든 장치가 데이터 수신) | 보안 우수(필요한 장치에만 전송) |
사용 목적 | 작은 네트워크에서 단순 연결 | 기업, 학교 등에서 효율적인 데이터 전송 |
HUB는 데이터를 모든 장치에 전송하기 때문에 불필요한 데이터 흐름이 많아 속도가 느립니다.
SWITCH는 데이터를 필요한 장치에만 전달해서 속도와 보안이 뛰어납니다.
네트워크의 레이어
네트워크의 레이어(Layer)는 데이터를 주고받는 과정을 계층적으로 나누어 설명하는 개념입니다.
대표적인 모델로는 OSI 7계층 모델과 TCP/IP 4계층 모델이 있습니다.
OSI 7계층 모델은 응용 소프트웨어에서 생성한 신호가 어떻게 네트워크를 통해 다른 곳으로 전달되는지를 정의한 표준모델입니다.
총 7개의 층(Layer)로 구성됩니다.
- 물리(Physical) 계층(L1)
- 물리적 매체로 케이블, 전기신호, 광신호를 직접 관리
이더넷
,USB
,블루투스 디바이스
등
- 데이터링크(Data Link) 계층(L2)
- 물리계층에서 전달된 비트를 프레임으로 변환하고, 에러검사, 흐름제어, 링크관리
MAC Address
,MAC 프로토콜
,PPP(Point-to-Point Protocol)
등
- 네트워크(Network) 계층(L3)
- 데이터를 목적지까지 옮기는 역할로 패킷의 경로를 결정하고 패킷 주소를 관리
IP (Internet Protocol)
,IPX
,라우터
등
- 전송(Transport) 계층(L4)
- 데이터 전송을 관리하며, 흐름제어, 오류제어, 세그먼트화, 연결설정, 해제를 담당하며 논리적 포트를 사용
TCP(Transmission Control Protocol)
,UDP(User Datagram Protocol)
- 세션(Session) 계층(L5)
- 통신의 세션을 설정, 관리하며, 데이터 교환 동기화(Sync)와 체크포인트 관리를 담당
RPC(Remote Procedure Call)
,NetBIOS
- 표현/프레젠테이션(Presentation) 계층(L6)
- 데이터 형식을 변환하고 암호화 및 압축처리
SSL/TLS
,JPEG
,MPEG
등
- 응용/어플리케이션(Application) 계층(L7)
- 네트워크 서비스에 접근하고 UI제공 담당
HTTP
,FTP
,SMTP
,DNS
등
세션 계층(L5)부터 응용/어플리케이션 계층(L7)은 응용 소프트웨어 개발자가 할 수 있는 일입니다.
OSI 모델에 적용되는 계층에 따라 스위치의 종류가 달라집니다.
참조데이터 | 용도 | |
---|---|---|
L2스위치 | MAC 주소 테이블 | 스위치에 연결된 디바이스 간의 통신을 담당 |
L3스위치 | 라우팅 테이블 | 라우팅 테이블을 참조하여 인접 라우터를 기억하고 원거리 통신 |
L4스위치 | 포트번호 | 포트번호를 사용해 트래픽을 분배(로드밸런싱)하는 역할 |
L7스위치 | 데이터기반 | HTTP헤더, URL, 쿠키 등의 어플리케이션 데이터를 기반으로 한 로드밸런싱, 보안 적용 |
세션은 클라이언트(예: 플레이어)와 서버 간의 통신이 시작되고 유지되는 동안의 논리적 연결입니다.
예로 들어, 게임 세션이 연결되어 있는 동안 플레이어의 상태(State)는 유지되고, 세션이 끊기면 플레이어의 상태는 사라집니다.
네트워크의 유형
네트워크는 목적, 범위에 따라 다양한 유형으로 나뉩니다.
- 개인 통신망 - PAN(Personal Area Network): 개인용 네트워크로 짧은 거리(1 ~ 10m)에서 동작
- 저전력으로 동작
- 블루투스, Zigbee, NFC 등
- 근거리 통신망 - LAN(Local Area Network): 근거리 통신망으로 수백 m ~ 수 km까지 통신
- 속도가 빠르고(일반적으로 1Gbps 이상) 안정적
- 이더넷(Ethernet)과 Wi-Fi
- 사무실, 집, 학교 등
- 도시권 통신망 - MAN(Metropolitan Area Network): 도시단위 통신망으로 수 km ~ 수십 km
- 고속 네트워크(일반적으로 10Gbps 이상)
- 광섬유(Fiber Optic)기반
- 도시내 공공기관 등
- 광역 통신망 - WAN(Wide Area Network): 광역 통신망으로 도시, 국가, 대륙 간 수백 ~ 수천 km
- 속도가 LAN보다 상대적으로 느림(수 Mbs ~ 수십 Gbps)
- 다양한 네트워크 기술(광섬유, 위성, 5G 등) 사용
- ISP 네트워크, 다국적 기업의 지사 연결 등
- 캠퍼스 네트워크 - CAN(Campus Area Network): 일반적으로 MAN과 LAN의 중간 규모
- 높은 보안과 속도가 중요
- 여러 개의 LAN을 연결해 독립적인 네트워크 구성
- 대학교 기숙사, 도서관, 강의실, 군부대, 공장 내 네트워크 등
- 스토리지 네트워크 - SAN(Storage Area Network): 서버와 스토리지(저장 장치)간 고속 데이터 전송
- 초고속(일반적으로 10 ~ 100 Gbps 이상)
- 주로 광섬유 채널(Fiber Channel) 사용
- 데이터베이스 서버, 클라우드 스토리지
- 가상 사설망 - VPN(Virtual Private Network): 공용 네트워크(인터넷)에서 사설 네트워크처럼 안전하게 통신하는 기술
- 데이터를 암호화해 보안 강화
- 원격 근무, 해외 접속 차단 우회 등
프로토콜
프로토콜(Protocol)이란 네트워크에서 데이터를 주고받을 때 사용하는 약속된 규격을 뜻합니다.
HTTP/HTTPS
, SMTP
, FTP
와 같은 프로토콜은 어플리케이션 계층(L7)에서 작동하는 프로토콜입니다.
웹 리소스 전송에는 HTTP/HTTPS
를 사용하고, 이메일은 SMTP
, 파일전송에는 FTP
를 사용합니다.
인터넷에서 가장 많이 사용하는 프로토콜은 TCP(Transmission Control Protocol)
/IP(Internet Protocol)
입니다.
네트워크에서 데이터를 전송할 때 사용하는 전송 프로토콜인 TCP
와 UDP
를 알아보겠습니다.
TCP
와 UDP
모두 IP(Internet Protocol)
를 기반으로 데이터를 주고 받지만, 데이터 전달 방식과 안정성에 차이가 있습니다.
IP
란 네트워크 계층에서 작동하며 IP
주소를 사용해서 패킷을 옮기는 역할로 모든 인터넷의 기반기술입니다.
- TCP: 데이터를 정확하게 전달하기 위해 연결을 설정하고, 오류를 확인하며 전송하는 프로토콜
- 데이터를 보낸 후 수신 여부를 확인함
- 데이터가 순서대로 도착하도록 번호 부여
- 수신 속도에 맞춰 조절하여 손실 방지
- 오류 검출 및 데이터가 손실되면 재전송
- UDP: 데이터를 빠르게 전송하지만, 오류 확인이나 순서 보장은 하지 않는 프로토콜
- 연결 설정 없이 바로 전송
- 간단한 구조로 네트워크 부하가 적다.
- 순서가 보장되지 않아 데이터가 뒤죽박죽으로 도착할 수 있다.
- 오류를 검출하지 않고, 데이터가 손실 될 수 있다.
일반적으로는 속도보다 안정성이 중요하므로 TCP
를 사용합니다.
게임업계에서는 안정성보다 속도가 중요하기 때문에, UDP
를 사용합니다.
아래 이미지는 TCP/IP
에서 데이터가 계층별로 어떻게 구성되고 캡슐화되는지를 시각적으로 보여주는 다이어그램입니다.
MAC Address
MAC Address(미디어 액세스 제어 주소, Media Access Control Address)는 네트워크 인터페이스 카드(NIC)에 할당된 고유한 식별자입니다.
네트워크 인터페이스 카드(NIC)는 제조 과정에서 MAC Address가 할당되므로 동일한 주소를 가진 장치는 없으나 일부 예외는 있습니다.
데이터 링크 계층을 위한 고유 주소체계로 총 21조 개의 주소가 있습니다.
데이터 링크 계층(2계층)에서 MAC Address를 이용해 실제 장치 간 통신을 수행합니다.
주로 이더넷(Ethernet) 또는 Wi-Fi 네트워크에서 장치를 식별하는 데 사용됩니다.
총 6바이트(48bit)이며, 16진수로 총 12자리(6쌍)로 구성됩니다.
앞의 3바이트(24bit)는 IEEE 국제표준기구에서 할당한 제조사 ID(OUI, Organizationally Unique Identifier)를 나타냅니다.
뒤의 3바이트(24bit)는 제조사가 해당 장치에 할당한 고유한 값을 나타냅니다.
MAC Address는 일반적으로 ROM(Read Only Memory)에 탑재되어, 보안상의 이유로 고유한 장비를 식별하는 데 사용됩니다.
기본적으로 변경할 수 없지만, 소프트웨어적으로 변경할 수도 있으며, 이를 MAC 스푸핑이라고 합니다.
일부 운영체제에서는 명령어나 네트워크 설정을 통해 변경이 가능합니다.
메모리에 저장되므로, 메모리 해킹 등의 방법으로 변경될 수 있습니다.
IPv4
IPv4(Internet Protocol version 4)는 인터넷에서 사용되는 네트워크 주소 체계의 네 번째 버전으로, 현재까지 가장 널리 사용되는 IP(Internet Protocol) 주소 체계입니다.
IPv4 주소는 네트워크 상에서 장치를 식별하고 데이터를 올바른 목적지로 전송하는 역할을 합니다.
네트워크 계층(L3)에서 사용하는 주소 체계입니다.
총 4바이트(32bit)이며, 1바이트(8bit)씩 4개의 부분으로 구성됩니다.
각 부분은 옥텟(Octet)이라고 부르며, 0~255 범위의 십진수로 표현하고, 점으로 구분합니다.
최대 약 43억 개$(2^32 = 4,294,967,296)$의 주소 제공하지만, 네트워크 분할, 사설 IP, 브로드캐스트 등의 이유로 실제 사용 가능한 공인 IP 주소는 훨씬 적습니다.
이러한 IP 부족 문제를 해결하기 위해 IPv6(128비트 주소 체계)가 등장했습니다.
IPv4 주소는 A, B, C, D, E 클래스로 나뉘며, 네트워크의 크기에 따라 할당됩니다.
클래스 | 첫 번째 옥텟 | 전체 IP 범위 | 용도 |
---|---|---|---|
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 ~ 255.255.255.255 | 연구용 |
IP 주소가 MAC Address로 변환되려면, ARP(Address Resolution Protocol)을 사용합니다.
내부망에 있다면 ARP
프로토콜로 해당 IP를 갖고 있는 디바이스로 브로드캐스팅해서 응답이 오는 디바이스에 데이터를 전송합니다.
외부망에 있다면 게이트웨이를 찾기 위해 ARP
프로토콜을 브로드캐스팅합니다.
서브넷 마스크(Subnet Mask)는 IP주소에서 네트워크 주소와 호스트 주소를 구분하기 위해 사용됩니다.
같은 서브넷 마스크 주소를 가지고 있다면 내부망, 다른 서브넷 마스크 주소를 갖고 있다면 외부망이라고 판단합니다.
서브넷 마스크 | CIDR 표기법 | 호스트 개수 | 비고 |
---|---|---|---|
255.0.0.0 | /8 | 16,777,214 | A 클래스 |
255.255.0.0 | /16 | 65,534 | B 클래스 |
255.255.255.0 | /24 | 254 | C 클래스 |
255.255.255.128 | /25 | 126 | |
255.255.255.192 | /26 | 62 |
서브넷 마스크는 CIDR(Classless Inter-Domain Routing) 표기법과 점으로 구분된 십진수 표기법이 있습니다.
CIDR 표기법은 0 ~ 32까지의 값을 가지며, 8비트씩 끊어서 표현합니다.
/24는 앞에서 24비트가 네트워크 부분이라는 의미입니다. (255.255.255.0과 동일)
남은 8비트(256개 IP 중 2개(네트워크 주소, 브로드캐스트 주소) 제외한 254개)가 호스트 주소로 사용됩니다.
서브넷 마스크 /24 에 대해 192.168.0.1 ~ 192.168.0.254 까지 총 254개의 디바이스가 접속이 가능합니다.
브로드캐스트 IP는 192.168.0.255 입니다.
사설 IP와 공인 IP간의 주소를 변환하기 위한 기술이 NAT(Network Address Translation)입니다.
1개의 IP 주소를 여러 대의 Device가 나눠쓸 수 있도록 해줍니다.
대표적으로 인터넷 공유기가 있습니다.
IP주소 개수 제한 문제로 인해 DHCP(Dynamic Host Configuration Protocol) 서버가 등장했습니다.
DHCP 서버는 네트워크 내에서 장치들이 자동으로 IP 주소를 할당받을 수 있도록 도와주는 시스템입니다.
IP 포트
IP 포트(Port)는 네트워크에서 특정 애플리케이션이나 서비스와의 통신을 구분하는 번호입니다.
전송 계층(L4)에서 IP 주소와 함께 사용하며, 특정 프로세스나 서비스를 연결하기 위해 사용합니다.
0~65535의 값을 가지며, 대표적으로 80번 포트는 웹서비스를 뜻합니다.
1개의 IP 주소에서 여러 개의 서비스를 제공하기 위해서 사용됩니다.
- 0 ~ 1023
- 서버의 기본 서비스로 잘 알려진 대역
- HTTP: 80
- HTTPS: 443
- FTP: 21
- SSH: 22
- SMTP: 25
- IMAP: 143, 993
- 1024 ~ 49151
- 응용 프로그램 또는 서비스로 등록된 대역
- 49152 ~ 65535
- 동적 또는 사설 포트입니다.
공인 IP와 사설 IP의 포트를 변환할 때는 IP와 비슷하게 PAT(Port Address Translation)를 사용합니다.
도메인 이름
도메인 이름(Domain name)은 공인 IP주소 대신 사용하는 사람이 이해하기 쉬운 형식을 말합니다.
DNS
를 통해 변환하며, 해석할 때는 왼쪽에서 오른쪽으로 합니다.
DNS 서버는 도메인 이름 테이블을 확인해서 IP 주소로 변경하면, 클라이언트는 IP 주소로 접속할 수 있습니다.
네트워크 장비
- HUB
- 과거에 스위치보다 가격이 저렴해 사용되었지만, 성능과 효율이 떨어진다.
- 소규모 네트워크에서는 아직 쓰이는 곳이 있다.
- 스위치
- LAN 내부에서 데이터를 전송하는 역할로 MAC Address로 직접 전달
- 라우터
- 네트워크간 IP 주소를 기반으로 데이터 전송을 담당
- 모뎀
- 아날로그 신호를 디지털로, 디지털 신호를 아날로그 신호로 변환
- 방화벽
- 특정 IP 주소 또는 도메인의 트래픽을 차단하거나 허용
- 트래픽을 필터링하거나 NAT(Network Address Translation)으로 내부 네트워크의 IP주소를 외부로 노출되지 않게 한다.
- 가상사설망(VPN, Virtual Private Network)으로 추적 불가한 접속을 가능케 하는 등의 역할
- VPN (Virtual Private Network)
- UP 주소를 VPN 주소로 변경
- 추적에 안전
- VPN 서버를 통해 우회접속이 가능
- 캐시 서버(Cache)
- 웹, Restful API, API 서버로 요청을 하면, 미들웨어를 거쳐 최종적으로 DB에서 데이터를 획득하는데, 동일한 요청과 결과라면 이를 임시로 저장했다가 서버대신 결과를 반환하는 장비
용어 정리
- OSI 모델(7 network layer): 네트워크 통신을 가능케하는 표준 모델
- 프로토콜: 약속된 통신 규약
- TCP: 전송 후 데이터를 확인하는 안정성 우선 프로토콜
- UDP: 전송 후 데이터 확인 없는 속도 우선 프로토콜
- Reliable UDP: 안정성과 속도를 동시에 잡기위한 프로토콜
- QUIC: HTTP/3 에 제안된 UDP 기반의 프로토콜
- IP: 인터넷 기반 전송 프로토콜
- IP Port: IP주소와 함께 사용해서 1개의 서버에서 여러 개의 서비스를 제공할 수 있도록 해주는 역할
- MAC Address: 네트워크 장비에 1개씩 할당된 고유 주소
- IP4/6 Address: 국가별, 지역별, ISP별로 할당된 주소
- 도메인 이름: 사람이 읽고, 쓰고, 기억하기 위한 주소 체계, DNS를 통해서 IP주소로 변환
- DNS: 도메인을 IP주소로 변환
- DHCP: IP주소를 여러 대의 디바이스가 공유하게 하는 서버
- 서버: 중앙에서 어떤 처리를 담당하는 컴퓨터
- DB 서버: 데이터 베이스로 데이터를 저장하고 읽는 서버
- 웹 서버: HTTP(80/443번 포트) 서비스를 담당하는 서버
- Restful API 서버: JSON 기반의 데이터를 송수신하는 서버
- API 서버: Socket 또는 다른 프로토콜 등으로 데이터 베이스의 앞에서 게이트 역할을 하는 서버
- 방화벽 서버: 세션을 제어하기 위한 서버
- 클라이언트: 네트워크에 접속하여 다른 클라이언트와 통신하거나 서버를 사용하는 디바이스
댓글남기기