Studying/CS Knowledge

OSI 7 Layer

aoaa 2022. 6. 18. 17:05

https://refreshment-wg.tistory.com/4

 

데이터 전달 원리

1. 데이터의 기술적 개념  우선 데이터의 기술적 개념부터 생각해보자. 우리가 흔히 말하는, 컴퓨터 화면을 통해 볼 수 있는 모든 데이터는 컴퓨터 밖 세상의 것들과 크게 다르지 않다. 책처럼

refreshment-wg.tistory.com

 데이터 전달 원리라는 글에서 OSI 7 계층에 대해 간략히 적었는데 미흡한 부분이 있어 작성하였습니다.

 

 OSI 7 Layer(Open Systems Interconnection Reference Model)은 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층 간 상호 작동하는 방식을 정해놓은 모델입니다. OSI 7 계층이라고도 합니다. 


1. 목적 

 이러한 OSI 모델이 생겨난 이유는 무엇일까요?

배경부터 살펴보자면 80년대 이후부터 컴퓨터 네트워크 통신망이 확산되면서 그만큼 다양해진 통신망이 많이 혼재된 상황에서 기능 별로 구분할 필요성이 생겼습니다. 다른 제조사의 시스템이라도 유형에 관계 없이 상호 통신이 가능한 지침이 필요했기 때문에 ISO(국제표준화기구)에서는 OSI 7 계층이라는 모델을 발표했습니다.

 7 계층으로 나눠 통신이 일어나는 과정을 단계 별로 파악하여, 7 계층 중 특정한 곳에 이상이 생기게 되면 다른 계층을 터치하지 않고, 이상이 발생한 계층 단계에서 오류를 해결할 수 있게 되었습니다. 


2. Layer의 특징

 위의 사진은 7 Layer를 나타낸 그림으로, 맨 아래의 Layer부터 살펴보겠습니다. 

2.1 Physical Layer (물리 계층)

 먼저 물리 계층입니다. 이 물리계층에서는 주로 전기, 기계적 특성을 이용해 통신 케이블로 데이터를 전송하게 됩니다. 

1 계층에서는 통신단위를 bit(0, 1)로 나타내며 전기적으로 On과 Off 상태를 가르킵니다. 이 때 데이터를 전달만 할 뿐이지 이 데이터가 무엇인지 어떠한 에러가 있는지 신경쓰지 않는다는 특징이 있습니다. 

 네트워크 통신에서 케이블, 리피터, 허브를 통해 데이터를 전송하게 되는데 1 계층에 속하는 가장 대표적 장비입니다. 

 

2.2 DataLink Layer (데이터링크 계층)

 데이터 링크 계층은 물리 계층에서 정보가 송수신되는 과정에서 안전하게 정보의 전달을 수행할 수 있도록 돕는 계층입니다.

1계층에서 할 수 없었던 통신 에러를 찾아내거나 재전송 하는 기능을 갖고 있습니다.

 Point to Point 간 신뢰성 있는 전송을 보장하기 위한 계층으로 CRC 기반(순환 중복검사 : 데이터에 오류가 있는지 확인하는 체크값을 결정하는 방식)의 오류, 흐름제어가 필요합니다. 

 이 2계층에서 대표적 장치로는 브리지와 스위치가 있는데, 네트워크 카드의 고유한 식별자인 MAC 주소를 통해 통신하게 됩니다.

 

2.3 Network Layer (네트워크 계층)

 네트워크 계층은 데이터를 목적지까지 빠르고 안전하게 전달하는 라우팅 기능을 하는 계층입니다. 

네트워크 통신을 하는데 가장 핵심적인 계층으로 1) 경로를 선택하고 2) 주소를 정하고 3) 경로에 따라 패킷을 전달해주는 역할을 합니다.

 논리적인 주소(IP address)를 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며 계층적(hierarchical)이라는 특징을 가집니다. 

이 IP 프로토콜에는 신뢰성(에러 제어)과 흐름제어 기능이 없는데 특징으로는

