네트워크의 기초
#CS#Computer Network

네트워크의 기초

1. 네트워크의 분류

규모에 따른 네트워크 분류

네트워크는 연결 범위에 따라 LAN, MAN, WAN으로 분류됩니다. 하지만 이것은 단순히 "크기"만의 문제가 아닙니다.

Q1
LAN과 WAN의 차이가 단순히 "범위의 크기"뿐일까요? 서울에 있는 컴퓨터와 부산에 있는 서버를 연결할 때, 같은 건물 내 연결과 무엇이 다를까요?
크기만 다른 것이 아닙니다. 물리적 연결 방식이 근본적으로 달라집니다.

LAN에서는 이더넷 케이블을 직접 깔거나 Wi-Fi 공유기 하나로 연결할 수 있지만, WAN에서는 통신사(ISP)가 구축한 광케이블 백본망, 해저 케이블 같은 인프라를 빌려 써야 합니다.

이 차이는 관리 주체, 비용, 그리고 성능 특성의 차이로 이어집니다.

2. 네트워크 토폴로지

장치들이 연결되는 형태

토폴로지는 네트워크에서 장치들이 서로 어떤 형태로 연결되어 있는지를 나타냅니다.

Q1
컴퓨터 5대를 하나의 네트워크로 연결해야 한다면, 어떤 방식들이 가능할까요? "모두 하나의 중앙 장치에 연결"하는 것과 "원형으로 이어 붙이는 것" 중 어느 쪽이 더 안정적일까요?
상황에 따라 다릅니다.

스타 토폴로지(중앙 장치에 연결)는 한 컴퓨터의 케이블이 끊어져도 나머지에 영향이 없지만, 중앙 스위치가 고장 나면 전체가 멈춥니다.

링 토폴로지(원형 연결)는 충돌이 적지만, 중간에 하나라도 끊어지면 전체 루프가 깨집니다.

각 토폴로지마다 안정성, 비용, 성능 사이의 트레이드오프가 다릅니다.
중앙 스위치가 병목 지점이 됩니다.

병목 현상은 전체 시스템의 성능이 특정 구성 요소로 인해 제한받는 현상입니다. 스위치의 처리 용량이 1Gbps인데 30대가 동시에 전송하면 그 용량을 초과하게 됩니다.

트리 토폴로지에서도 마찬가지로, 상위 계층의 장치에 하위 계층의 트래픽이 전부 몰리기 때문에 상위로 올라갈수록 병목이 발생하기 쉽습니다.

3. 처리량과 지연 시간

네트워크 성능의 두 축

네트워크 성능을 측정하는 두 가지 기본 지표가 있습니다.

처리량 (Throughput)
단위 시간당 성공적으로 전달된 데이터의 양
단위: bps (bits per second)
지연 시간 (Latency)
메시지가 두 장치 사이를 왕복하는 데 걸린 시간
단위: ms (milliseconds)
Q1
처리량이 높으면 지연 시간도 반드시 짧을까요?
아닙니다. 이 둘은 독립적인 지표입니다.

도로에 비유하면 이렇습니다. 서울에서 부산으로 대형 화물트럭이 1시간에 100대씩 출발할 수 있다고 해봅시다. 처리량은 엄청나죠 (시간당 100대). 하지만 각 트럭이 부산에 도착하기까지 5시간이 걸린다면, 지연 시간은 여전히 긴 겁니다.

네트워크 성능을 제대로 평가하려면 둘 다 봐야 합니다.

4. 네트워크 성능 분석 명령어

실제로 측정하고 진단하기

처리량과 지연 시간을 이론으로만 알면 의미가 없습니다. 실제로 측정하고 문제를 진단할 수 있어야 합니다.

ping지연 시간 측정

특정 주소로 작은 패킷을 보내고, 응답이 돌아오기까지 걸린 시간을 측정합니다.

사용 예시
$ ping google.com
출력 예시
64 bytes from 142.250.196.110: time=12.3 ms
💡 포인트
응답이 안 오면 해당 서버에 도달할 수 없다는 뜻입니다. 내부적으로 ICMP 프로토콜을 사용합니다.
면접 포인트
단순히 "ping은 연결 확인하는 거예요"보다는 문제 해결 흐름 속에서 설명하세요:

