소프트웨어 기술(스타트업 위주)
네트워크
네트워크 정리 입니다.
네트워크 기본 개념 정리
1. OSI 모델 (Open Systems Interconnection Model)
- 물리적 정의
OSI 모델은 네트워크 통신을 7계층으로 나눈 개념적 프레임워크로, 서로 다른 네트워크 장비와 시스템이 상호 운용될 수 있도록 표준화된 구조를 제공한다. 각 계층은 특정 기능을 수행하며, 데이터를 송수신하는 과정에서 상위 계층에서 하위 계층으로 데이터가 전달되거나, 반대로 하위 계층에서 상위 계층으로 전달된다.
- 계층별 설명 및 예시
물리 계층 (Physical Layer)
- 데이터 전송을 위한 물리적 매체와 신호를 정의
- 전기적, 광학적, 기계적, 기능적 특성을 규정
- 예: 이더넷 케이블, 광섬유, 라우터의 포트, RS-232
데이터 링크 계층 (Data Link Layer)
- MAC 주소 기반의 데이터 프레임 전송, 오류 감지 및 수정
- 이더넷 스위치, 브리지 장치 등이 포함됨
- 예: 스위치, MAC 주소, PPP 프로토콜, ARP
네트워크 계층 (Network Layer)
- IP 주소를 기반으로 패킷을 라우팅하여 목적지로 전달
- 패킷 스위칭 및 라우팅 기능 수행
- 예: 라우터, IP 프로토콜, ICMP, OSPF, BGP
전송 계층 (Transport Layer)
- TCP/UDP를 사용한 신뢰성 있는 데이터 전송 제공
- 흐름 제어, 오류 검출, 혼잡 제어 수행
- 예: TCP, UDP, 포트 번호 (HTTP: 80, HTTPS: 443)
세션 계층 (Session Layer)
- 연결 설정 및 유지 관리, 세션 복구 수행
- 데이터 송수신의 논리적인 흐름을 제어
- 예: NetBIOS, RPC, SOCKS
표현 계층 (Presentation Layer)
- 데이터 인코딩, 압축, 암호화 수행
- 서로 다른 시스템 간의 데이터 표현 변환 역할
- 예: SSL/TLS, JPEG, GIF, MP3, ASCII, Unicode
응용 계층 (Application Layer)
- 사용자와 직접 상호 작용하는 네트워크 서비스 제공
- 응용 프로그램과 네트워크 간 인터페이스 역할 수행
- 예: HTTP, FTP, SMTP, DNS, SNMP
장단점
장점: 네트워크 문제 해결이 용이, 표준화된 프로토콜 설계 가능, 계층별 모듈화 가능
단점: 실제 네트워크에서는 계층 간 경계가 명확하지 않음, 실용적인 구현이 어려울 수 있음
2. TCP/IP 모델
- 물리적 정의
OSI 모델과 달리 실제 인터넷에서 사용되는 네트워크 모델로, 네 개의 계층으로 구성된다. TCP/IP 프로토콜 스택은 인터넷을 통한 데이터 전송의 표준으로 사용되며, 효율적인 패킷 전달을 가능하게 한다.
- 계층별 설명 및 예시
네트워크 인터페이스 계층 (Network Interface Layer)
- 물리적 장치 및 데이터 링크 계층 포함
- 네트워크 하드웨어와 통신하는 계층
- 예: 이더넷, Wi-Fi, MAC 주소, ARP, PPP
인터넷 계층 (Internet Layer)
- 패킷 라우팅 및 전송을 담당하며, 최적의 경로를 결정함
- 예: IP(IPv4, IPv6), ICMP, ARP, RIP, BGP
전송 계층 (Transport Layer)
- 애플리케이션 계층과 인터넷 계층 간 데이터 흐름을 관리
- TCP: 신뢰성 있는 연결형 통신 제공
- UDP: 빠른 전송을 위한 비연결형 통신 제공
- 예: TCP, UDP, 포트 번호 (SSH: 22, SMTP: 25)
응용 계층 (Application Layer)
- 최종 사용자와 직접 상호 작용하며, 데이터 포맷 및 메시지 교환을 관리
- 예: HTTP, FTP, SMTP, SNMP, DHCP
장단점
장점: 실용적이며 실제 인터넷에서 사용됨, OSI 모델보다 간결함
단점: 계층 간 구분이 모호할 수 있음, 보안 기능이 기본적으로 포함되지 않음
3. DNS (Domain Name System)
- 정의
IP 주소와 도메인 네임을 매핑하는 시스템으로, 사람이 기억하기 쉬운 도메인 이름을 IP 주소로 변환하는 역할을 한다.
- 동작 원리
- 사용자가
example.com
입력 - DNS 서버에 쿼리 전송 (로컬 캐시 확인 후 없으면 상위 DNS 서버에 요청)
- 최종적으로 해당 도메인의 IP 주소를 반환
- 해당 IP 주소로 웹사이트 요청 수행
주요 구성 요소
루트 네임서버: 최상위 DNS 서버
TLD 네임서버:
.com
,.org
,.net
등을 관리권한 네임서버: 특정 도메인에 대한 정보를 보관
장점
사람이 이해하기 쉬운 도메인 사용 가능
트래픽 부하를 줄이기 위해 캐싱 기능 제공
단점
DDoS 공격의 대상이 될 수 있음
DNS 스푸핑 등의 보안 위협 가능
4. HTTP & HTTPS
정의
HTTP (Hypertext Transfer Protocol): 웹 브라우저와 웹 서버 간의 데이터 전송을 위한 프로토콜
HTTPS (HTTP Secure): HTTP에 TLS(SSL) 암호화를 추가하여 보안성을 높인 프로토콜
차이점
구분 | HTTP | HTTPS |
---|---|---|
보안성 | 암호화 없음 | TLS(SSL) 암호화 적용 |
포트 | 기본 80 | 기본 443 |
인증서 사용 | 없음 | SSL/TLS 인증서 필요 |
장점
HTTPS는 데이터 암호화로 보안성이 뛰어남
신뢰성 있는 통신 가능 (MITM 공격 방지)
단점
HTTPS는 추가적인 SSL 인증서 비용 발생
데이터 암호화로 인해 처리 속도가 다소 느려질 수 있음
5. Sockets
- 정의
소켓(Socket)은 네트워크에서 프로세스 간 통신을 가능하게 하는 인터페이스로, 클라이언트와 서버 간의 데이터 송수신을 관리한다.
주요 개념
TCP 소켓: 신뢰성 있는 연결 지향형 통신
UDP 소켓: 빠른 속도의 비연결형 통신
예시
웹 브라우저가 웹 서버와 통신할 때 TCP 소켓 사용
실시간 스트리밍 서비스에서 UDP 소켓 활용