일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 백준
- 타입스크립트 올인원
- 토익
- 렛츠기릿 자바스크립트
- 타임어택
- javascript
- til
- 제로초
- 회고
- 타입스크립트
- 리트코드
- 2주 프로젝트
- 손에 익히며 배우는 네트워크 첫걸음
- 파이썬
- 코드스테이츠
- SQL 고득점 Kit
- js
- programmers
- 자바스크립트
- 4주 프로젝트
- 프로그래머스
- 리덕스
- 정재남
- python
- 리액트
- HTTP
- LeetCode
- codestates
- 알고리즘
- 코어 자바스크립트
- Today
- Total
Jerry
개발자를 위한 컴퓨터공학 2: 혼자 공부하는 네트워크 #1 본문
1. 컴퓨터 네트워크를 알아야 하는 이유
컴퓨터 네트워크(이하 네트워크)
- 여러 개의 장치가 마치 그물처럼 서로 연결되어 정보를 주고받을 수 있는 통신망
네트워크의 네트워크, 인터넷
- 여러 네트워크를 연결한 ‘네트워크의 네트워크’
네트워크는 그래프라는 자료구조 형태를 띄고 있다
개발자 업무
- 프로그램을 만드는 업무(에서 네트워크 지식을 활용하는 경우)
- 프로그램을 유지 보수하는 업무(에서 네트워크 지식을 활용하는 경우)
- 유지 보수 도구 사용
netstat
2. 네트워크 거시적으로 살펴보기 (1) 네트워크 기본 구조
네트워크 구조 = 그래프
그래프: 노드(정점)와 노드를 연결하는 간선으로 이루어진 자료 구조
네트워크 기기(가장자리 노드), 네트워크 장비(중간자리 노드), 서로 정보(메시지)를 주고받음
가장자리에 위치한 노드 - 호스트
중간에 위치한 노드 - 네트워크 장비
노드 간 연결하는 링크 - 통신 매체
노드 간 주고받는 정보 - 메시지
호스트
- 네트워크 가장자리 노드
- 네트워크를 통해서 주고받는 메시지를 최초로 생성해서 송신하거나 최종적으로 수신하는 대상
- 스마트폰, 데스크탑, 서버 컴퓨터
호스트 역할에 따른 구분
- 클라이언트, 서버
네트워크 장비
- 호스트 간 주고받을 정보가 거치는 중간 노드 (이더넷 허브, 스위치, 라우터, 공유기 등)
- 호스트 간 주고받는 정보가 수신기까지 안정적이고 안전하게 전송
호스트(서버, 클라이언트), 네트워크 장비
- 역할에 따라 또는 네트워크 구조에 따라 구분한 개념, 완전히 배타적인 개념은 아니다
- 호스트로 동작하는 노드도 때로는 네트워크 장비 역할 수행 가능
- 서버로 동작하는 노드도 때로는 클라이언트 역할 수행 가능
- 클라이언트로 동작하는 노드도 때로는 서버 역할 수행 가능
통신 매체
- 각 노드를 연결하는 간선(링크)
- 유선 매체, 무선 매체
호스트(서버, 클라이언트), 네트워크 장비
- 통신 매체로 연결된 노드가 주고받는 정보
- 웹페이지, 파일, 메일 등
3. 네트워크 거시적으로 살펴보기 (2) 네트워크 분류
범위에 따른 네트워크 분류
- LAN(Local Area Network)
- 가까운 지역을 연결한 근거리 통신망
예: 일반 가정, 특정 회사, 다른 국가의 가정 - WAN(Wide Area Network)ISP(Inter Service Provider)
- 사용자에게 인터넷과 같은 WAN에 연결 가능한 회선을 임대하는 등 WAN과 관련 다양한 서비스를 제공
- KT, LG유플러스, SK 브로드밴드
- 먼 지역을 연결하는 광역 통신망
인터넷이 WAN으로 분류
다른 LAN에 속한 호스트와 메시지를 주고받아야 할 때 필요
종류
- LAN < CAN(Campus) < MAN(Metropolitan) < WAN
메시지 교환 방식에 따른 네트워크 분류
- 회선 교환 네트워크
- 메시지를 주고받기 전 회선을 설정한 뒤, 해당 회선을 통해 메시지를 주고받는 방식
회선을 설정한다 = 두 호스트가 연결되었다 = 전송로를 예약하였다 = 전송로를 확보하였다
회선 스위치 : 전송로 확보하는 장비
장점 : 일정한 정보량 전송
단점 : 회선 이용 효율이 낮음 - 패킷 교환 네트워크
- 메시지를 패킷 단위로 쪼개어 전송하고 수신지에서 재조립
전송로 이용 효율 높음
현대 인터넷 대부분 해당 방식
패킷 스위치 : 송수신지 식별, 최적 경로 결정 (라우터, 스위치)
패킷 구조
- 페이로드: 전송하려는 데이터
- 헤더, 트레일러: 제어 정보
주소와 송수신지 유형에 따른 전송 방식
- 주소(address)
- 송수신지를 특정하는 정보
IP 주소, MAC 주소
특정 기기, 네트워크 전체, 그룹 등 대상 지정 가능 - 송수신지 유형별 전송 방식
- 유니캐스트 : 일대일 전송
- 브로드캐스트 : 네트워크 내 모든 호스트에게 전송
- 멀티캐스트 : 동일 그룹에 속한 호스트에게만 전송
- 애니캐스트 : 동일 그룹 중 가장 가까운 호스트에게 전송
4. 네트워크 미시적으로 살펴보기 (1) 프로토콜
택배로 책을 보내는 예시
- 멀리 떨어진 ‘영수(수신지 호스트)’에게 택배로 책을 선물
- 선물할 책(페이로드)을 택배 상자에 넣기
- 배송 주소 등 택배 기사가 읽을 메시지(헤더)를 작성하고 첨부
- 택배 기사(네트워크 장비)를 통해 발송
- 택배를 올바르게 주고받으려면? → 언어가 통해야 한다!
- 네트워크 세상의 언어, 프로토콜
: 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법
IP는 패킷을 수신지까지 전달하기 위해 사용되는 프로토콜이다
ARP는 192.168.1.1과 같은 IP 주소를 A1:B2:C3:D:E5:F6와 같은 MAC 주소로 대응하기 위해 사용되는 프로토콜이다
HTTPS는 HTTP에 비해 보안상 더 안전한 프로토콜이다
TCP는 UDP에 비해 일반적으로 느리지만 신뢰성이 높은 프로토콜이다
프로토콜마다 목적과 특징이 다르다!
- 프로토콜은 네트워크 세상의 언어와 같다
- 그리고 프로토콜마다 목적과 특징이 다르기 때문에, 해당 프로토콜로 주고받는 패킷의 헤더도 다를 수 있다
5. 네트워크 미시적으로 살펴보기 (2) 네트워크 참조 모델
송수신 과정은 서로 반대되어 있다
- 택배를 보내는 과정과 받는 과정은 반대
- 즉, 송수신 과정은 정형화된 여러 단계로 표현 가능 → 계층적 표현 가능
이렇게 계층적으로 표현될 수 있는 정형화된 단계를 네트워크 참조 모델이라고 한다
통신 과정을 계층적으로 나눈 이유
- 네트워크 구성과 설계가 용이
- 단계별로 프로토콜과 장비를 구성하면 설계가 쉬움
- 네트워크 문제 진단과 해결이 용이
대표적인 네트워크 참조 모델
- OSI 모델 (7계층)
- TCP/IP 모델 (4계층)
OSI 모델 (7계층)
- 물리, 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층
- 물리 계층 : 1과 0으로 표현되는 비트 신호를 주고받는 계층
- 데이터 링크 계층 : MAC 주소를 활용해 근거리 간 정보 주고받기
- 네트워크 계층 : 다른 네트워크에 속한 수신지까지 메시지 전달
- 전송 계층 : 신뢰성 있는 전송 보장 (포트 활용)
- 세션 계층 : 호스트 간 연결 상태 관리
- 표현 계층 : 문자 인코딩/압축/암호화
- 응용 계층 : 사용자 및 응용 프로그램에 네트워크 서비스 제공
TCP/IP 모델 (4계층)
- 네트워크 엑세스, 인터넷, 전송, 응용 계층
- 다른 이름: 인터넷 프로토콜 스위트, TCP/IP 프로토콜 스택
묶음 판매 세트처럼 주로 함께 쓰이는 프로토콜 묶음
- 네트워크 엑세스 계층 : 데이터 링크 계층 유사
- 인터넷 계층 : 네트워크 계층 유사
- 전송 계층 : 전송 계층 유사
- 응용 계층 : 세션 + 표현 + 응용 계층 유사
6. 네트워크 미시적으로 살펴보기 (3) 캡슐화, 역캡슐화
- 메시지는 송신지에서 상위 → 하위 계층 순으로 전달
- 메시지는 수신지에서 하위 → 상위 계층 순으로 전달
캡슐화
: 각 계층에서 헤더(및 트레일러)를 덧붙이는 과정
- 상위 계층에서 받은 데이터를 페이로드로 삼고, 헤더를 붙여 하위 계층으로 전달
- 상위 계층의 데이터는 하위 계층의 페이로드로 간주
역캡슐화
: 각 계층에서 헤더(및 트레일러)를 제거하는 과정
- 수신한 데이터를 계층 별로 해석하고 헤더 제거
PDU (Protocol Data Unit)
- 계층별 메시지 단위
- 현재 계층의 PDU = 상위 계층 데이터 + 현재 계층의 헤더(및 트레일러)
OSI 계층 | PDU 명칭 |
응용, 표현, 세션 | 데이터 |
전송 | 세그먼트 / 데이터그램 |
네트워크 | 패킷 |
데이터 링크 | 프레임 |
물리 | 비트 |
네트워크를 정복하고 싶다면 이 표를 외워서 그림 안 보고 그릴 수 있어야 함
7. OSI 7계층, TCP/IP 4계층은 사실 아무것도 하지 않는다
- 처음에는 네트워크 지식 = 참조 모델이라 오해하기 쉬움
- 하지만 네트워크 참조 모델은 반드시 지켜야 하는 규칙이 아니다
→ ‘참조’ 모델이기 때문 (밑그림) - 새로운 프로토콜과 장비는 계속 만들어지고 있으며,
모든 프로토콜이 특정 계층에 딱 맞게 대응되지 않음 - 네트워크 참조 모델이나 계층은 네트워크의 작동 주체가 아니다!
- 네트워크를 작동시키는 것은 참조 모델에 속한 프로토콜과 장비이다!
전공 지식 vs 실무 괴리
- 면접, 시험 준비에서는 참조 모델 개념이 중요
- 실무 개발에서는 부차적인 개념
- 따라서 모든 네트워크 개념을 참조 모델에 딱 맞춰 외울 필요는 없다
8. 트래픽과 네트워크 성능 지표
트래픽
- 네트워크 내의 정보량
- 주로 노드에서 측정
- “특정 시점에 노드를 경유하는 정보량”
- 과도한 트래픽이 발생하면
- **과부하(성능 저하)**가 일어날 수 있음
네트워크 내 성능은 어떻게 판단할까?
1) 처리율 (Throughput; 쓰루풋)
- 단위 시간당 네트워크를 통해 실제로 전송되는 정보량
- 표현 단위:
- bps (bits per second)
- Mbps (megabits per second)
- Gbps (gigabits per second)
- pps (packets per second)
2) 대역폭 (Bandwidth)
- 신호 처리 영역 정의: 주파수의 범위
- 컴퓨팅 영역 정의:
→ 단위 시간동안 통신 매체를 통해 송수신 가능한 최대 정보량
→ 정보를 주고받을 수 있는 ‘폭’
→ 단위: bps, Mbps, Gbps
3) 패킷 손실 (Packet Loss)
- 송수신 중 패킷이 손실된 상황
- 지표: 손실된 패킷 수 / 전체 패킷 수 (또는 백분율)
'CS > Network' 카테고리의 다른 글
AWS Lightsail 인스턴스 생성과 네트워크 구성 실습 – 고정 IP, 방화벽 (0) | 2025.03.27 |
---|---|
리눅스 기초 실습 기록 – 사용자 생성, 권한 설정, 서비스 관리까지 (0) | 2025.03.26 |
DNS와 TCP 통신 흐름을 시각화하며 이해하기 – nslookup, tracert, Wireshark 실습 기록 (2) | 2025.03.26 |
#18. 패킷, 처리량, 지연시간, 병목현상, TCP/IP, TCP/UDP, 캡슐화, PDU, 로드밸런서, ARP, MAC 주소, NAT (2) | 2025.03.26 |
후니의 쉽게 쓴 CISCO 네트워킹 #2 (0) | 2021.01.18 |