본문 바로가기

Study/Book

네트워크 용어정리

반응형

네트워크

노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합

- 노드 : 서버, 라우터, 스위치 등 네트워크 장치를 의미

- 링크 : 유선 또는 무선을 의미

 

1. 처리량과 지연시간

* 처리량

링크 내에서 성공적으로 전달된 데이터의 양을 말한다.

많은 트랙픽을 처리한다 = 많은 처리량을 가진다

단위 - bps (초당 전송 또는 수신되는 비트 수)

 

* 트래픽

특정 시점에 링크 내에 흐르는 데이터의 양

- 트래픽이 많아졌다 = 흐르는 데이터가 많아졌다.

- 처리량이 많아졌따 = 처리되는 트래픽이 많아졌다.

 

* 대역폭

주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수

 

*지연 시간

요청이 처리되는 시간, 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간

매체 타입 (무선, 유선), 패킷 크기, 라우터의 패킷 처리 시간에 영향을 받음

 

2. 네트워크 토폴로지와 병목 현상

* 네트워크 토폴로지

노드와 링크가 어떻게 배치되어 있는지에 대한 방식

트리(tree) 계층형 토폴로지. 트리 형태로 배치
- 노드의 추가, 삭제가 쉬움 
- 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있음
버스(bus) 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성
- 근거리 통신망(LAN)에서 사용
- 설치 비용이 적고 신뢰성이 우수
- 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉬움
- 스푸핑이 가능한 문제점이 있음
스타(star, 성형) 중앙에 있는 노드에 모두 연결된 네트워크 구성
- 노드를 추가하거나 에러를 탐지하기 쉽고 패킷의 충돌 발생 가능성 적음
- 중앙 노드에 장애가 발생하면 전체 네트워크를 사용할 수 없고 설치 비용이 고가임
링형(ring) 각각의 노드가 양 옆의 두 노드와 연결하여 전체적으로 고리처럼 하나의 연속된 길을 통해 통신하는 망 구성 방식
- 데이터는 노드에서 노드로 이동
- 각각의 노드는 고리 모양의 길을 통해 패킷을 처리
- 노드 수가 증가되어도 네트워크상의 손실이 거의 없고 충돌이 발생되는 가능성이 적음.
- 네트워크 구성이 어렵고 회선에 장애가 발생하면 전체 네트워크에 영향을 크게 끼침
메시(mesh) 망형 토폴로지. 그물망처럼 연결되어 있는 구조
- 한 단말 장치에 장애가 발생해도 여러 개의 경로가 존재하므로 네트워크를 계속 사용할 수 있음
- 트래픽도 분산 처리 가능
- 노드의 추가가 어렵고 구축 비용과 운용 비용이 고가

 

*스푸핑

LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 노드에 해당 패킷이 오도록 처리하는 것

 

* 병목 현상

전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상

- 네트워크가 어떤 토폴로지를 갖는지 알아야 병목 현상을 올바르게 해결할 수 있음

 

3. 네트워크 분류

규모를 기반으로 분류

LAN(Local Area Netwrok) MAN(Metropolitan Area Network) WAN(Wide Area Network)
근거리 통신망
- 같은 건물이나 캠퍼스 같은 좁은 공간
- 전송속도가 빠르고 혼잡하지 않다
대도시 지역 네트워크
- 도시 같은 넓은 지역에서 운영
- 전송속도는 평균,
광역 네트워크
- 국가 또는 대륙 같은 더 넓은 지역
- 전송속도는 낮고, MAN보다 혼잡

 

4. 네트워크 성능 분석 명령어

네트워크 병목 현상의 주된 원인

- 네트워크 대역폭

- 네트워크 토폴로지

- 서버 CPU, 메모리 사용량

- 비효율적인 네트워크 구성

 

네트워크 성능 분석에 사용되는 명령어

* ping

네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어

 

* netstat

접속되어 있는 서비스들의 네트워크 상태 표시

 

* nslookup

DNS에 관련된 내용 확인. 특정 도메인에 매핑된 IP 확인

 

* tracert (윈도우) / traceroute (리눅스)

목적지 노드까지 네트워크 경로를 확인할 때 사용

 

5. 네트워크 프로토콜 표준화

 

* 네트워크 프로토콜

다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스

 

TCP/ IP 4계층 모델