"먼저 ping으로 목적지에 도달 가능한지와 지연 시간을 확인하고, 문제가 있으면 traceroute로 어느 구간이 병목인지 추적합니다. DNS 문제가 의심되면 nslookup으로 확인하고, 내 시스템의 연결 상태는 netstat으로 점검합니다."

5. TCP/IP 4계층 모델

프로토콜의 계층 구조

프로토콜이 수십, 수백 가지가 있다면 이것들을 체계적으로 정리할 방법이 필요합니다. TCP/IP 모델은 프로토콜들을 역할에 따라 4개의 계층으로 분류합니다.

Q1
왜 프로토콜을 계층으로 나눌까요? 그냥 하나의 프로토콜로 모든 걸 처리하면 안 될까요?
계층을 나누면 모듈화의 이점을 얻습니다.

각 계층이 자기 역할에만 집중하면, 한 계층의 기술이 바뀌어도 다른 계층에 영향을 주지 않습니다. 예를 들어 링크 계층에서 이더넷 대신 Wi-Fi를 써도, 그 위의 IP나 TCP는 그대로 동작합니다.

또한 문제 진단이 쉬워집니다. "어느 계층에서 문제가 발생했는가"를 파악하면 해결 방향이 명확해지죠.

6. 캡슐화와 PDU

계층을 내려가며 헤더가 붙는 과정

데이터가 상위 계층에서 하위 계층으로 내려갈 때마다 해당 계층의 헤더가 추가됩니다. 이 과정을 캡슐화(Encapsulation)라고 합니다.

Q1
왜 각 계층에서 헤더를 붙일까요? 한 번에 모든 정보를 붙이면 안 될까요?
각 계층은 자기 역할에 필요한 정보만 알면 됩니다.

전송 계층은 "어떤 포트로 전달할지"만 알면 되고, 인터넷 계층은 "어떤 IP로 보낼지"만 알면 됩니다. 이렇게 분리하면 각 계층이 독립적으로 동작할 수 있고, 한 계층의 변경이 다른 계층에 영향을 주지 않습니다.

수신 측에서는 비캡슐화로 헤더를 하나씩 벗겨내며 위로 올라갑니다.

7. TCP 연결 수립과 해제

TCP의 신뢰성 있는 연결

TCP가 UDP와 다르게 신뢰성을 확보하는 핵심은 연결의 수립과 해제 과정에 있습니다.

Q1
IP는 기본적으로 데이터그램 방식(패킷이 독립적으로 이동)인데, TCP는 어떻게 "순서대로 도착"하는 것처럼 보이게 만들까요?
TCP 패킷에는 순서 번호(sequence number)가 붙습니다.

IP 수준에서는 패킷들이 여전히 독립적으로 이동하고 서로 다른 경로를 탈 수 있지만, TCP가 순서 번호를 보고 원래 순서대로 재조립합니다. 빠진 패킷이 있으면 재전송을 요청하고요.

그래서 애플리케이션에서 보기에는 마치 가상회선처럼 보이는 겁니다.

8. LAN 기술

유선 LAN과 무선 LAN

전이중화 통신 (Full Duplex)

양쪽 장치가 동시에 송수신할 수 있는 방식입니다. 송신로와 수신로가 분리되어 있어 동시 통신이 가능합니다.

트위스트 페어 케이블 (TP)

8개의 구리선을 둘씩 꼬아서 묶은 케이블. 전자기 간섭을 줄이기 위해 꼬아놓았습니다.

광섬유 케이블

레이저를 이용한 통신으로 장거리 및 고속 통신이 가능합니다. 전자기 간섭에 영향받지 않습니다.

처리량과의 연결
전이중화는 송신과 수신이 동시에 일어나 대역폭을 온전히 활용합니다.
반이중화는 한 번에 한 방향만 가능해서 실질적인 처리량이 떨어집니다.

무선 LAN이 유선보다 체감 속도가 느린 이유 중 하나가 바로 이 반이중화 특성 때문입니다.