계층을 내려갈 때마다 자기 헤더를 붙이는 것이 캡슐화이고, 올라갈 때 벗기는 것이 역캡슐화입니다. 각 계층은 아래가 어떻게 하는지 모른 채 자기 일만 합니다.
OSI 7계층
계층 구조
| 계층 | 이름 | 예 |
|---|---|---|
| 7 | 응용 (Application) | HTTP, FTP, DNS |
| 6 | 표현 (Presentation) | 암호화, 압축 |
| 5 | 세션 (Session) | 연결 관리 |
| 4 | 전송 (Transport) | TCP, UDP |
| 3 | 네트워크 (Network) | IP, 라우팅 |
| 2 | 데이터링크 (Data Link) | MAC, 이더넷 |
| 1 | 물리 (Physical) | 케이블, 전기신호 |
실무에서 중요한 계층
| 계층 | 핵심 | 실무 연관 |
|---|---|---|
| L7 응용 | HTTP, DNS | API 개발, 디버깅 |
| L4 전송 | TCP/UDP, Port | 소켓 프로그래밍, 방화벽 |
| L3 네트워크 | IP, 라우팅 | 서브넷, VPC 설계 |
| L2 데이터링크 | MAC | 스위치, ARP |
TCP/IP 4계층 vs OSI 7계층
| TCP/IP 4계층 | OSI 7계층 |
|---|---|
| 응용 | 7. 응용, 6. 표현, 5. 세션 |
| 전송 | 4. 전송 |
| 인터넷 | 3. 네트워크 |
| 네트워크 접근 | 2. 데이터링크, 1. 물리 |
계층으로 나눠 얻은 것
7개를 외우는 것이 목적이 아닙니다. 한 층을 바꿀 때 다른 층을 안 고쳐도 되는 것이 값입니다.
| 무엇이 바뀌어도 | 위층은 그대로 |
|---|---|
| 유선에서 무선으로 | 응용은 아무것도 모른다 |
| 주소 체계가 바뀜 | 응용 코드는 그대로다 |
| 응용 규약을 새로 만듦 | 아래 전부를 다시 쓰지 않는다 |
이 독립성이 인터넷이 확장된 이유입니다. 새 기술이 한 층에만 들어오고 나머지를 안 건드립니다.
장애를 어느 층부터 보나
실무에서 계층은 문제를 좁히는 순서로 씁니다.
주소가 풀리나. 안 되면 이름 해석 문제다
연결이 맺어지나. 안 되면 경로나 방화벽이다
연결은 되는데 응답이 이상하다. 그러면 응용 층이다
아래에서 위로 올라가는 것이 빠릅니다. 응용 코드를 먼저 뒤지면 아래 문제일 때 오래 헤맵니다. 그리고 실무에서 실제로 다루는 것은 대개 3, 4, 7 층이고 5와 6은 응용에 묻혀 있습니다.
면접 키워드
면접에서는 OSI 7계층 전부를 암기하기보다, L4/L7 로드밸런서 차이, 각 계층에서 사용하는 프로토콜을 중심으로 설명하면 좋음.