애플리케이션 계층 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공하는 층
- FTP : 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜
- SSH : 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
- HTTP : World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜
- SMTP : 전자 메일 전송을 위한 인터넷 표준 통신 프로토콜
- DNS : 도메인 이름과 IP 주소를 매핑해주는 서버
전송 계층 송신자와 수신자를 연결하는 통신 서비스를 제공
- TCP : 패킷 사이의 순서를 보장. 연결지향 프로토콜을 사용해서 연결을 하여 신뢰성을 구축해서 수신 여부를 확인. '가상회선 패킷 교환 방식'을 사용
- UDP : 순서를 보장하지 않고 수신 여부를 확인하지 않으며 단순히 데이터만 주는 '데이터그램 패킷 교환 방식' 사용.
인터넷 계층 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층
링크 계층 네트워크 접근 계층이라고도 한다.
전선, 광섬유, 무선 등으로 실질적으로 데이터를 전달하며 장치 간에 신호를 주고받는 규칙을 정하는 계층
- 물리계층 : 무선LAN, 유선 LAN을 통해 데이터를 보내는 계층
- 데이터 링크 계층 : 이더넷 프레임을 통해 에러 확인, 흐름 제어, 접근 제어를 담당하는 계층

 

* 가상 회선 패킷 교환 방식

각 패킷에는 가상회선 식별자가 포함되며 모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 '순서대로' 도착하는 방식

 

* 데이터그램 패킷 교환 방식

패킷이 독립적으로 이동하며 최적의 경로를 선택하여 가는데, 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며 도착한 '순서가 다를 수' 있는 방식

 

* TCP 연결 성립 과정

TCP는 신뢰성을 확보할 때 '3-웨이 핸드세이크(3-way handshake)'라는 작업을 진행

- SYN 단계

- SYN + ACK 단계

- ACK 단계

 

* TCP 연결 해제 과정

TCP가 연결을 해제할 때는 4-웨이 핸드셰이크(4-way handshake) 과정이 발생

 

네트워크 기기

  • 네트워크 기기는 계층별로 처리 범위를 나눌 수 있다. - 상위계층을 처리하는 기기는 하위 계층을 처리할 수 있다. 반대는 안됨
  • 애플리케이션 계층을 처리하는 기기 - L7 스위치
  • 인터넷 계층을 처리하는 기기 - 라우터, L3 스위치
  • 데이터 링크 계층을 처리하는 기기 - L2 스위치, 브리지
  • 물리 계층을 처리하는 기기 - NIC, 리피터, AP

IP 주소

* ARP

IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜

ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC주소로 변환한다.

RARP를 통해서는 실제 주소인 MAC주소를 IP 주소로 변환한다.

 

* 브로드 캐스트

송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식

 

* 유니캐스트

고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 데이터를 전송하는 방식

 

* 홉바이홉 통신

IP 주소를 통해 통신하는 과정을 홉바이 홉이라고 한다.

홉(hop) : 건너뛰는 모습. 통신망에서 각 패킷이 여러 개의 라우터를 건너가는 모습을 표현

 

* 라우팅

IP 주소를 찾아가는 과정

 

* 라우팅 테이블

송신지에서 수신지까지 도달하기 위해 사용

라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트

 

* 게이트 웨이

서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 소프트웨어

 

* IP 주소 체계

- IPv4 : 32비트를 8비트 단위로 점을 찍어 표기

- IPv6 : 64비트를 16비트 단위로 점을 찍어 표기

 

*DHCP(Dynamic Host Configuration Protocol)

IP 주소 및 기타 통신 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜

이 기술을 통해 인터넷에 접속할 때마다 자동으로 IP 주소를 할당할 수 있다.

 

* NAT(Network Address Translation)

패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법

ex) NAT로 공인IP와 사설IP로 나눠서 많은 주소를 처리

 

HTTP

기본적으로 HTTP는 전송 계층 위에 있는 애플리케이션 계층으로 웹 서비스 통신에 사용된다.

HTTP/1.0부터 발전하여 현재는 HTTP/3이다.

 

HTTP/1.0

기본적으로 한 연결당 하나의 요청을 처리하도록 설계되어 있음. -> RTT 증가를 불러오게 됨

 

* RTT

패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간 (패킷 왕복 시간)

 

RTT의 증가를 해결하기 위한 방법

- 이미지 스플리팅 : 많은 이미지가 합쳐졎 있는 하나의 이미지를 다운받고, 이를 기반으로 background-image의 position을 이용하여 이미지를 표기하는 방법

- 코드 압축

- 이미지 Base64 인코딩 : 이미지 파일을 64진법으로 이루어진 문자열로 인코딩하는 방법

 

HTTP/1.1

