네트워크란, 노드(네트워트 장치)와 링크(유선 or 무선)가 서로 연결되어 있거나 연결되어 있지 않은 집합체
처리량과 지연 시간
좋은 네트워크 - 많은 처리량, 짧은 지연 시간, 적은 장애 빈도, 좋은 보안
처리량
- 링크를 통해 전달되는 단위 시간당 데이터 양
- 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치간의 대역폭(주어진 시간 동안 네트워크를 통해 흐를 수 있는 비트 수), 에러, 장치의 하드웨어 스펙에 영향을 받음
지연 시간
- 요청이 처리되는 시간
- 어떤 메세지가 두 장치 사이를 왕복하는 데 걸린 시간
- 매체 타입(무선, 유선), 패킷 크기, 라우터의 패킷 처리 시간에 영향을 받음
네트워크 토폴로지
- 노드와 링크가 어떻게 배치되어 있는지에 대한 방식, 연결 형태
- 네트워크 설계 시 고려해야 함
트리 토폴로지
버스 토폴로지
- 중앙 통신 회선에 여러 개의 노드가 연결되어 공유하는 네트워크 구성
- 근거리 통신망(LAN)에서 사용

장점
- 적은 설치 비용, 신뢰성 우수
- 중앙 통신 회선에 노트 추가, 삭제 쉬움
단점
스푸핑이 가능한 문제점
스푸핑
- 스위칭기능(송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 함)을 마비시키거나 속여서 특정 노드에 해당 패킷이 오도록 처리하는 것

-> 올바르게 수신부로 가야 할 패킷이 악의적인 노드에 전달
스타 토폴로지
중앙 노드에 모두 연결된 네트워크 구성

장점
- 쉬운 노드 추가와 에러 탐지
- 적은 패킷 출동 발생 가능성
- 장애 노드가 중앙 노드가 아닐 경우, 다른 노드에 영향이 적음
단점
- 중앙 노드에 장애 발생 시, 전체 네트워크 사용 불가
- 설치 비용 고가
링형 토폴로지
각각의 노드가 양 옆의 두 노드와 연결하여 전체적으로 고리처럼 하나의 연속된 길을 통해 통신하는 망 구성 방식

- 데이터는 노드를 통해 이동
- 각 노드는 고리 모양의 길을 통해 패킷을 처리
장점
- 노드 수가 증가해도, 거의 없는 네트워크상 손실과 적은 충돌 발생 가능성, 쉬운 노드의 고장 발견
단점
- 네트워크 구성 변경 어려움
- 회선에 장애 발생 시, 전체 네트워크에 영향
메시 토폴로지
- 망형 토폴로지
- 그물망 같은 연결 구조

장점
- 한 단말 장치에서 장애 발생해도, 여러 개의 경로가 존재하므로 네트워크 사용 가능
- 트래픽 분산 처리 가능
단점
- 어려운 노드 추가
- 구축 비용과 운영 비용 고가
병목 현상
: 전체 시스템의 성능이나 용량이 하나의 구성요소로 인해 제한 받는 현상
토폴로지(네트워크 구조)가 중요한 이유 - 병목 현상을 찾을 때 중요한 기준이 되기 때문
ex) 병목 현상이 일어나서 서비스 이용 시 지연 시간 발생
-> 대역폭을 크게 설정해도 성능 개선 x
-> 네트워크 토폴로지 확인
-> 회선 추가를 통해 병목 현상 해결
이처럼, 네트워크가 어떤 토폴로지를 갖는지 or 어떤 경로로 이루어져 있는지 알아야 병목 현상을 올바르게 해결 가능
네트워크 분류
규모를 기반으로 분류
- LAN(Local Area Network)
- 개인적으로 소유 가능한 규모 (ex) 사무실)
- 근거리 통신망 - 같은 건물 같은 좁은 공간에서 운영
- 빠른 전송 속도, 혼잡하지 않음
- MAN(Metropolitan Area Network)
- 시 정도의 규묘 (ex) 서울시)
- 대도시 지역 네트워크 - 도시 같이 넓은 지역에서 운영
- 평균 전송 속도, LAN보다는 혼잡
- WAN(Wide Area Network)
- 세계 규모
- 광역 네트워크 - 국가, 대륙 같은 더 넓은 지역에서 운영
- 낮은 전송 속도, MAN보다 혼잡
네트워크 성능 분석 명령어
네트워크 성능 분석을 해야하는 상황
: 코드 상 문제가 없지만 사용자가 서비스로부터 데이터를 가져오지 못하는 상황, 이는 네트워크 병목 현상일 수 있음
-> 병목 현상의 주된 원인
- 네트워크 대역폭
- 네트워크 토폴로지
- 서버 CPU, 메모리 사용량
- 비효율적인 네트워크 구성
-> 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 네트워크로부터 발생한 문제점인 것을 확인한 후, 성능 분석을 해야 함
-> 이때 사용되는 명령어가 네트워크 성능 분석 명령어
ping
- 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송
-> 해당 노드의 패킷 수신 상태, 도달 시간, 네트워크 연결 여부 확인 가능
- TCP/IP 포로토콜 중 ICMP 포로토콜을 통해 동작
-> ICMP 지원 하지 않는 기기나 tracerouter 차단하는 대상은 실행할 수 없거나 ping 테스팅 불가능
ex) ping www.google.com -n 12 라는 명령어 구동
-> 12번의 패킷을 보내고 받는 모습을 볼 수 있음
netstat
- 접속되어 있는 서비스(사이트)들의 네트워크 상태를 표시
- 네트워크 접속 ,라우팅 테이블, 네트워크 포로토콜 등 리스트를 보여줌
- 주로 서비스의 포트가 열려 있는지 확인할 때 사용
nslookup
- DNS에 관련되 내용 확인
- 특정 도메인에 매핑된 IP 확인
tracert
- 목적지 노드까지 네트워크 경로 확인 - 어느 구간에서 응답 시간이 느려지는지 등 확인
- 윈도우에선 tracert, 리눅스에선 traceroute 로 명령어 구동
그 외
- ftp - 대형 파일 전송하여 테스팅 명령어
- tcpdump - 노드로 오고가는 패킷 캡처 명령어
- wreshark, netmon - 네트워크 분석 프로그램
네트워크 프로토콜 표준화
- 네트워크 프로토콜 : 다른 장치들끼리 테이터를 주고받기 위해 설정된 공통 인터페이스
- 포로토콜은 IEEE 또는 IETF 표준화 단체에서 정함
IEEE802.3
- 유선 LAN 포로토콜 - 유선으로 LAN을 구축 시 쓰임
- 이를 통해 기업이 다른 장치라도 서로 데이터 수신 가능
- 예를 들어 서로 약속된 인터페이스인 HTTP라는 프로토콜로(웹 접속 시 쓰임), 노드들은 웹 서비스를 기반으로 데이터를 주고 받음
출처 - [서적] 면접을 위한 CS 전공지식 노트