---
description: OSI 7 Layer 가 무엇인지 알아보고, 추후 TCP/IP 에서 비교해보자
---

# OSI 7 Layer

### OSI 7 Layer 가 무엇인가?

네트워크에서 통신이 일어나는 **과정**을 7개의 계층으로 나눈 모델이다.

### 왜 OSI 를 7개의 계층으로 구분했는가?

* 통신에 관련된 공통 목적을 달성할 때 **계층별로 분할**하여 **분업**이 가능하다.
* 문제가 발생했을 때 문제가 발생한 곳을 **특정**할 수 있기에 **보수가 용이**하다.
* 통신 과정을 **단계 별로 파악**할 수 있다.

### 공통으로 적용되는 사항

* **상위 계층**에서 **하위 계층**으로 각 계층을 지날 때마다 계층을 구분할 수 있는 헤더가 **붙는다**. (**데이터 캡슐화**)
* **하위** **계층**에서 **상위** **계층**으로 각 계층을 지날 때마다 각 계층에 해당하는 헤더를 **떼어낸다**. (**역 캡슐화**)

### \[1] 물리 계층 - Physical Layer

0과 1의 데이터를 **연속적인** **아날로그 신호로 바꾸어** 전선으로 흘려보내고, 아날로그 신호를 받아 **불연속적인 0과 1의 데이터로 변환 및 전달**을 담당한다.

<details>

<summary>More</summary>

물리 계층에선 **데이터의** **전달만을 담당**할 뿐 데이터의 오류 체크, 데이터의 상태 등 **데이터의 내부엔 관심**이 없다.

* 통신 케이블로 데이터를 전송
* 주소 개념이 없으며 물리적으로 연결된 노드간에 신호를 주고 받는다.
* 데이터 전달만을 담당하고, 내부에 관심이 없음 (오류가 있는지, 데이터가 뭔지 모름)
* 물리 계층 장비 : 케이블, 허브, 리피터
* 단위 : 비트(Bits)

</details>

### \[2] 데이터링크 계층 - DataLink Layer

물리 계층에서 송수신되는 **정보의 오류와 흐름을 관리**하여 인접한 노드간의 **신뢰성 있는 데이터 전송을 제어**한다.

네트워크 계층에 속한 장비인 **브릿지**나 **스위치**에서 네트워크 카드의 **MAC 주소**를 통해 목적지를 찾아간다.

<details>

<summary>More</summary>

1. **회선 제어**
2. **흐름  제어**
3. **오류 제어**

* `Bits`가 제대로 전달되었는지 **아날로그적 검출**하는 기능을 담당하며, 손실되었으면 **재전송 요청**한다.
* 데이터 링크 계층 장비 : 브릿지, 스위치
* 단위 : 프레임(Frame)

</details>

### \[3] 네트워크 계층 - Network Layer

데이터를 목적지까지 **안전하고 빠르게** **전달**하는 역할을 담당하여 호스트로 도달하기 위한 **최적의 경로**를 라우팅 알고리즘을 통해 **선택하고 제어**한다.

> 한국에 있는 우리가 미국에 있는 존과 연락을 한다면 수많은 라우터를 거칠 것이다.\
> 이 때, 북극을 들렀다 갈 수도 있을 것이며, 일본을 들렀다 갈 수도 있을 것이다. 여기서 라우터는 **최적의 경로를 찾아 우리의 데이터를 전송**해 줄 것이다.

<details>

<summary>More</summary>

1. **라우팅**
2. **흐름 제어**
3. **세그멘테이션**
4. **오류제어**
5. **인터네트워킹**

* 네트워크 계층은 일반적으로 **IP 주소**를 이용하여 라우터의 **라우팅 테이블**을 통해 길을 찾는다.\
  더불어 여러 **라우팅 알고리즘**을 통해 라우팅 테이블을 갱신하며 최적의 경로를 찾는다.
