
네트워크란 그물을 뜻하는 'Net'과 일(Work)을 뜻하는 'Work'의 합성어로, 두 대 이상의 컴퓨터나 기기들이 유무선으로 연결되어 서로 정보를 주고받을 수 있는 통신망이다.
네트워크는 여러 컴퓨터나 기기들이 유무선으로 연결되어있다고 설명했는데,
이를 노드(node)와 링크(link)가 연결되어 리소스를 공유하는 집합 이라고도 설명할 수 있다.
노드는 서버, 라우터, 스위치 와 같은 네트워크 장치이고
링크는 둘 사이를 연결하는 유선 또는 무선을 의미한다.
좋은 네트워크란 많은 처리량을 처리할 수 있고 지연 시간이 짧으며 좋은 보안을 갖춘 네트워크를 말한다.
처리량(throughput)

링크를 통해 전달되는 단위 시간당 데이터양을 말한다.
초당 송수신 되는 비트 수라는 의미이며, bps라는 단위를 쓴다.
이 처리량은 장치간의 대역폭이나 에러, 하드웨어 스펙에 영향을 받는다.
대역폭은 주어진 시간 동안 네트워크 연결을 통해 처리될 수 있는 최대 비트 수이고,
처리량은 그 대역폭 안에서 실제로 처리되고 있는 비트 수라고 볼 수 있다.
지연시간(latency)

요청이 처리되는 시간을 말한다.
어떤 메시지가 두 장치 사이를 왕복하는데 걸린 시간이기도 하다.
지연 시간은 매체 타입(유무선), 패킷 크기, 라우터의 패킷 처리 시간에 영향을 받는다.
네트워크 토폴로지는 노드와 링크가 배치되어있는 방식을 뜻한다.
트리 토폴로지

계층형 토폴로지라고도 하며 트리 형태로 배치된 네트워크이다.
노드의 추가, 삭제가 쉽지만 상위 장비에 장애가 나면 그 아래가 다 영향을 받는다.
케이블 TV망과 건물 단위 네트워크가 이 구조를 쓴다.
버스 토폴로지

하나의 중앙 통신 회선 하나에 여러 노드가 연결되는 구성이다.
설치 비용이 적고 중앙 회선에 노드 추가, 삭제가 쉽다.
다만, 스푸핑이 가능한 문제점이 있다.
스푸핑
LAN상에서 송신부의 패킷을 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서, 특정 노드에 해당 패킷이 오도록 처리하는 것
초기 이더넷이나 자동차의 내부 제어장치들을 하나로 버스로 통신할 때 쓰인다.
스타 토폴로지

중앙에 있는 노드에 모두 연결된 구조다.
노드 추가가 쉽고 에러를 탐지하기 쉽지만 중앙 장비가 고장나면 전체 네트워크가 마비된다.
가정용 공유기나 사무실 스위치 기반 이더넷에 쓰인다.
링형 토폴로지

각 노드가 양옆의 노드와 연결되어 고리 형태를 이루며, 데이터가 한 방향(또는 양방향)으로 순환하는 구조다.
노드 수가 늘어나도 충돌 가능성이 적지만, 회선이 끊기면 전체에 영향을 준다.
메시 토폴로지

그물망처럼 노드들이 서로 여러 경로로 연결된 구조다.
안정적이고 트래픽 분산이 가능하지만 노드 추가가 어렵고 구축 및 운용 비용이 많이 든다.
인터넷 백본, 데이터센터 네트워크, IoT 등에 쓰인다.
병목 현상
전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상을 말한다.
토폴로지가 중요한 이유는 병목 현상을 찾을 때 중요한 기준이 되기 때문이다.
네트워크가 어떤 구조로 연결되어 있는지 알아야 트래픽이 어디로 몰리는지, 어떤 회선이나 장비를 증설해야 하는지 파악할 수 있기 때문이다.

네트워크는 규모 기반으로 분류가 가능하다.
LAN(Local Area Network)
근거리 통신망을 의미하며 같은 건물이나 캠퍼스 같은 좁은 공간에서 운영된다.
전송 속도가 빠르고 혼잡하지 않다.
MAN(Metropolitan Area Network)
대도시 지역 네트워크를 나타내며 도시 같은 넓은 지역에서 운영된다.
전송 속도는 평균이며 LAN보다는 더 많이 혼잡하다.
WAN(Wide Area Network)
광역 네트워크를 의미하며 국가 또는 대륙 같은 더 넓은 지역에서 운영된다.
전송 속도는 낮으며 MAN보다 더 혼잡하다.
네트워크 병목 현상같은 네트워크 문제가 일어났을 때 성능 분석을 해볼 수 있다.
ping
Packet INternet Groper의 줄임말이며, 처음알았다
네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어이다.
흔히 핑 튄다라고 할 때의 핑이 이것이다.

CMD나 powershell과 같은 터미널에 ping google.com을 쳐보면
기본적으로 4개의 패킷을 주고받으며 패킷 수신 상태와 도달하기까지 시간을 알 수 있다.
netstat
현재 접속되어 있는 서비스들의 네트워크 상태를 표시하는 데 사용된다.
주로 서비스의 포트가 열려 있는지 확인하는데에 쓴다.

nslookup
DNS에 관련된 내용을 확인하기 위해 쓰는 명령어이다.
특정 도메인에 매핑된 IP를 확인하기 위해 쓴다.

DNS(Domain Name System)은 사람이 기억하기 좋은 도메인 이름을 IP주소로 변환해주는 시스템이다.
tracert
윈도우에선 tracert, 리눅스에서는 traceroute로 쓴다.
목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어이다.

구글 사이트는 해외 서버기 때문에 여러 라우터를 경유해서 데이터를 받아오게 된다.
네트워크도 통신할 때 서로 정해진 규칙 안에서 통신해야 통신이 가능하다.
그래서 네트워크 프로토콜이 필요하고 이를 IEEE나 IETF라는 표준화 단체가 정해서 쓰게 된다.
예를 들어 IEEE802.3은 유선 LAN 프로토콜으로, 유선으로 LAN을 구출할 때 쓰이는 프로토콜이다.