OSI 7 계층 모델이란 Open Systems Interconnection 7 Layer의 약자로, 네트워크를 통해 데이터를 주고받는 과정을 7개의 계층으로 설명한 모델
국제표준화기구인 ISO(International Organization for Standardization)에서 제정하였으며,
실제 구현된 시스템이라기보다는 추상적인 모델로 이해할 수 있음.
OSI 7계층 모델과 많이 비교하는 것이 TCP/IP인데, TCP/IP는 OSI와는 달리 실제 구현이 되어 실질적인 표준처럼 사용되는 모델임.
즉, 오늘날의 인터넷은 TCP/IP를 기반으로 동작하고 있고,
네트워크를 통해 데이터를 주고받는 모든 단계가 OSI 7계층 모델에 녹아 있기 때문에, TCP/IP도 이러한 OSI 7계층 모델의 관점으로 설명 가능
응용 계층(Application Layer)은 사용자에게 인터페이스를 제공하는 계층
즉, 사용자는 응용 계층에서 제공하는 인터페이스를 이용하여 네트워크 서비스 사용 가능
예시로,
메일을 보내고 받는 구글의 지메일(Gmail)이나 네이버 같은 일반 웹 브라우저가 응용 계층에 해당됨.
표현 계층(Presentation Layer)은 응용 계층(7계층)에서 다루는 데이터의 형식을 변환하는 계층
쉽게 말해, 암호화/복호화 혹은 인코딩/디코딩 등의 데이터 형식의 변환을 수행하는 계층
예를 들어 웹 브라우저는 밑 그림과 같이 HTML 포맷으로 인코딩되어 있는데, 이것은 사용자가 직접 보기에는 다소 불편하기 때문에 네이버에서는 사용자가 뽀기 쉽게 일반 텍스트 포맷으로 디코딩하여 보여줌.
html 포맷으로 인코딩되어있는 네이버 웹
웹에서 F12키를 누르면 html 포맷 확인 가능
세션 계층(Session Layer)은 두 개의 응용 프로세스 사이에 통신(세션)을 관리하는 계층
두 개의 애플리케이션이 대화를 수행하는 방식으로 전이중 방식 / 반이중 방식 / 단방향 방식 크게 3가지 존재
전이중 방식: 말하기(송신)과 듣기(수신)가 동시에 가능한 방식 (EX. 전화기)
반이중 방식: 말하기와 듣기 중 한 번에 한 가지만 가능한 방식 (Ex. 무전기)
단방향 방식: 한 쪽으로만 통신할 수 있는 방식 (Ex. 라디오)
예를 들어 앞 슬라이드에서 살펴본 네이버와 같은 웹브라우저는
웹 서버와 메시지를 주고받을 때 웹 브라우저가 먼저 요청을 하면 그 다음에 서버로부터 응답을 받는다는 점에서 반이중 방식이라고 볼 수 있음.
전송 계층(Transport Layer)은 데이터를 주고받을 때 데이터의 유실이 없도록 보장해주는 계층
이러한 신뢰성을 위해 데이터를 주고받는 양 끝단(End-to-end)에서 전달받은 데이터의 오류를 검출하고, 만약 오류가 있다고 판단되면 재전송을 요청함.
데이터의 유실이 없도록 데이터를 다시 보내는 것을 흐름 제어라고 함.
5계층의 일반 응용프로그램은 4계층이 하는 일에 관여할 필요가 없지만, 여러 번의 재전송에도 결국 보내기에 실패했다면 최종 성공 여부를 5계층에 알려주어야 함.
이러한 전송 계층의 상하 관계의 특성을 캡슐화라고 함.
4계층에서 다루는 데이터의 단위 = 세그먼트
단위를 쪼개는 이유는 네트워크에서는 너무 큰 크기의 메시지를 전송할 수 없기 때문임. 이 각각의 쪼개진 메시지에 헤더 정보를 덧붙임.
즉, 5계층이라는 페이로드(상위계층의 데이터)를 쪼개서 4계층의 세그먼트를 여러 개 만들어 헤더 정보를 붙임. => 캡슐화
네트워크 계층(Network Layer)은 라우팅을 처리하는 계층
라우팅이란?
데이터를 전달할 때 어떤 경로로 데이터를 보낼지 경로를 선택하는 것
예를 들어 아래 이미지를 봤을 때,
데이터 패킷이 컴퓨터 A에서 컴퓨터 B로 전달되려면 네트워크 1, 3, 5를 통과하는 방법과 네트워크 2, 4를 통과하는 방법이 있는데,
패킷은 네트워크 2, 4를 통하면 더 짧은 경로를 이용하지만 로딩 시간이 길어, 네트워크 1, 3, 5가 2, 4보다 패킷을 전달하는 데 더 빠를 수 있음.
네트워크 계층은 이처럼 최적의 전달 경로가 정해질 수 있도록 여러 가지 기능을 제공함.
그리고 네트워크 계층인 3계층에서도 캡슐화를 수행하는데,
4계층의 데이터인 세그먼트에 라우팅과 관련된 헤더 정보가 추가됨.
3계층의 데이터 단위 = 패킷(Packet)
데이터링크 계층(Data Link Layer)은 1계층을 기반으로 단말 사이의 신뢰성 있는 전송을 보장하는 계층
즉, 물리 계층의 비트 단위 전송에서 발생할 수 있는 에러를 검출하여 수정하는 계층이 바로 2계층인 데이터링크 계층
2계층에서 전달하는 데이터 단위는 프레임(Frame)이라고 하는데, 프레임은 3계층의 페이로드인 패킷 앞 뒤에 헤더와 트레일러를 덧붙임.
0과 1로 구성된 비트(bit) 단위로 자료를 전달하는 계층
광케이블, 구리 케이블 또는 무선 등과 같이 단말과 단말 사이를 실제 물리적으로 연결하는 계층
단말(Terminal)이란 앞서 3계층에서 언급한 네트워크 사이를 연결해주는 관문 역할을 하는 노드 뿐만 아니라 네트워크에 참여한 모든 단말을 포함
즉, 우리가 사용하는 PC 또는 스마트폰도 이러한 노드에 포함됨.
OSI란 국제표준화기구 ISO에서 제정한 네트워크의 동작 과정을 설명하는 가장 대표적인 모델
캡슐화란? 전송 계층의 상하 관계의 특성
4계층의 데이터 단위 - 세그먼트
3계층의 데이터 단위 - 패킷
2계층의 데이터 단위 - 프레임
각 계층이 가지고 있는 대표적인 특징, 전송 단위 잘 알기
OSI 7 Layer가 만들어진 궁극적인 목적
1. 표준화를 통한 비용 절감
2. 세분화를 통한 장애문제 해결 및 교육적인 효과 상승
4계층의 전송단위
TCP의 전송단위 - 세그먼트 / UDP의 전송단위 - 데이터 그램
7계층 - 우리가 흔히 사용하는 프로그램들
6계층 - 7계층에서 만들어진 데이터에 확장자를 부여하는 계층 (pptx, jpeg 등)
5계층 - 통신을 시작, 유지, 종료하는 일련의 과정을 담당하는 계층
4계층 - 종단 간 통신이 이루어지는 계층 (종단 - 제일 끝단에 있는 장비 - PC, 휴대폰 등)
3계층 - 출발지 IP와 목적지 IP가 서로가 통신을 할 때 최적의 경로 설정 (라우팅)
2계층 - 오류제어, 흐름제어, 혼잡제어 등 1계층에서 만들어진 전기적인 신호를 데이터 형태로 변경
1계층 - 0과 1로 이루어진 전기적인 신호인 비트단위로 통신이 이루어지는 계층
https://semizzang.tistory.com/474
https://velog.io/@moonlt93/%EC%BA%A1%EC%8A%90%ED%99%94-%EC%97%AD%EC%BA%A1%EC%8A%90%ED%99%94-encapsulation-decapsulation
https://www.lifewire.com/how-fast-does-your-pc-need-to-be-832310
http://joongang.co.kr/article/25115294
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/