
2025.05.02
오늘한 내용 : 네트워크 프로그래밍 - OSI 7계층
WEEK08: BSD소켓, IP, TCP, HTTP, file descriptor, DNS
계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문.
흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문.



기능:
프레임 생성 (패킷(네트워크 계층) + 헤더/트레일러 추가)

프레이밍(Framing): 플래그(Flag)를 사용해 물리 계층에서 전달된 비트열을 프레임 단위로 구분한다.
헤더
트레일러
물리 주소 지정(Physical Addressing)
00:1A:2B:3C:4D:5E)오류 검출(Error Detection)
흐름 제어(Flow Control):
매체 접근 제어(Media Access Control, MAC)
장비 예시:
기능:
데이터를 전송할 때 출발지와 최종 목적지 시스템을 식별하기 위한 논리적인 주소인 헤더(IP 주소)를 할당한다.

장비 예시:
기능
세그멘테이션 & 재조립 (Segmentation & Reassembly)
- 애플리케이션으로부터 받은 큰 데이터 블록을 네트워크 MTU에 맞춰 쪼개어 세그먼트(TCP) 또는 데이터그램(UDP)을 생성
- 수신 측에서 순서에 맞춰 재조립

신뢰성 보장 (Reliability) – TCP 전용
포트 번호에 의한 다중화 (Multiplexing & Demultiplexing)
흐름 제어(Flow Control): 송신 속도와 수신 처리 속도 조율
오류 검출 및 복구(Error Checking & Recovery): 중복 검사, 손실된 세그먼트 재전송
주요 프로토콜
TCP: 연결형, 신뢰성·순서 보장, 혼잡 제어(Congestion Control) 포함
UDP: 비연결형, UDP헤더(8B)가 TCP헤더(20B ↑)보다 작음, 순서 보장·재전송 없음
| 기준 | TCP | UDP |
|---|---|---|
| 신뢰성 보장 | ✅(순서 보장, 재전송, 중복 제거) | ❌ (애플리케이션이 직접 구현해야 함) |
| 헤더 오버헤드 | 크다 (20바이트 이상) | 작다 (8바이트) |
| 실시간 전송 | 잘 안 맞음 (재전송 지연 있음) | 잘 맞음 (지연 최소화) |
| 애플리케이션 부담 | 낮음 (TCP가 대신 처리해 줌) | 높음 (개발자가 직접 흐름·신뢰성 제어) |
PDU 명칭: 세그먼트(segment, TCP) / 데이터그램(datagram, UDP)
| 프로토콜 | 포트 | 용도 |
|---|---|---|
| HTTP | 80/443 | 웹 페이지 전송 |
| DNS | 53 | 도메인 이름 ↔ IP 주소 변환 |
| SMTP | 25 | 이메일 전송 |
| FTP | 20/21 | 파일 업로드·다운로드 |
| SSH | 22 | 보안 원격 접속 |
도움 받은 블로그