한 번 TCP 초기화를 한 이후에 keep-alive라는 옵션으로 여러 개의 파일을 송수신할 수 있게 바뀌었음.

-> 문서 안에 포함된 다수의 리소스를 처리하려면 요청할 리소스 개수에 비례해서 대기 시간이 길어지는 단점이 있음.

 

* HOL Blocking (Heal Of line Blocking)

네트워크에서 같은 큐에 있는 패킷이 그 첫 번째 패킷에 의 지연될 때 발생하는 성능 저하 현상

 

* 무거운 헤더 구조

헤더에 쿠키 등 많은 메타 데이터가 들어 있고 압축이 되지 않아 무거웠음

 

HTTP/2

SPDY 프로토콜에서 파생된 HTTP/1.x보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜

 

* 멀티 플렉싱

여러 개의 스트림을 사용하여 송수신 (병렬적인 스트림들을 통해 데이터를 서빙)

-> 단일 연결을 사용하여 병렬로 여러 요청을 받을 수 있고 응답을 줄 수 있어서 HOL Blocking 해결 가능

 

* 스트림

시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 데이터 흐름

 

* 헤더 압축

허프만 코딩 압축 알고리즘을 사용하는 HPACK 압축 형식을 가진다.

 

* 허프만 코딩

문자열을 문자 단위로 쪼개 빈도수를 세어 빈도가 높은 정보는 적은 비트 수를 사용하여 표현하고, 빈도가 낮은 정보는 비트 수를 많이 사용하여 표현 -> 전체 데이터의 표현에 필요한 비트양을 줄이는 원리

 

* 서버 푸시

클라이언트 요청 없이 서버가 바로 리소스를 푸시할 수 있음

 

HTTPS

HTTP/2는 HTTPS 위에서 동작한다.

HTTPS는 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청을 말한다. 이르 ㄹ통해 '통신을 암호화'한다.

 

* SSL/TLS

전송 계층에서 보안을 제공하는 프로토콜

클라이언트와 서버가 통신할 때 SSL/TLS를 통해 제 3자가 메시지를 도청하고나 변조하지 못하도록 한다.

SSL/TLS는 보안 세션을 기반으로 데이터를 암호화 한다.

보안세션이 만들어질 때 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용된다.

 

* 보안 세션

보안이 시작되고 끝나는 동안 유지되는 세션

클라이언트에서 사이퍼 슈트를 서버에 전달하면 서버는 받은 사이퍼슈트의 암호화 알고리즘 리스트를 제공할 수 있는지 확인 제공할 수 있으면 서버에서 클라이언트로 인증서를 보내는 인증 메커니즘이 시작되고 이후 해싱 알고리즘 등으로 암호화된 데이터의 송수신이 시작됨

 

* 세션

운영체제가 어떠한 사용자로부터 자신의 자산 이용을 허락하는 일정한 기간을 뜻함

 

* 사이퍼 슈트 

프로토콜, AEAD 사이퍼 모드, 해싱 알고리즘이 나열된 규약

 

* 인증 메커티즘

CA(Certificate Authorities)에서 발급한 인증서를 기반으로 이루어진다.

인증서는 안전한 연결을 시작하는 데 있어 필요한 공개키를 클라이언트에 제공, 서버가 신뢰할 수 있는 서버임을 보장.

인증서는 서비스 정보, 공개키, 지문, 디지털 서명 등으로 이루어져 있음

 

* 개인키

비밀키라고도 하며, 개인이 소유하고 있는 키이자 반드시 자신만이 소유해야 하는 키

 

* 공개키

공개되어 있는 키

 

*암호화 알고리즘

- 디피-헬만 키 교환 암호화 알고리즘

 

* 해싱 알고리즘

데이터를 추정하기 힘든 더 작고, 섞여 있는 조각으로 만드는 알고리즘

- SHA-256 알고리즘 : 해시 함수의 결괏값이 256비트인 알고리즘

 

* 해시

다양한 길이를 가진 데이터를 고정된 길이를 가진 데이터로 매핑한 값

 

* 해싱

임의의 데이터를 해시로 바꿔주는 일이며 해시 함수가 이를 담당

 

* 해시 함수

임의의 데이터를 입력으로 받아 일정한 길이의 데이터로 바꿔주는 함수

 

HTTP/3

TCP 위에서 돌아가는 HTTP/2와는 달리 QUIC이라는 계층 위에서 돌아가며, TCP기반이 아닌 UDP 기반으로 돌아감.

멀티 플렉싱을 가지고 있고, 초기 연결 설정 시 지연 시간 감소라는 장점이 있음.