네트워크 CS 과제
기술노트
- 네트워크는 둘 이상의 컴퓨터와 이들을 연결하는 링크의 조합이다.
- 노드와 링크가 서로 연결되어 있으며, 리소스를 공유하는 집합.
노드 : 네트워크 연결의 주체가 되는 기계를 의미한다. 서버,라우터,스위치 등 네트워크 장치 모든 것을 의미한다.
링크 : 노드와 노드를 물리적(유선과 무선)으로 연결하는 선
네트워크란 많은 양의 요청을 처리할 수 있을 수록 처리량이 높고 좋은 네트워크라고 말한다.
처리량이 높을 수록 지연시간이 짧으며, 장애 빈도가 적다.
처리량
- 일정 기간동안 링크를 통해 전달되는 데이터의 양을 수치화 시킨 것
- 단위는 bps를 쓴다.
- 처리량은 트래픽,네트워크 장치간의 대역폭, 네트워크 에러, 하드웨어 스펙에 영향을 받는다.
처리량과 대역폭
대역폭과 처리량의 차이로는 대역폭은 지정 기간동안 네트워크를 통해 전송할 수 있는 최대 데이터의 양을 나타내기에 최대치와 평균치의 차이이다.
지연시간
- 지연시간이란 요청이 처리되는 시간을 뜻함
- 이때 시간은 장치 사이클 왕복 시간을 뜻함
- 지연시간은 매체타입, 패킷 크기,라우터의 패킷 처리 시간에 영향을 받는다.
네트워크 토폴로지
네트워크를 설계할 때 고려되는 네트워크 토폴로지는 노드와 링크의 배치형태에 따라 분류가 달라진다.
트리 토폴로지
- 트리 토폴로지는 계층형 토폴로지라고 하며, 트리형태로 배치된 네트워크 구성을 뜻한다.
- 노드의 추가 및 삭제가 간편하다.
- 특정 노드에 트래픽이 몰릴경우 하위 노드에 영향을 끼친다.
버스 토폴로지
- 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 방식이며 근거리 통신에서 사용
- 설치 비용이 적고 신뢰성이 우수한 구조
- 추가 삭제 하기 쉬우나 스푸핑이 일어날 문제가 존재한다.
스푸핑
스푸핑은 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 노드에 악의적인 노드를 전달하는 것
스타 토폴로지
- 중앙에 메인노드를 나두어 메인노드와 모두 연결하는 네트워크 구성
- 노드 추가 및 에러를 탐지하기 쉽고 패킷 충돌 발생 가능성이 적음
- 중앙 노드에 장애 발생시 모든 노드 에러 발생
링형 토폴로지
- 각각의 노드가 양옆의 노드와 순화형태로 이루어진 구조
- 원형으로 생겨 `링형`이라는 네이밍이 붙음
- 패킷 단위의 데이터 처리
- 노드가 추가되어도 네트워크 손실이 거의없다.
- 충돌 가능성이 적으며 에러를 쉽게 찾을 수 있다.
- 하나의 노드에 회선장애시 전체 장애 부담
메시 토폴로지
- 망형 토폴로지라고도 불린다.
- 하나의 단말 장치에 장애가 발생하여도 여러개의 경로가 존재함으로서 다른 노드는 에러가 나지 않는다.
- 트래픽 분산처리가 가능하다.
- 노드의 추가와 구축비용 높음,설계의 어려움 같은 문제가 존재한다.
병목현상
- 토폴로지는 병목현상의 기준이 된다.
- 전체 시스템의 성능이나 용량이 하나의 구성요소로 인해 제한 받는 현상
네트워크의 분류
LAN
- 근거리 통신망을 의미하며 같은 건물과 같은 한정적 공간에서 빠른속도를 보장한다.
MAN
- 대도시 지역 네트워크와 같은 광범위한 지역에서 운영된다.
- LAN보다 혼잡한 구조를 띈다.
WAN
- 광역네트워크를 의미하며 국가와 국가 단위
- 전송속도가 낮으며 MAN보다 혼잡
네트워크 성능
코드 상에 문제가 없으매로 서비스가 정상적으로 동작하지 못하거나 장애를 겪는 경우에는 네트워크의 병목현상을 의심해야한다.
병목현상이 발생하게 되는 4대 원인
- 네트워크의 대역폭
- 네트워크 토폴로지
- 서버 CPU, 메모리 사용량
- 비효율적인 네트워크 구성
네트워크 성능 분석 명령어
- ping(packet INternet Groper)
- 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어 - 이를 통해 노드의 패킷 수신상태와 도달까지 시간, 경로확인, 연결상태 등을 알 수 있다. - TCP/IP 프로토콜 중 ICMP 프로토콜을 통해 동작한다. - 프로토콜을 지원하지 않는 기기를 대상으로는 실행 불가하다.
- netstat
- 네트워크 상에 운영되고 있는 서비스들의 네트워크 상태를 보여준다. - 네트워크 상태에는 네트워크 접속정보,라우팅 테이블, 프로토콜 등이 리스트 형태로 나타남 - 주로 네트워크의 상태 유무 체크를 위해 사용
- nslookup
- DNS 관련된 내용을 확인하기 위해 쓰는 명령어 - 특정 도메인에 매핑된 IP를 확인하기 위해 사용함
- tracert
- 목적지 노드까지 네트워크 경로 확인을 위해 사용 - 구간 마다 속도 추적가능