네트워크 - 기본 개념과 키워드
Network
이제부터 멀티플레이를 위한 네트워크 개념과 키워드를 공부한다.
이 분야는 진짜 아무것도 몰라서 강의를 들으면서 이해가 하나도 되지 않았기에에 우선 키워드부터 정리해봤다.
아직 프로토콜, 도메인, 토폴로지, 레이어 등등 정리 못한 부분도 있기에 내일 추가로 정리할 예정이다.
네트워크 서비스
네트워크 서비스란 네트워크 프로토콜에 기반한 클라이언트-서버 또는 P2P 아키텍처를 사용하여 구현되는 네트워크 응용 계층 이상에서 실행되는 애플리케이션이다.
앱 서비스나 웹 서비스는 접속 시 보여줘야 할 이미지 파일, 개발 로직 등의 파일이 존재한다. 따라서 사용자가 서비스에 접속하면 이 파일들을 다운로드하는 과정이 필요하다. 즉, 네트워크에 접속한 상태여야 서비스를 이용할 수 있다.
사용자들은 실제 서비스가 업로드된 서버로부터 필요한 파일을 다운로드한다.
노드
보통 네트워크에 연결된 하나의 기기를 의미한다. 네트워크에 연결된 컴퓨터뿐만 아니라 허브나 프린터도 노드라고 부를 수 있다. 즉, 네트워크에 연결된 모든 장비를 노드라고 보면 된다.
노드의 종류
노드는 두 가지로 나눌 수 있다.
물리적 노드
물리적으로 존재하는 네트워크 장비를 의미하며, 네트워크에 연결된 모든 기기는 물리적 노드다.
이러한 노드는 다시 두 가지로 분류할 수 있다.
엔드 노드(End Node): PC, 스마트폰, 프린터와 같이 데이터를 생성하거나 최종적으로 받는 장치
중간 노드(Intermediate Node): 라우터, 스위치, 허브, 중계기와 같이 데이터를 전달하고 경로를 결정하는 장치
논리적 노드
하나의 물리적 장비가 여러 개의 네트워크 인터페이스(IP, MAC 주소)를 가지면 각각을 개별 노드로 볼 수 있다.
예를 들어, 공유기가 LAN과 WAN을 동시에 관리하는 경우 각각을 하나의 논리적 노드로 취급한다.
즉, 물리적 노드는 실제 장비를 의미하고, 논리적 노드는 네트워크에서 인식하는 단위다.
링크
노드 간 데이터를 전송하는 연결을 의미한다.
링크의 종류
유선 링크
이더넷(Ethernet): LAN에서 가장 많이 사용됨
광케이블(Fiber Optic): 장거리, 고속 데이터 전송 가능
무선 링크
Wi-Fi: 무선 LAN을 위한 기술
Bluetooth: 근거리 무선 통신
트래픽, 처리량, 대역폭
트래픽
특정 시점에 링크 내에서 흐르는 데이터의 양을 의미한다. 서버에 저장된 데이터를 클라이언트가 다운로드할 경우 발생하는 데이터의 누적량이 트래픽이다.
단위는 bps(bit per second)이며, 예를 들어 100KB 이미지를 1,000명이 다운로드한다면 누적 트래픽은 100KB × 1,000 = 100,000KB (100MB)가 된다.
트래픽이 많아지면 로딩 속도가 느려지므로 트래픽을 경량화하는 작업이 필요하다. 예를 들어, 벡터 형식의 이미지 사용이나 웹 페이지의 CSS 파일 압축 등이 있다.
참고로, 트래픽이 서버의 한계를 초과하면 서버가 다운될 수 있으며, 이를 악용한 것이 DoS(Denial of Service) 공격이다.
처리량
링크를 통해 성공적으로 전달된 데이터의 양을 의미하며, 얼만큼의 트래픽을 처리했는지를 나타낸다.
단위는 트래픽과 동일한 bps를 사용하며, 초당 전송할 수 있는 데이터 양을 측정한다.
대역폭
주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수를 의미한다.
이론적으로 처리할 수 있는 최대 트래픽으로 볼 수 있으며, 대역폭이 높을수록 더 빠른 서비스 제공이 가능하다. 또한, 최대 동시 접속자 수를 예측하는 척도로도 사용된다.
단위는 bps를 사용하며, 예를 들어 100Mbps 대역폭을 가진 서버가 있다면 1,000명의 사용자가 100kbps 속도로 동영상 파일을 요청할 수 있다.
🚨 처리량과의 차이점
대역폭: 이론상 최대 전송 속도
처리량: 실제 전송 속도 (네트워크 혼잡, 패킷 손실 등의 영향으로 대역폭보다 낮을 수 있음)
예를 들어, 1Gbps 대역폭을 가진 네트워크라도 네트워크 상태에 따라 처리량은 500Mbps일 수도 있다.
요약
트래픽: 전체 데이터 크기
처리량: 초당 전송할 수 있는 데이터 양
RTT (Round Trip Time)
패킷이 클라이언트에서 서버로 가고 다시 돌아오는 데 걸리는 시간을 의미한다.
RTT = 신호 전송 시간 + 서버 처리 시간 + 네트워크 장비에서의 지연 시간
네트워크 성능 측정 시 핑(Ping) 테스트를 통해 RTT 값을 확인할 수 있다.
데이터 전송 방식
데이터 전송 방식은 크게 3가지로 나뉜다.
단방향 통신
송신자와 수신자가 정해져 있으며, 송신자만 데이터를 전송할 수 있다.
예시: TV, 라디오
반이중 통신
양방향 통신 가능하지만 동시에 송수신 불가능
예시: 무전기
전이중 통신
양방향 통신 가능하며 동시에 송수신 가능
예시: 전화