* **전송 계층**이 요구하는 서비스 품질을 제공하기 위한 **기능적, 절차적 수단을 제공**한다.
* 네트워크 계층 장비 : 라우터, L3 스위치
* 단위 : 패킷(Packet)

</details>

### \[4] 전송 계층 - Transport Layer

`TCP`,`UDP`, `SPX`, `SCTP`와 같은 프로토콜로 구성되어 **오류, 흐름, 혼잡 제어** 등을 담당하며, 종단간 신뢰성있는 데이터를 전송한다.

<details>

<summary>More</summary>

* 프로세스의 `Port`를 사용하여 최종 도착지인 프로세스까지 데이터를 전달한다.
* `Packet`이 잘 도착했는지 **디지털적 검출**하는 기능을 담당하며, 전송되지 않은 패킷이 있다면 **재전송을 요구**한다.
* **패킷 에러체크를** 하며 전송되어온 패킷을 합쳐 원래의 메시지로 복원한다.
* 전송 계층에서 데이터의 검증을 통해 **무결성을 보장**하므로 **상위 계층에선 데이터의 무결성을 확인할 필요가 없기에** 부담이 덜하다.
* 하드웨어단이 아닌 운영체제의 **커널**에 **소프트웨어적으로 구현**되어있다.
* 단위 : 세그먼트(Segment)

</details>

### \[5] 세션 계층 - Session Layer

응용 프로그램 간의 통신****을 하기 위해 **OS**를 통한 **세션의 확립, 유지, 중단**하는 작업을 수행한다.

<details>

<summary>More</summary>

* **체크 포인팅과 유휴, 재시작 과정 등을 수행**
* 통신 방식의 확인 (전이중, 반이중, 이중)
* TCP/IP 세션을 만들고 없애고 통신하는 **사용자들을 동기화**하고 **오류 복구 명령**들을 일괄적으로 다루며 통신을 하기 위한 **세션을 확립**, **유지**, **중단** 하는 작업을 수행
* 나열한 모든 작업을 **OS** 에서 맡아 처리한다.
* 단위 : 데이터(Data)

</details>

### \[6] 표현 계층 - Presentation Layer

**응용 계층으로부터 전달받은** 데이터를 하위 계층 `세션 계층`에서 처리할 수 있게끔 **인코딩,**\
**세션 계층으로부터 전달받은** 데이터를 상위 계층인 `응용 계층`에서 이해할 수 있게끔 **디코딩**을 담당한다.

<details>

<summary>More</summary>

* 인코딩, 디코딩과 함께 **데이터를 보안을 유지**하기 위해 **`암호화`**`/`**`복호화`**&#xB3C4; 진행한다.
* 단위 : 데이터(Data)

</details>

### \[7] 애플리케이션 계층 - Application Layer

애플리케이션 계층은 OSI 7 Layer 모델에서 **최상위 계층**으로, **사용자가 네트워크 자원에 접근하는 방법을 제공**한다.

> 애플리케이션 계층의 **HTTP 프로토콜**을 크롬 브라우저 **프로그램을 통해 사용**하며, 데이터를 주고 받을 수 있다.

<details>

<summary>More</summary>

* 사용자는 **응용프로그램**을 통해 실제 데이터를 확인할 수 있으며, 이러한 데이터는 **프로토콜**(HTTP, FTP, SMTP, Telnet, DNS) **에 의해 처리**된다.
* 단위 : 데이터(Data)

</details>

### Ref

{% embed url="http://wiki.hash.kr/index.php/OSI_7_%EA%B3%84%EC%B8%B5" %}

{% embed url="https://www.imperva.com/learn/application-security/osi-model/" %}

{% embed url="https://itwiki.kr/w/OSI_7%EA%B3%84%EC%B8%B5" %}

{% embed url="https://velog.io/@jeongs/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-OSI-7-%EA%B3%84%EC%B8%B5-%EA%B7%B8%EB%A6%BC%EA%B3%BC-%ED%95%A8%EA%BB%98-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0" %}

{% embed url="https://sean.tistory.com/22" %}
