면접을 위한 CS 전공지식 노트 [CHAPTER 2] (1)
[CHAPTER 2]. 네트워크
[SECTION 2.1] - 네트워크의 기초
2.1 네트워크의 기초
네트워크란?
- 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어이다.
- 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미한다.
2.1.1 처리량과 지연 시간
네트워크를 구축할 깨는 '좋은' 네트워크로 만드는 것이 중요하다.
좋은 네트워크란?
-많은 처리량을 처리할 수 있으며, 지연시간이 짧고, 장애 빈도가 적으며, 좋은 보안을 갖춘 네트워크이다.
처리량
처리량(throughput)이란?
- 링크 내 성공적으로 전달된 데이터의 양. 보통 트래픽을 처리햇는지를 나타낸다.
'많은 트래픽을 처리한다 = 많은 처리량을 가진다' 라는 의미.
- 트래픽이 많아졌다. = 흐르는 데이터가 많아졌다.
- 처리량이 많아졌다. = 처리되는 트래픽이 많아졌다.
지연 시간
지연 시간(latency)이란?
- 요청이 처리되는 시간. 어떤 메세지가 두 장치 사이를 왕복하는데 걸린 시간
2.1.2 네트워크 토폴로지와 병목 현상
네트워크 토폴로지
네트워크 토폴로지란?
- 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태를 의미힌다.
- 트리(tree) 토폴로지 : 계층형 토폴로지라고 하며 틀 형태로 배치한 네트워크 구성이다.
노드의 추가 삭제가 쉬우며 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼친다
- 버스(bus) 토폴로지 : 근거리 통신망(LAN)에서 사용.
설치 비용이 적고 신뢰성이 우수하며 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉽다.
그러나 *스푸핑이 가능하다는 문제점이 있다.
*스푸핑 :
-스타(star) 토폴로지 : 노드를 추가하거나 에러를 탐지하기 쉽고 패킷의 충돌 발생 가능성이 적다. 또한 어떠한 노드에 장애가 발생해도 쉽게 발견할 수 있으며, 중앙 노드에 장애가 발생한게 아니라면 다른 노드에 영향을 끼치는 것이 적다.
하지만 중앙 노드에 장애가 발생하면 전체 네트워크를 사용할 수 없고 설치 비용이 비싸다.
- 링형(ring) 토폴로지 : 노드 수가 증가되어도 네트워크상의 손실이 거의 없고 충돌이 발생될 가능성이 적고, 노드 고장을 쉽게 찾을 수 있다. 하지만 네트워크 구성 변경이 어렵고 회선에 장애가 발생하면 전체 네트워크에 영향을 크게 끼친다는 단점이 있다.
- 메시(mesh) 토폴로지 : 한 단말 장치에 에러가 발생해도 계속 네트워크를 사용할 수 있고 트래픽 분산 처리도 가능하다.
하지만 노드의 추가가 어렵고 구축 비용과 운용 비용이 고가인 단점이 있다.
2.1.3 네트워크 분류
- 네트워크는 규보를 기반으로 분류할 수 있다.
LAN
- 근거리 통신망을 의미.
- 같은 건물이나 캠퍼스 같은 좁은 공간에서 운영 됨. 전송 속도가 빠르고 혼잡하지 않다.
MAN
- 대도시 지역 네트워크를 나타내며 도시 같은 넓은 지역에서 운영 됨.
- 전송 속도는 평균 LAN보다 더 많이 혼잡하다.
WAN
- 광역 네트워크를 의미.
- 국가 또는 대륙 같은 더 넓은 지역에서 운영된다. 전속 속도가 낮고 MAN보다 더 혼잡하다.
2.1.4 네트워크 성능 분석 명령어
네트워크 병목 현상의 주된 원인은 다음과 같다.
- 네트워크 대역폭
- 네트워크 토폴로지
- 서버 CPU, 메모리 사용량
- 비효율적인 네트워크 구성
네트워크 성능 분석 명령어
- ping (Packet INternet Groper) : 네트워크 확인 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어. 해당 패킷이 송수신 될 때의 상태를 체크할 수 있다. 하지만 ICMP 프로토콜을 통해 동작하므로 해당 프로토콜을 지원하지 않는 기기를 대상으로는 실행 불가
- netstat : 접속되어 있는 서비스들의 네트워크 상태를 표시하는데 사용됨. 네트워크 접속,라우팅 테이블, 네트워크 프로토콜 등 리스트를 보여준다.
- nslookup : DNS(Domain name service)에 관련된 내용을 확인하기 위한 명령어. 특정 도메인에 매핑된 IP를 확인하기 위해 사용한다.
- tracert(윈도우) / traceroute(리눅스) : 목적지 노드까지 네트워크 경로를 확인하는 명령어이다.
목적지 노드까지 구간들 중 어느 구간에서 응답 시간이 느려지는지 등을 확인할 수 있다.
2.1.5 네트워크 프로토콜 표준화
네트워크 프로토콜이란?
- 다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스를 말한다.
예를 들어 웹을 접속할 때 쓰이는 HTTP도 서로 약속된 HTTP라는 프로토콜을 통해 노드들이 웹서비스를 기반으로 데이터를 주고받을 수 있다.