943 words
5 mins
계층과 프로토콜
OSI(Open Systems Interconnection) 7계층과 TCP/IP(Transmission Control Protocol/Internet Protocol)
OSI 7계층 (교육용 개념 모델)
- 물리(Physical)
- 데이터링크(Data Link)
- 네트워크(Network)
- 전송(Transport)
- 세션(Session)
- 표현(Presentation)
- 응용(Application)
TCP/IP
- 네트워크 인터페이스
- 인터넷
- 전송
- 응용

OSI 7계층과 TCP/IP 매핑
왜 두 모델이 있는가
- OSI: 교육/분석용으로 세분화
- TCP/IP: 현실에서 동작하는 단순 모델
계층별 핵심 역할 (실무 관점)
물리 계층
- 케이블, 전기 신호, 무선
- 증상: 케이블 불량, 링크 다운
데이터링크 계층
- MAC 주소, 프레임 전달, 스위칭
- 증상: ARP 실패, 브로드캐스트 폭주
네트워크 계층
- IP 주소, 라우팅
- 증상: 다른 네트워크 접근 불가
전송 계층
- TCP/UDP, 포트, 세션
- 증상: 특정 포트 접속 불가
응용 계층
- HTTP, DNS, SSH
- 증상: 서비스 자체 오류
계층 분리의 이점
- 문제 진단이 빠르고 명확해짐
- 변경 영향 범위를 최소화
예시
웹 접속 실패 →
- 물리: 링크 연결 확인
- 네트워크: IP 할당 확인
- 전송: 포트 차단 확인
- 응용: 서버 상태 확인
실습 1: 계층 흐름 관찰
목표
DNS → TCP → TLS → HTTP 흐름을 직접 확인한다.
macOS / Linux
mac> dig example.commac> curl -v https://example.comWindows (PowerShell)
win> nslookup example.comwin> curl -v https://example.com예상 출력 (요약)
* Trying 93.184.216.34:443...* Connected to example.com (93.184.216.34)* TLS handshake, Client hello> GET / HTTP/1.1< HTTP/1.1 200 OK해석
- DNS: 이름 → IP
- TCP: 연결 수립
- TLS: 암호화 세션
- HTTP: 응답 수신
실습 2: 포트/계층 문제 구분
목표
포트가 막혔을 때와 DNS가 실패했을 때 증상을 비교한다.
단계
- DNS 확인
mac> dig example.com- 포트 확인
mac> nc -vz example.com 443예상 결과
- DNS 실패: IP 자체가 안 나옴
- 포트 실패: 연결 시도 후 timeout
캡슐화/역캡슐화
데이터는 상위 계층에서 하위 계층으로 내려갈 때 헤더가 붙는다. 이를 캡슐화라 하고, 수신 측에서는 역으로 역캡슐화가 진행된다.
HTTP 데이터→ TCP 헤더 추가→ IP 헤더 추가→ 이더넷 헤더 추가→ 전송
캡슐화 과정
OS별 실습: 계층별 문제 진단 순서
macOS
mac> ifconfig | grep statusmac> ping -c 3 8.8.8.8mac> dig example.commac> nc -vz example.com 443Windows
win> Get-NetAdapter | ft Name, Statuswin> ping -n 3 8.8.8.8win> nslookup example.comwin> Test-NetConnection example.com -Port 443Linux
lin> ip linklin> ping -c 3 8.8.8.8lin> dig example.comlin> nc -vz example.com 443진단 순서
- 링크/Wi-Fi 연결 확인 (물리)
- IP 할당 확인 (네트워크)
- DNS 확인 (응용)
- 포트 확인 (전송)
- 서비스 상태 확인 (응용)
실전 시나리오
상황: 특정 사이트만 접속 안 됨
- 물리/네트워크는 정상
- DNS는 정상
- 443 포트가 차단되거나 서버 정책 문제 가능
캡슐화와 MTU
캡슐화 과정에서 헤더가 계속 붙기 때문에 실제 전송 가능 데이터(페이로드)는 줄어든다. 예를 들어 MTU가 1500바이트일 때, TCP/IP 헤더(최소 40바이트)를 제외하면 실제 데이터는 약 1460바이트만 실을 수 있다.
MTU 설명MTU: 한 번에 전송 가능한 최대 크기. 이더넷 기준 보통 1500B이며, IP/TCP 헤더 때문에 앱 데이터는 대략 1460B 수준이 된다(옵션 없을 때).
핵심 포인트
- MTU가 너무 작으면 분할(Fragmentation) 발생 가능
- 분할은 성능 저하와 오류 원인이 될 수 있음
실전 사례
- 사례 1: 링크 다운 → 물리 계층 케이블 불량.
- 사례 2: DNS는 되지만 서비스 접속 실패 → 전송/응용 문제.
- 사례 3: IP는 있음, 외부 접속 불가 → 라우팅 문제.