: 각 계층별 기능과 통신의 과정을 표준화해 네트워크를 편리하게 이해하기 위한 목적으로, 실무적으로, 교육의 목적으로 이용될 수 있도록 만든 모델
캡슐화
- 아랫층으로 데이터를 넘길 때 각각의 레이어에서 붙일 수 있는 헤더를 붙이는 과정
- 윗 층(어플리케이션) HTTP 개발자는 아랫층 소프트웨어에 헤더가 붙는 과정을 보지 못한다.
- 2층에서는 오류제어를 위해 헤더가 아닌 데이터의 뒷부분에도 일부 데이터가 추가됨
- PDU(프로토콜 데이터 유닛)
- 전송하려는 데이터 SDU(Service Data Unit) 와 제어 정보 PCI(Protocol Control Information)로 구성되어 있다.
- PCI에는 송신자와 수신자 주소, 오류 검출 코드, 프로토콜 제어 정보 등이 있다.
비캡슐화
- 전달받은 데이터가 윗쪽 계층으로 전해지면서 헤더가 벗겨지는 과정
계층 별 역할
1계층: 물리 계층(Physical Layer)
: 프레임을 전기신호(비트)로 변환해 케이블로 전송하는 계층
- 통신 단위 : 비트 (0 or 1)
- 단순히 데이터 전달만의 역할
- 1계층 장비 : 케이블, 리피터, 허브
2계층: 데이터 링크 계층(Data Link Layer)
: 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리해 안전한 정보의 수행을 도움.
- 통신 단위 : 프레임
- 물리적인 연결을 통하여 인접한 두 장치의 신뢰성 있는 정보 전송
- 물리 계층의 오류 수정
- Mac(부 계층) 주소를 가지고 통신
- Mac주소(Media Access Control) : 기기(컴퓨터)간 데이터를 전송하기 위해 사용되는 컴퓨터의 주소 (흔히들 IP주소라고 생각하지만, 정확하게는 IP주소를 Mac주소로 바꿔 물리적 위치를 찾아내는 것)
- MAC 테이블(ARP table)을 확인해서 있으면 그 주소로 보내고, 없으면 Network 상의 모든 곳으로 Broadcast 후 MAC 주소를 받아와서 저장한다.
- 2계층 장비 : 브릿지, 스위치.
3계층: 네트워크 계층(Network Layer)
: 데이터를 목적지까지 안전하고 빠르게 전달하는 기능
- 통신 단위 : 패킷 (패킷을 통해 목적지 설정)
- L4의 TCP 세그먼트에 IP 패킷을 담아 보냄
- 라우터 기능 대부분이 여기 존재
- A에서 B까지 어떻게 보낼지 방법은 무수히 많은데, 이 계층의 라우터가 이걸 효율적으로 처리
- IP(직접 주소) 주소 사용, 라우팅(어떤 목적지로 전달할지 - 다익스트라), 흐름 제어, 오류 검사
- 데이터를 연결하는 다른 네트워크를 통해 전달 - > 인터넷이 가능하게 만드는 계층
- 3계층 장비 : 라우터, L3 스위치
netstat -r
: r 옵션을 통해 routing table 확인 가능
4계층: 전송 계층(Transport Layer)
: 통신을 활성화하기 위한 계층
- 통신 단위 : 세그먼트
- 종단 간(End-to-End)에 신뢰성있는 데이터를 전송
- 상위 계층이 유효성이나 효율성 생각하지 않아도 됨.
- 송 수신자 연결 지원, 신뢰성, 흐름제어, 다중화
- Port를 열어 응용 프로그램을 전송 (목적지의 어떤 포트로 전달할지)
- TCP 프로토콜, UDP 프로토콜
- 4계층 장비 : L4 스위치(3계층 트래픽 분석, 서비스 종류 구분)
5계층: 세션 계층(Session Layer)
: 응용 프로그램 간 논리적 연결 지원, 응용 프로세스가 통신을 관리하기 위한 방법 정의
- 통신 단위 : Data(Message)
- 토큰이라는 특수 메시지
- TCP/IP 연결(세션)을 관리. 연결이 손실되면 복구를 시도하거나, 오랫동안 연결되지 않으면 연결을 종료하고 재개한다.
- NetBIOS(세션 내 연결관리, 에러감지, 복구), SSH, Appletalk 등등
6계층: 표현 계층(Presentation Layer)
: 데이터의 변환 작업. 응용 계층의 데이터 형식을 맞춰줌.
- 통신 단위 : Data(Message)
- 응용프로그램 형식과 네트워크 형식을 변환시켜준다. MIME 타입을 인코딩하거나 ASCII, JPEG, MPEG 등등 번역
- 전송하는 데이터의 인코딩, 디코딩, 암호화, 복호화
7계층: 응용 계층(Application Layer)
: UI를 제공
- 통신 단위 : Data(Message)
- 인터페이스 역할: 사용자에게 보이며, 사용자와 가장 밀접.
- 개발자들이 실제로 비즈니스 로직을 작성하는 등 신경써야할 많은 부분이 이 계층에 속하게 된다.
- 크롬, 파이어폭스, 사파리, 이메일 등 Application
- HTTP, FTP, SMTP, Telnet등 프로토콜
Reference)
HTTP 완벽가이드
https://ko.wikipedia.org/wiki/OSI_%EB%AA%A8%ED%98%95
https://en.wikipedia.org/wiki/OSI_model
https://devowen.com/344
https://ryusae.tistory.com/4
https://velog.io/@inyong_pang/OSI-7-%EA%B3%84%EC%B8%B5%EA%B3%BC-TCPIP-%EA%B3%84%EC%B8%B5
https://github.com/WeareSoft/tech-interview/blob/master/contents/images/data-encapsulation.png