네트워크란?
- 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합
- 노드 : 서버,라우터,스위치 등 네트워크 장치
- 링크 : 유무선 형태의 연결 수단
- 좋은 네트워크란 => 많은 처리량을 처리할 수 있다 / 지연 시간이 짧다 / 장애 빈도가 적다 / 좋은 보안을 갖춘 네트워크
처리량과 지연 시간
트래픽
- 특정 시점에 링크 내에서 '흐르는' 데이터의 양
- 인터넷 상에서 서버에 흐르는 데이터 양
처리량(throughput)
- 링크 내에서 성공적으로 전달된 데이터의 양. 얼만큼의 트래픽을 처리했는지를 의미
- 단위 : bps(bit per second)
- 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받는다.
대역폭
- 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
- 단위 : bps(bit per second) => 초당 bit단위의 데이터 처리량
트래픽이 많아졌다 = 흐르는 데이터가 많아졌다
처리량이 많아졌다 = 처리되는 트래픽이 많아졌다
트래픽이 많아져서 서버가 다운되면 처리량도 줄어든다
대역폭이 작을수록 처리량도 줄어든다
대역폭이 클수록 시간이 줄어든다
지연시간(latency)
- 요청이 처리되는 시간. 즉 어떤 메세지가 두 장치 사이를 왕복하는 데 걸린 시간
- 매체 타입(유무선), 패킷 크기, 라우터의 패킷 처리 시간에 영향을 받음
네트워크 토폴로지
네트워크 토폴로지 : 노드와 링크가 어떻게 배치되어 있는지에 대한 방식/연결 형태
트리 토폴로지
- 계층형 토폴로지라고 하며 트리 형태로 배치한 네트워크 구성
- 장점
- 노드의 추가, 삭제가 쉽다
- 단점
- 상위에 트래픽이 집중되어 병목 현상이 발생할 수 있다
- 상위 전송 제어장치가 다운되면 하위 네트워크에 장애가 발생한다
버스 토폴로지
- 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성
- 근거리 통신망(LAN)에서 사용한다
- 내결함성 네트워크가 아니다. (cf. 내결함성 : 다른 회선을 통해 갈 수 있는 경우)
- 노드 장애는 다른 것에 영향을 주지 않는다. 그러나, 중앙 통신 회선 하나를 사용하므로 링크 장애일 때는 영향을 주게 된다.
- 장점
- 설치 비용이 적고 신뢰성이 우수하다
- 중앙 통신 회선에 노드를 추가/삭제가 쉽다
- 단점
- 메인 회선이 고장났을시 네트워크 전체에 영향을 준다
- 병목 현상
(한 회선에서 단일한 방향으로 데이터가 흐른다. 각각의 노드들이 한가지 회선의 대역폭을 공유하기 때문에 연결된 노드의 수가 늘어나면 늘어날 수록 성능은 저하된다.
대용량의 트래픽에 적합하지 않으며 그로인해 버스형은 작은 규모의 네트워크에 사용된다.(ex. LAN) ) - 버스의 길이가 한정적이기 때문에 연결 가능한 노드도 한정적이다
- 스푸핑이 가능한 문제점이 있다
스푸핑(spoofing)
- LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나,속여서 특정 노드에 해당 패킷이 오도록 함
(A -> B로 갈 요청이, A -> X -> B로 가도록 중간에서 요청을 가로채는 것)
스타 토폴로지
- 중앙에 있는 노드에 모두 연결된 네트워크 구성
- 장점
- 노드를 추가하거나 에러를 탐지하기 쉽다
- 패킷의 충돌 발생 가능성이 적다
- 노드에 장애가 발생해도 쉽게 에러를 발견할 수 있다
- 장애 노드가 중앙 노드가 아닐 경우 다른 노드에 영양을 끼칠 확률이 적다
단점
- 중앙 노드에 장애가 발생하면 네트워크 전체 사용 불가
- 설치 비용이 비싸다
링형 토폴로지
- 각각의 노드가 양 옆의 두 노드와 연결하여 전체적으로 하나의 고리(원) 처럼 형성
- 고리처럼 하나의 연속된 길을 통해 통신 하는 망 구성 방식
- 단일링형은 단방향, 이중링형은 양방향
- 토큰 패싱(Token Passing)을 통해 데이터 전달 => 토큰을 가지고 있는 노드만 데이터 전송
- 장점
- 노드 수가 증가되어도 네트워크상의 손실이 거의 없다( 왜냐하면 토큰 기반으로 통신하기 때문)
- 동일한 방향으로 흐르기 때문에 충돌이 발생되는 가능성이 적다
- 노드의 고장 발견을 쉽게 찾을 수 있다
- 단점
- 네트워크 구성 변경이 어렵다
- 회선이나 노드에 장애가 발생하면 전체 네트워크에 영향을 크게 끼친다
메시(mesh) 토폴로지
- 망형 토폴로지라고도 하며 그물망처럼 연결되어 있는 구조
- 내결함성 네트워크
- 장점
- 노드 하나에 장애가 발생해도 경로가 여러개 존재하므로 시스템에 영향을 거의 끼치지 않음
- 트래픽 분산 처리 가능
- 단점
- 노드의 추가가 어렵다
- 구축 비용과 운용 비용이 비싸다
병목 현상
- 하나의 구성 요소로 인해 전체 시스템의 성능이나 용량이 제한을 받는 현상
- ex. 병의 목 부분처럼 넓은 길이 갑자기 좁아짐. 교통 정체 현상, 컴퓨터 성능 저하 현상
- 네트워크 토폴로지가 중요한 이유는 병목 현상을 찾을 때 중요한 기준이 되기 때문이다
- 네트워크 대역폭
- 네트워크 토폴로지
- 서버 CPU, 메모리 사용량
- 비효율적인 네트워크 구성 위와 같은 경우에는, 네트워크 관련 테스트를 통해 네트워크 관련 문제점인 것을 확인한 후 네트워크 성능 분석을 해봐야 한다
네트워크 분류
LAN
- 근거리 통신망을 의미
- 같은 건물등의 좁은 공간에서 운영된다
- 전송 속도가 빠르고 혼잡하지 않다
MAN
- 대도시 지역 네트워크를 나타낸다
- 도시 같은 넓은 지역에서 운영된다
- 전송 속도는 평균이며 LAN보다 더 많이 혼잡하다
WAN
- 광역 네트워크를 의미한다
- 국가 또는 대륙 같은 더 넓은 지역에서 운영된다
- 전송 속도는 낮고, MAN보다 더 혼잡하다
네트워크 성능 분석 명령어
ping (Packet INternet Groper)
- 목적 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어
- 해당 노드의 패킷 수신 상태와 도달하기까지 시간을 알 수 있다
- 해당 노드까지 네트워크가 잘 연결되어 있는지 확인할 수 있다
- TCP/IP 프로토콜 중 ICMP 프로토콜을 통해 동작
netstat
- 접속되어 있는 서비스들의 네트워크 상태를 표시
- 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여준다
- 주로 서비스의 포트가 열려있는지 확인할 때 사용
nslookup
- DNS에 관련된 내용을 확인하기 위해 쓰는 명령어
- 특정 도메인에 매핑된 IP를 확인
tracert
- 윈도우에서는 tracert,리눅스에서는 traceroute
- 목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어
- 어느 구간에서 응답이 느려지는지 확인 가능
네트워크 계층구조
OSI 7 Layer VS. TCP/IP 4 Layer
OSI 7 계층은 네트워크 전송시의 데이터 표준이고 TCP/IP 4 Layer은 실제 사용하는 네트워크 표준이고 프로토콜의 네트워킹 범위에 따라 네 개의 추상화 계층으로 구성
OSI 7 Layer
1. 물리 계층
데이터를 전기신호로 변경하여 주고받는 계층 (단위 : 비트)
2. 데이터 링크 계층
물리계층으로 송수신되는 정보를 확인하고 오류 없는 데이터 전송을 위하여 에러 검출, 재전송, 흐름 제어를 진행
MAC주소를 통해 통신 (단위 : 프레임)
3. 네트워크 계층
패킷을 목적지까지 가장 빠른 길로 전송하기 위한 계층
라우터를 통해 경로를 선택하여 ip 주소를 지정하고 패킷 전달
(단위 : 패킷)
4. 전송 계층
프로세스로의 데이터 전송을 담당하는 계층
(단위 : 세그먼트)
5. 세션 계층
컴퓨터가 통신하기 위한 세션을 만드는 계층
6. 표현 계층
데이터 형식을 정의하는 계층
7. 애플리케이션 계층
사용자에게 통신을 위한 서비스를 제공해주는 계층 (단위 : 메시지)
TCP/IP 4계층
1. 애플리케이션 계층
- HTTP, FTP, SSH, DNS 등 응용 프로그램이 사용되는 프로토콜 계층
- 웹 서비스, 이메일 등 서비스를 실질적으로 제공하는 계층
- FTP : 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜
- SSH : 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜
- HTTP : World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 쓰는 프로토콜
- SMTP : 송신 메일 서버로 부터 수신 메일 서버로 메세지 전송. TCP 프로토콜 사용. 지속 연결
- DNS : 도메인 주소와 IP 주소를 매핑해주는 서버. UDP 프로토콜 사용
2. 전송(transport) 계층
- 송신자와 수신자를 연결하는 통신 서비스를 제공
- 애플리케이션과 인터넷 계층 사이의 데이터가 전달될 때의 중계 역할
3. 인터넷 계층
- 장치로부터 받은 패킷을 지정된 목적지로 전송하기 위해 사용되는 계층
- IP 등이 존재하며, 패킷을 수신해야 하는 상대의 주소를 지정하여 (예: IP 주소) 데이터를 전달한다
- 상대방이 제대로 받았는지에 보장하지 않는 비연결형적인 특징이 있다
- best effort service
4. 링크 계층
- 실질적으로 데이터를 전달하며 장치 간에 신호를 주고 받는 '규칙'을 정하는 계층
- 네트워크 접근 계층이라고도 한다
- 물리 계층과 데이터 링크 계층으로 나뉜다
- 물리 계층 : 무선 LAN과 유선 LAN을 통해 0,1로 이루어진 데이터를 보내는 계층
- 데이터 링크 계층 : 이더넷 프레임을 통해 여러 에러 확인 및 흐름,접근 제어를 담당하는 계층
유선 LAN
- 유선 LAN을 이루는 이더넷은 IEEE802.3이라는 프로토콜을 따른다
- 이는 여러 제조업자들이 만들어내는 장치들 간에 상호 통신이 가능하게 하는 표준을 제정하기 위함이였으며, 주요 LAN 프로토콜인 물리층과 데이터링크 층의 기능들을 규정하였고 전이중화 통신을 쓴다
전이중화 통신
- 전이중화(full duplex) 통신은 양쪽 장치가 동시에 송수신 할 수 있는 방식을 말한다
- 현대의 고속 이더넷은 이 방식을 기반으로 통신한다
무선 LAN
- 무선 LAN 장치들은 송신과 수신에 같은 채널을 공유하기 때문에 반이중화 통신을 사용한다
반이중화 통신
- 반이중화(half duplex) 통신은 송수신을 동시에 통신할 수 없으며, 한 번에 한 방향만 통신할 수 있는 방식을 말한다
계층 간 데이터 송수신 과정
캡슐화
애플리케이션 -> 전송 -> 인터넷 -> 링크
전송시엔 캡슐화의 과정을 거친다
상위 계층의 헤더와 데이터를, 하위 계층의 데이터 부분에 포함 시키고 해당 계층의 헤더를 삽입 하는 과정
비캡슐화
하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정
- 송신측 클라이언트의 애플리케이션 계층에서 어느 웹 페이지를 보고 싶다라는 HTTP 요청을 지시한다.
- 그 다음에 있는 트랜스포트 계층에서는 애플리케이션 계층에서 받은 데이터(HTTP 메시지)를 통신하기 쉽게 조각내어 안내 번호와 포트 번호(TCP 패킷)를 붙여 네트워크 계층에 전달한다.
- 네트워크 계층에서 데이터에 IP 패킷을 추가해서 링크 계층에 전달한다.
- 링크 계층에서는 수신지 MAC 주소와 이더넷 프레임을 추가한다.
- 이로써 네트워크를 통해 송신할 준비가 되었다.
- 수신측 서버는 링크 계층에서 데이터를 받아들여 순서대로 위의 계층에 전달하여 애플리케이션 계층까지 도달한다.
- 수신측 애플리케이션 계층에 도달하게 되면 클라이언트가 발신했던 HTTP 리퀘스트를 수신할 수 있다.
PDU (Protocol Data Unit)
- 네트워크의 계층 간 데이터가 전달될 때, 한 덩어리의 단위를 말한다
- 제어 관련 정보들이 포함된 헤더, 데이터를 의미하는 페이로드로 구성되어 있다
- 계층마다 부르는 명칭이 다르다
- 애플리케이션 계층 : 메시지
- 전송 계층 : 세그먼트(TCP), 데이터그램(UDP)
- 인터넷 계층 : 패킷
- 링크 계층 : 프레임(데이터 링크 계층), 비트(물리 계층)
- ex) 애플리케이션 계층은 ‘메시지’를 기반으로 데이터를 전달하는데, HTTP의 헤더가 문자열이다
네트워크 기기
상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가
- 애플리케이션 계층 : L7 스위치
- 네트워크 계층 : 라우터, L3 스위치
- 데이터 링크 계층 : 브리지, L2 스위치
- 물리 계층 : NIC, 리피터, AP
애플리케이션 계층을 처리하는 기기
L7 스위치
- L7 스위치는 로드밸런서로 서버의 부하를 분산하는 기기
(cf. Load Balancing => 네트워크 또는 서버에 가해지는 로드를 분산해주는 기술. 대용량 트래픽 분산 기술. 컴퓨터 자원들에게 직업을 나누는 것을 의미)
- 클라이언트로부터 오는 요청들을 뒤쪽의 여러 서버로 나누는 역할
- 시스템이 처리할 수 있는 트래픽 증가를 목표로 한다
- URL,서버,캐시,쿠키들을 기반으로 트래픽을 분산
- 바이러스,불필요한 외부 데이터 등을 걸러내는 필터링 기능을 가진다
L7 스위치 VS. L4 스위치
- L7, L4 모두 로드밸런서
- L4 스위치는 전송 계층을 처리하는 기기
- L4 스위치는 IP와 포트를 기반으로 트래픽을 분산
헬스 체크
- 전송 주기와 재전송 횟수 등을 설정한 이후 반복적으로 서버에 요청을 보내는 것
- L4와 L7 모두 헬스 체크를 통해 정상,비정상적인 서버를 판별
- ICMP-PING, 서버의 서비스 포트로 TCP 요청, TCP Half Open-3way handshaking, HTTP 상태코드, 콘텐츠 확인(지정한 문자열이 응답에 있는지) 를 통해 헬스체크
로드 밸런서를 이용한 서버 이중화
- 장애시 빠른 서비스 재개를 위함 (fail-over)
- 원활한 성능을 위함 (load balancing)
인터넷 계층을 처리하는 기기
라우터
- 여러개의 네트워크를 연결,분할,구분 시켜주는 역할
- 다른 네트워크에 존재하는 장치끼리 서로 데이터를 주고받을 때 패킷 소모를 최소화하고 경로를 최적화하여 최소 경로로 패킷을 포워딩한다
- 공유기가 여기에 속한다
L3 스위치
- L2 스위치의 기능과 라우팅 기능을 갖춘 장비
- L3 == 라우터
- L3는 하드웨어 기반의 라우팅을 담당하는 스위치
데이터 링크 계층을 처리하는 기기
L2 스위치
- 장치들의 MAC 주소를 기반으로 장치를 관리한다
- 연결된 장치로부터 패킷이 왔을 때 패킷 전송을 담당한다
- 이를 위해 MAC 주소 테이블을 사용함 (IP주소 이해 불가)
MAC (Media Access Control Address)
MAC 주소는 간단히 말해 인터넷을 할 수 있는 이더넷 기반 기기에는 모두 다 하나씩 할당되어 있는 고유한 ID이다
라우터 vs 스위치
-라우터 : 다양한 네트워크를 연결하는 장치로 IP 주소 사용. 네트워크 계층에 속함. 목적지 불명확한 데이터는 폐기
-스위치 : 다양한 장치를 동시에 연결하는 장치로 MAC 주소 사용 -> "브로드캐스팅"
브릿지
- 두 개의 근거리 통신망(LAN)을 상호 접속할 수 있도록 하는 통신망 연결 장치
- 포트와 포트 사이의 다리 역할을 한다
- 통신망 범위를 확장하고 서로 다른 LAN 등으로 이루어진 '하나의' 통신망을 구축할 때 쓰인다
스위치 허브
- 스위치 기능이 있는 허브
- 특정 MAC 주소에 해당하는 정보 전달
- 요즘에는 그냥 허브라고 부름
물리 계층을 처리하는 기기
NIC
- LAN 카드라고 하는 네트워크 인터페이스 카드(NIC, Network Interface Card)
- 2대 이상의 컴퓨터 네트워크를 구성하는데 사용한다
- 빠른 속도로 데이터를 송수신할 수 있게 컴퓨터에 설치하는 확장 카드
리피터
- 들어오는 약해진 신호 정도를 증폭하여 다른 쪽으로 전달하는 장치
- 이를 통해 패킷이 더 멀리 갈 수 있다
AP (Access Point)
- AP에 유선 LAN을 연결한 후 다른 장치에서 무선 LAN 기술(와이파이)을 사용하여 무선 네트워크 연결 가능
- NAT 기능 없음(공유기는 NAT 기능 있음)
허브
- 랜선에 꽂혀있는 모든 포트에 데이터 전부 전달
IP주소