1) 비연결성 데이터그램 방식으로 전달되는 프로토콜(Connectionsless)이며

2) 패킷 전달 시 순서가 바뀌거나 중복이나 소실이 일어나도 그래도 전달하기 때문에 완전한 전달을 보장하지 않습니다. (Unreliable)

 이러한 미흡한 패킷전달 특징때문에 TCP와 같은 상위 트랜스포트 계층에 의존하여 TCP/IP로 같이 사용합니다. 

2.4 Transport Layer (전송 계층)

 전송 계층은 통신을 활성화 하기 위한 계층으로 TCP 프로토콜과 Port를 통해 전송을 합니다.

Port는 한번에 여러 개의 서버와 통신을 해야 할 때, 여러 곳에서 온 패킷들을 구분할 수 없기 때문에 TCP/IP 패킷을 통해 해당 패킷 정보에 출발지 Port와 목적지 Port를 넣어 같은 IP 내에서 프로세스를 구분하는 역할을 합니다.

 네트워크 계층과 달리 연결기반(Connection oriented)으로 패킷들의 전송이 유효한지 확인하고 전송에 실패한 것은 다시 전송하게 됩니다. 

TCP와 UDP가 이 계층에 속하게 되는데 이 글을 참고하시면 좋겠습니다.

https://refreshment-wg.tistory.com/44

 

TCP & UDP

1. UDP(User Datagram Protocol) UDP는 비연결형 프로토콜로 IP 데이터그램을 캡슐화하여 보내는 방법과 연걸설정을 하지 않고 보내는 방법을 제공합니다. 또한 흐름제어, 오류제어 혹은 손상된 세그먼트

refreshment-wg.tistory.com

 

2.5 Session Layer (세션 계층)

 세션 계층은 데이터가 통신하기 위한 논리적 연결을 하는 계층을 말합니다. 

동시 송수신(Duplex), 반 이중송수신(Half-duplex),  전이중 송수신(Full-Duplex) 방식을 통해 세션을 설정하고 유지, 종료 중단 시 복구하는 기능을 수행하여 TCP/IP의 세션을 만들고 없애는 책임을 집니다.

 

2.6 Presentation Layer (표현 계층)

 표현 계층은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 7계층인 응용 계층으로부터 덜어주는 계층입니다.

 예를 들어 해당 데이터가 TEXT인지 그림파일인지, 그림 파일이라면 JPEG인지 GIF인지를 구분하는 역할을 하게됩니다.

즉 사용자의 명령어를 완성시키고 결과를 표현하여 압축하고 암호화합니다. 

 

2.7 Application Layer (응용 계층)

 응용 계층은 사용자와 가장 밀접한 계층으로 인터페이스 역할을 하는 계층입니다. HTTP, FTP 등 과 같은 프로토콜이 여기 포함됩니다.

통신 패킷들이 위에 나열된 프로토콜에 의해 처리되어 우리가 사용하는 브라우저나 애플레이케이션은 프로토콜을 사용을 쉽게 해주는 인터

페이스 역할을 하는 응용 프로그램입니다. 

 대표적으로 HTTP 프로토콜을 가장 많이 사용하는데 아래의 글을 참조하시면 되겠습니다.

 

https://refreshment-wg.tistory.com/9

 

HTTP란?

1. HTTP? 저희가 주소창에서 볼 수 있는 HTTP(HyperText Transfer Protocol)는 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고 받을 수 있는 프로토콜을 말합니다. 클라이언트(사용자)가 브라우저(Ch

refreshment-wg.tistory.com

 

 

 

 

 

 

 

 

 

 

참조

 

'Studying > CS Knowledge' 카테고리의 다른 글

Stateful & Stateless  (0) 2022.08.11
프레임워크 & 라이브러리  (0) 2022.06.25
가상 메모리  (0) 2022.04.25
캐시 메모리  (0) 2022.04.22
DNS round robin  (0) 2022.04.14