이 글은 네트워크에 대한 개인 학습 내용을 꾸준히 정리하여 올립니다.
Overview
다음은 아미노 에이지가 지은 하루 3분 네트워크 교실을 기반으로 개인적으로 학습한 내용을 요약 및 정리한 글입니다.
1장 네트워크 기초 지식
- 네트워크의 기본 개념
- 네트워크는 점(노드)과 선(링크)으로 연결된 구조
- 컴퓨터 네트워크는 통신 매체로 연결되어 데이터를 운반하는 시스템
- 데이터 통신의 기초
- 데이터: 비트로 구성된 정보
- 인터페이스: 서로 다른 시스템 간 정보 송수신을 중개
- 프로토콜: 데이터 송수신을 위한 규칙
- 회선 교환과 패킷 교환
- 회선 교환: 교환기를 사용해 회선을 직접 연결, 전화 시스템에서 사용
- 패킷 교환: 데이터를 작은 패킷으로 분할하여 전송, 컴퓨터 네트워크에서 주로 사용
- 장점: 회선 공유 효율성 증가
- 단점: 패킷 도착 순서와 시간이 불규칙할 수 있음
- 네트워크 구조
- 세그먼트: 라우터 없이 직접 통신 가능한 범위의 네트워크
- 멀티액세스 네트워크: 허브를 사용해 여러 컴퓨터가 자유롭게 통신
- 포인트 투 포인트 네트워크: 두 지점 간 직접 연결
- LAN과 WAN
- LAN (Local Area Network): 좁은 범위의 네트워크, 고속, 저 에러율
- WAN (Wide Area Network): 넓은 범위의 네트워크, 저속, 고 에러율
- OSI 참조 모델
- 7계층 구조: 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용 계층
- 각 계층은 독립적이며, 하위 계층은 상위 계층을 위해 작동
- 캡슐화
- 각 계층에서 데이터에 제어 정보를 추가하는 과정
- PDU (Protocol Data Unit): 각 계층에서 캡슐화된 데이터 단위
- 응용 계층: 메시지
- 전송 계층: 세그먼트 또는 데이터그램
- 네트워크 계층: 패킷 또는 데이터그램
- 데이터링크 계층: 프레임
- TCP/IP 모델
- OSI 모델을 대체하는 실제 인터넷 표준 프로토콜
- 4계층 구조: 네트워크 접속, 인터넷, 전송, 응용 계층
2장 신호의 전송과 충돌
- 1계층 (물리 계층)
- 역할: 비트를 신호로 변환하여 케이블을 통해 전송
- 통신 매체
- 유선: 동선 (UTP 케이블), 광파이버
- 무선
- 인터페이스: 데이터와 신호 간 변환 담당 (예: NIC, DCE)
- 신호 전송
- 아날로그 신호 vs 디지털 신호
- 통신 속도: bps (bits per second) 단위로 측정
- 신호 문제
- 감쇠: 신호 강도 약화, 증폭기로 해결
- 노이즈: 외부 간섭, 차폐 케이블로 해결
- 허브
- 기능: 신호 증폭, 재생, 네트워크 확장
- 플러딩: 수신 포트 외 모든 포트로 신호 전송
- 충돌 도메인: 신호 충돌이 발생할 수 있는 네트워크 영역
- 2계층 (데이터 링크 계층)
- 역할: 세그먼트 내 데이터 전송 규정
- 프레이밍: 비트 스트림에 의미 부여
- 동기화: 프리엠블 사용
- MAC 주소
- 48비트 고유 식별자
- 유니캐스트, 브로드캐스트, 멀티캐스트 주소 지원
- 이더넷
- 구조: 헤더 (목적지/출발지 주소, 타입), 페이로드, 트레일러 (FCS)
- CSMA/CD: 충돌 감지 및 회피 메커니즘
- FCS (Frame Check Sequence): 오류 검출
- 스위치
- MAC 주소 필터링: 학습과 스위칭 기능
- 충돌 도메인 분리
- 버퍼링: 일시적 프레임 저장으로 충돌 방지
- 전이중 이더넷
- 동시 송수신 가능
- 스위치 사용 시 CSMA/CD 불필요
- 스위치 간 연결 시 전이중 통신 가능, 허브 포함 시 제한됨
3장 IP 어드레싱
- 3계층(네트워크 계층)의 역할
- 세그먼트 간 데이터 송수신
- 인터넷 작업 수행
- 어드레싱과 라우팅
- IP (Internet Protocol)
- TCP/IP 프로토콜군에서 사용되는 인터넷 작업 프로토콜
- IPv4(32비트)와 IPv6(128비트) 버전 존재
- IP 주소의 특징
- 계층형 주소 구조
- 네트워크 관리자가 할당
- 네트워크 접속 시마다 새로 할당 가능
- 유니캐스트, 멀티캐스트, 브로드캐스트 주소 유형 존재
- IP 주소 클래스 (클래스풀 어드레싱)
- A, B, C, D, E 클래스로 구분
- 네트워크 ID와 호스트 ID로 구성
- 현재는 사용하지 않음
- 서브네팅
- 큰 네트워크를 작은 서브네트워크로 분할
- 서브넷 마스크 사용하여 네트워크 ID와 호스트 ID 구분
- 클래스리스 어드레싱
- 클래스 구분 없이 필요에 따라 비트 수 지정
- CIDR(Classless Inter-Domain Routing) 표기법 사용
- DHCP (Dynamic Host Configuration Protocol)
- IP 주소를 동적으로 할당하는 프로토콜
- DHCP 서버와 클라이언트 간 메시지 교환 과정 설명
- ARP (Address Resolution Protocol)
- IP 주소를 MAC 주소로 변환하는 프로토콜
- ARP 테이블을 사용하여 IP-MAC 주소 매핑 정보 저장
- DNS (Domain Name System)
- 도메인 이름을 IP 주소로 변환하는 시스템
- 분산형 데이터베이스 구조
- 전 세계의 도메인 이름과 호스트 이름 관리
4장 라우터
- IP 주소와 MAC 주소의 차이점
- IP 주소: 전체적인 경로 방향을 결정하는 데 사용
- MAC 주소: 인접 기기 간 통신에 사용
- 라우터의 기본 개념
- 다른 네트워크로 데이터그램을 보내는 데 필수적
- 네트워크 간 경계에 위치하며 복수의 인터페이스를 가짐
- 각 인터페이스마다 다른 IP 주소 할당
- 라우터의 주요 기능
- 복수의 네트워크 연결 (LAN과 WAN 등 다른 종류의 네트워크 포함)
- 데이터그램 필터링
- 라우팅 테이블을 이용한 경로 결정
- 라우팅 테이블과 최장일치 룰
- 라우팅 테이블: 수신처 네트워크, 다음 라우터, 인터페이스 정보 포함
- 최장일치 룰: IP 주소와 네트워크 주소를 비교하여 가장 많이 일치하는 경로 선택
- 브로드캐스트 도메인
- 라우터가 브로드캐스트 도메인을 구분
- 브로드캐스트 도메인 = 네트워크
- 디폴트 게이트웨이
- 다른 네트워크로 데이터 송신 시 사용
- ARP를 통해 MAC 주소 획득
- 라우팅 방식
- 정적 라우팅: 관리자가 수동으로 경로 입력
- 동적 라우팅: 라우터가 자동으로 정보 교환 및 경로 계산
- 라우팅 프로토콜
- AS(자율 시스템) 간 라우팅용 EGP와 AS 내부 라우팅용 IGP로 구분
- RIP(라우팅 정보 프로토콜): 홉 수를 기준으로 최적 경로 결정
- ICMP (Internet Control Message Protocol)
- 에러 보고 및 네트워크 상태 조사에 사용
- Query 메시지와 Error 메시지로 구분
- TTL (Time to Live)
- IP 데이터그램의 생존 시간 제한
- 라우터 경유 시마다 1씩 감소, 0이 되면 파기
- 네트워크 진단 도구
- ping: 에코 요청을 통한 네트워크 연결성 확인
- traceroute: 수신처까지의 경로상 라우터 확인
5장 커넥션과 포트번호
- 4계층(전송 계층)의 역할
- 데이터 전달에 필요한 처리 수행
- 에러 복구
- 흐름 제어와 혼잡 제어
- 애플리케이션 식별 (포트 번호 사용)
- TCP와 UDP 비교
- TCP: 신뢰성 높음, 속도 느림
- UDP: 신뢰성 낮음, 속도 빠름
- TCP의 주요 특징
- 커넥션 기반 통신
- 세그먼트 분할 (MSS 사용)
- 시퀀스 번호를 이용한 에러 복구
- 3-way Handshake를 통한 연결 설정
- 확인 응답 (ACK) 메커니즘
- 윈도우 제어를 통한 흐름 제어
- TCP 헤더
- 크기: 20 옥텟
- 주요 필드: ACK, SYN, FIN 플래그
- 포트 번호
- 애플리케이션 식별에 사용
- 웰 노운 포트: 1-1023번
- UDP의 특징
- 단순하고 빠른 전송
- 실시간 애플리케이션에 적합 (VoIP, 동영상 스트리밍)
- 브로드캐스트 지원
- 네트워크 주소 변환 (NAT)
- 프라이빗 IP 주소를 퍼블릭 IP 주소로 변환
- NAPT: IP 주소와 포트 번호 동시 변환
- 정적 NAPT: 수동으로 변환 규칙 설정
- NAT/NAPT의 한계
- FTP 등 일부 프로토콜 사용 제한
- 보안 기능 제공
- 상위 계층 (5-7 계층) 개요
- 5계층 (세션 계층): 다이얼로그 제어
- 6계층 (표현 계층): 데이터 형식 변환, 압축, 암호화
- 7계층 (응용 계층): 네트워크 서비스 제공
AWS VPC
- VPC 개념과 구조
- 클라우드 내 논리적으로 격리된 사설 네트워크 환경
- 사용자 정의 IP 주소 범위, 서브넷, 라우팅 테이블 및 네트워크 게이트웨이 구성 가능
- 단일 AWS 리전 내에서 생성 및 운영됨
- RFC1918에 정의된 사설 IP 주소 대역 사용 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- 서브넷
- VPC의 IP 주소 범위를 세분화한 네트워크 세그먼트
- 단일 가용 영역(AZ) 내에 생성됨
- 퍼블릭 서브넷: 인터넷 게이트웨이를 통해 직접 인터넷에 연결 가능
- 프라이빗 서브넷: 직접적인 인터넷 연결 없이 내부 네트워크로만 통신
- 라우팅 테이블
- 네트워크 트래픽의 방향을 결정하는 규칙 집합
- 각 서브넷은 하나의 라우팅 테이블과 연결됨
- 로컬 라우팅(VPC 내부)은 자동으로 구성됨
- 외부 통신을 위한 라우팅 규칙은 수동으로 추가 필요
- 인터넷 게이트웨이 (IGW)
- VPC와 인터넷 간의 통신을 가능하게 하는 관문
- 퍼블릭 서브넷의 리소스가 인터넷과 통신하기 위해 필요
- 양방향 통신(인바운드 및 아웃바운드) 지원
- NAT 게이트웨이
- 프라이빗 서브넷의 리소스가 인터넷으로 아웃바운드 통신을 할 수 있게 해주는 서비스
- 퍼블릭 서브넷에 배치되며, 탄력적 IP 주소 할당 필요
- 인바운드 인터넷 트래픽은 차단하고 아웃바운드만 허용
- 보안 그룹 (Security Group)
- 인스턴스 수준의 방화벽 역할
- 상태 저장(Stateful) 방식으로 동작: 허용된 인바운드 트래픽의 응답은 자동으로 허용
- 허용 규칙만 지정 가능 (명시적인 거부 규칙 없음)
- 여러 인스턴스에 적용 가능하며, 인스턴스당 최대 5개의 보안 그룹 연결 가능
- 네트워크 ACL (NACL)
- 서브넷 수준의 방화벽 역할
- 상태 비저장(Stateless) 방식으로 동작: 인바운드와 아웃바운드 규칙을 별도로 지정해야 함
- 허용 및 거부 규칙 모두 지정 가능
- 규칙 번호에 따라 우선순위 결정 (낮은 번호가 높은 우선순위)
- VPC 피어링
- 서로 다른 VPC 간 프라이빗 통신을 가능하게 하는 기능
- 동일 계정 또는 다른 AWS 계정의 VPC와 피어링 가능
- 전이적 라우팅은 지원되지 않음 (A-B, B-C 피어링 시 A-C 직접 통신 불가)
- VPC 엔드포인트
- VPC와 지원되는 AWS 서비스 간의 프라이빗 연결 제공
- 인터넷 게이트웨이, NAT 장치, VPN 연결 또는 AWS Direct Connect 없이도 AWS 서비스에 연결 가능
- 게이트웨이 엔드포인트: S3, DynamoDB 등 지원
- 인터페이스 엔드포인트: 대부분의 AWS 서비스 지원
- Flow Logs
- VPC의 네트워크 인터페이스에서 전송되고 수신되는 IP 트래픽에 대한 정보를 수집
- Amazon CloudWatch Logs 또는 S3에 저장 가능
- 네트워크 트래픽 분석, 문제 해결 및 보안 분석에 활용