OSI 7계층을 나눈 이유는?
계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악하기 쉽고,
특정한 곳에서 이상이 생긴다면 이상이 생긴 단계만 파악해 고칠 수 있기 때문이다.
1. 물리계층 (Physical Layer) / 케이블, 리피터, 허브 등을 통한 데이터 전송
- 7계층 중 최하위 계층
- 주로 전기적, 기계적, 기능적인 (0 , 1) 같은 특성을 이용해 데이터를 전송한다.
- 데이터는 0 과 1 비트열, 즉 On, Off의 전기적 신호 상태로 이루어져 해당 계층은 단지 데이터를 전달한다.
- 즉 데이터가 무엇인지, 어떤 에러가 있는지에 대해서는 전혀 신경쓰지 않는다.
- 케이블이 대표적인 예시이다.
2. 데이터링크 계층 (Data-Link Layer) / 에러검출, 재전송, 흐름제어
- 물리적인 연결을 통하여 인접한 두 장치 간의 신뢰성 있는 정보 전송을 담당한다. (Point-To-Point)
- 따라서 통신에서의 오류도 찾아주고 재전송도 하는 기능을 가지고 있는 것이다.
- 데이터링크 계층에서는 MAC 주소를 가지고 통신하게 된다.
- 데이터링크 계층에서 전송되는 단위를 프레임이라고 하고, 대표적인 장비로는 브리지, 스위치 등이 있다. (여기서 MAC 주소를 사용한다.)
3. 네트워크 계층 (Network Layer) / 주소부여(IP), 경로설정(Route)
- 네트워크 계층에서 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능 (라우팅) 이다.
- 라우팅 기능을 맡고 있는 계층으로 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능을 가지고 있다.
- 네트워크 계층의 데이터 전송 단위는 패킷이다.
- 즉, 네트워크 계층은 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 것이 이 계층의 역할이다. (IP주소 사용)
- 네트워크 계층은 라우팅, 흐름제어, 세그멘테이션, 오류제어, 인터네트워킹 등을 수행한다
- 다른 네트워크를 연결해 데이터를 전달함으로써 인터넷이 가능하게 만드는 계층이다.
4. 전송 계층 (Transport Layer) / 패킷 생성 및 전송
- 통신을 활성화하기 위한 계층이다.
- 보통 TCP 프로토콜을 이용하며, 포트를 열어서 응용프로그램들이 전송을 할 수 있게 한다.
- 만약 데이터를 받았다면 전송계층에서 해당 데이터를 하나로 합쳐서 5계층에 던져 준다.
- 전송 계층까지는 물리적인 계층에 속한다 (TCP / UDP 프로토콜을 사용한다.)
- 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고, 연결기반이다.
- 즉, 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다. (UDP는 아니겟지?)
- 전송계층은 오류검출, 복구, 흐름제어, 중복검사 등을 수행한다.
5. 세션 계층 (Session Layer)
- 데이터가 통신하기 위한 논리적인 연결을 말한다.
- 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능이 있다.
- 세션 계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
- 동시 송수신 방식, 반이중 방식, 전이중 방식의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다.
- 세션 계층은 TCP / IP 세션을 만들고 없애는 책임을 진다.
6. 표현 계층 (Presentation Layer)
- 데이터를 어떻게 표현할지 정하는 역할을 하는 계층이다.
- 표현 계층은 3가지 기능을 가지고 있다.
1. 송신자에서 온 데이터를 해석하기 위한 응용계층 데이터 부호화, 변화
2. 수신자에서 데이터의 압축을 풀수 있는 방식으로 된 데이터 압축
3. 데이터의 암호화와 복호화
7. 응용 계층 (Application Layer)
- 사용자와 가장 밀접한 계층으로 인터페이스 역할을 담당하는 계층이다.
- 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
- 응용 프로세스 간의 정보 교환을 담당한다.
- ex) 전자메일, 인터넷, 동영상 플레이어 등
'Web Develop Log :' 카테고리의 다른 글
HTTP 프로토콜이란 무엇인가? (0) | 2022.08.10 |
---|---|
WAS (Web Application Server)란 무엇인가? (0) | 2022.08.10 |
Client 와 Server 란 무엇인가? (0) | 2022.08.08 |
JPA, Spring Data JPA 차이점 (0) | 2022.07.23 |
Ajax 에 대해서 알아보기 (0) | 2022.07.15 |