발전하는 춘배
[네트워크 개론] 1. 컴퓨터 네트워크 시작하기 본문
공부 자료
유튜브 한빛미디어, 네트워크 기초 강의 1~9강
https://youtube.com/playlist?list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&si=QiJwtVA8HO7yLx79
혼자 공부하는 네트워크
네트워크 전공 지식의 중요성을 알지만 혼자서 공부하기 어려운 분들을 위해 만들었습니다. 너무 쉽거나 어렵지 않도록 다수의 네트워크 전공 서적들을 면밀히 분석하고, 방대한 컴퓨터 네트워
www.youtube.com
1-1 컴퓨터 네트워크를 알아야 하는 이유
네트워크
여러 장치가 그물처럼 서로 연결되어 정보를 주고받을 수 있는 통신망
그래프의 형태로 표현됨
네트워크의 네트워크를 인터넷이라 함
네트워크 지식의 활용
프로그램을 만드는 경우, 여러 언어나 프레임워크의 공식 문서만 봐도 TCP, UDP, HTTP, 쿠키 등 많은 네트워크 개념이 등장한다.
프로그램을 유지보수하는 경우, 오류 상황을 정의하기 위해 네트워크 지식을 활용하는 경우가 많다. 또한, 유지보수 도구를 사용할 때 네트워크 개념이 자주 사용된다.
1-2 컴퓨터 네트워크 거시적으로 살펴보기
네트워크의 구조
네트워크는 내부적으로 그래프로 나타난다. 데스크탑, 스마트폰, 공유기 등의 기기는 노드이며, 이를 연결하는 유, 무선 통신이 간선이다.
호스트 - 최초로 정보를 생성해서 송신하거나, 최종적으로 정보를 수신하는 노드. 역할에 따라 클라이언트와 서버로 분류한다.
1) 클라이언트: 요청을 보내는 호스트
2) 서버: 요청에 대한 응답을 보내는 호스트
네트워크 장비 - 네트워크의 중간 노드로서, 호스트 간 주고받는 정보가 안정적으로 전송되도록 하는 역할. ex) 이더넷 허브, 스위치, 라우터, 공유기, 방화벽 등
통신 매체 - 각 노드를 연결하는 간선으로, 유선 매체와 무선 매체가 있다. 개발자일지라도 통신 매체에 관한 이해가 있어야 속도, 성능과 관련한 이슈를 깊게 이해할 수 있다.
메시지 - 네트워크는 웹 페이지, 파일, 메일 등 다양한 미디어 타입의 메시지를 주고받는다.
네트워크의 분류
범위에 따른 분류
- LAN(Local Area Network):
소규모 조직이 구축한 근거리 통신망. 개발자가 구축, 관리하는 대부분의 네트워크는 LAN이다. - WAN(Wide Area Network):
인터넷 등의 광역 통신망. 서로 다른 LAN에 속한 호스트끼리 통신해야 할 때 사용된다.
WAN을 관리하고 서비스를 제공하는 업체를 ISP 업체라 한다(ex. KT, LG, SK).
메시지 교환 방식에 따른 분류
- 회선 교환 네트워크:
회선 교환 방식 - 메시지를 주고받기 전 회선을 미리 확보한 후, 회선이 설정되었다면 해당 회선을 통해 메시지를 주고받는 방식.
호스트 사이의 전송로를 확보하는 네트워크 장비를 회선 스위치라고 한다.
장점: 주어진 시간 동안 전송되는 정보의 양(전송률)이 비교적 일정.
단점: 회선의 이용 효율이 낮아짐. 회선은 예약되어 있는데, 메시지 교환 횟수가 적다면 그것 자체로 낭비이다. - 패킷 교환 네트워크:
패킷 교환 방식 - 메시지를 패킷이라는 단위로 쪼개 전송하고 수신지에서 재조립하는 방식.
회선 교환 방식의 단점을 해결하여 전송로의 이용 효율이 높다.
현대 인터넷은 대부분 이 방식으로 메시지를 전송한다.
이 때, 쪼개진 패킷들은 서로 다른 경로로, 서로 다른 순서로 수신지에 도달할 수 있다.
패킷의 송수신지를 식별하고 패킷이 이동할 최적 경로를 결정하는 네트워크 장비를 패킷 스위치라 하며, 라우터, 스위치 등이 있다.
패킷을 알아보자
패킷의 구조
- 페이로드: 전송하려는 데이터
- 헤더, 트레일러: 부가 정보 또는 제어 정보
헤더에 담기는 대표적 정보로 주소(address)가 있다. 주소란 송수신지를 특정하는 정보로, IP주소나 MAC주소 등이 있다. 주소가 있으면 "누구에게" 전송할지, 즉 수신지의 유형을 지정할 수 있다.
송수신지 유형별 전송 방식
- 유니캐스트: 하나의 수신지에 메시지 전송 (일대일)
- 브로드캐스트: 네트워크상의 모든 호스트에게 전송. 일반적으로 LAN의 범위는 브로드캐스트가 전송되는 범위인 브로드캐스트 도메인으로 본다.
- 멀티캐스트, 애니캐스트도 있다.
1-3 네트워크 미시적으로 살펴보기
두 대의 컴퓨터가 정보(패킷)을 주고받는 과정에서 무슨 일들이 벌어질까?
프로토콜
영수에게 택배로 책을 선물한다고 가정해보자.
- 선물할 책(페이로드)를 택배 상자에 넣기
- 배송 주소 등의 정보가 담긴 송장(헤더)를 작성해 첨부
- 이 상자를 택배 기사(네트워크 장비)를 통해 발송
이 때 택배를 올바르게 주고 받으려면, 나와 영수, 택배 기사가 사용하는 언어(프로토콜)가 통해야 한다!
프로토콜: 노드 간 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법
통신 과정에서는 일반적으로 여러 프로토콜을 함께 사용한다. ex) IP, ARP, HTTP, HTTPS, TCP, UDP
각 프로토콜은 목적과 특징이 있다. 그러므로 목적과 특징에 집중해서 공부하면 좋다. 각 목적과 특징을 이루기 위한 정보들이 헤더에 포함된다.
ex)
IP: 패킷을 수신지까지 올바르게 전달하는 역할
ARP: IP주소를 MAC주소에 대응시키는 역할
HTTPS: HTTP보다 보안상 더 안전하다는 특징
TCP: UDP보다 느리지만 신뢰성이 높다는 특징
네트워크 참조 모델
택배를 보내는 과정을 세분화해보자.
- 선물할 책을 준비
- 책이 상하지 않도록 책을 포장
- 포장된 책을 상자에 담기
- 상자를 밀봉
- 송장을 상자에 붙임
- 택배를 택배 기사에게 전달
이때, 수신 과정은 송신 과정의 정확히 역과정이다.
이러한 정형화된 관계는 계층적으로 표현 가능하다.
네트워크 참조 모델: 통신이 이루어지는 각 과정을 계층으로 나눈 구조
왜 계층으로 나누는가?
- 네트워크 구성과 설계가 용이: 각 계층이 수행하는 역할을 명확히 함으로써 각 계층별 목표에 부합하는 프로토콜과 네트워크 장비를 배치하기가 용이하다.
- 네트워크 문제 진단과 해결이 용이: 문제가 발생했을 때, 문제가 어떤 계층에서 발생했는지 추적이 용이하다.
대표적 네트워크 참조 모델
- OSI 모델 (OSI 7계층):
7. 응용 계층: 사용자가 이용하는 응용 프로그램에 다양한 네트워크 서비스를 제공하는 계층
6. 표현 계층: 문자를 컴퓨터가 이해할 수 있는 코드로 변환하거나 압축, 암호화하는 계층
5. 세션 계층: 세션(통신을 주고받는 호스트의 응용 프로그램 간 연결 상태)을 관리하는 계층
4. 전송 계층: 신뢰성 있고 안정성 있는 전송을 위해 필요한 계층
3. 네트워크 계층: 메시지를 다른 네트워크에 속한 수신지까지 전달하는 계층 (LAN 간 통신)
2. 데이터 링크 계층: 네트워크 내 주변 장치 간 정보를 올바르게 주고받기 위한 계층 (LAN 내부)
1. 물리 계층: 최하단. 1과 0으로 표현되는 비트 신호를 주고받는 계층 (LAN 내부) - TCP/IP 모델(TCP/IP 4계층): 주로 함께 활용되는 프로토콜 묶음으로 계층을 묶음
4. 응용 계층: OSI 모델의 세션+표현+응용 계층과 유사
3. 전송 계층: OSI 모델의 전송 계층과 유사
2. 인터넷 계층: OSI 모델의 네트워크 계층과 유사
1. 네트워크 액세스 계층: OSI 모델의 데이터 링크 계층과 유사 (물리 계층에 해당하는 TCP/IP 모델 계층은 없는 걸로 보는 견해가 지배적)
캡슐화와 역캡슐화
캡슐화:
- 송신 과정에서, 상위 계층에서 하위 계층으로 내려오며 각 계층 별 프로토콜의 목적과 특징에 부합하는 헤더(및 트레일러)가 페이로드(데이터)에 추가되는 과정.
- 윗 계층의 헤더+페이로드가 아랫 계층의 페이로드가 된다.
역캡슐화:
- 수신 과정에서, 하위 계층에서 상위 계층으로 올라가며 헤더를 제거하는 과정.
PDU(Protocal Data Unit):
각 계층에서 송수신되는 메시지 단위.
현재 계층의 PDU = 윗 계층의 데이터(헤더+페이로드) + 현재 계층의 프로토콜 헤더
데이터(응용계층), 세그먼트(전송계층), IP패킷(네트워크계층), 프레임(데이터링크계층), 비트(물리계층) 등으로 지칭된다.
OSI 7계층, TCP/IP 4계층 같은 네트워크 참조 모델은 실무에서 아무것도 해주지 않는다.
네트워크 참조 모델은 말 그대로 "참조"용 밑그림이므로, 반드시 지켜야 하는 절대적 규칙이 아니다.
네트워크 장비의 경우 하위 계층의 기능을 포함하는 경우가 많아 그 경계가 모호하다.
네트워크를 작동시키는 주체는, 네트워크 참조 모델이 아니라, 네트워크 참조 모델에 속한 프로토콜과 네트워크 장비이다.
트래픽과 네트워크 성능 지표
트래픽: 네트워크 내 정보량. 주로 노드에서 측정된다. 즉, "특정 시점에 노드를 경유하는 정보량"으로 이해된다. 과도한 트래픽은 과부하로 인한 성능 저하를 발생시킨다.
네트워크의 성능 지표
- 처리율(throughput): '실시간' 단위 시간당 네트워크를 통해 실제로 전송되는 정보량
- 대역폭(bandwidth): 단위 시간 당 통신 매체를 통해 송수신할 수 있는 '최대의' 정보량
- 패킷 손실(packet loss): 올바르게 전송되지 않은 패킷의 비율
