[네트워크] OSI 7계층

·2023년 5월 2일
0
post-thumbnail

OSI 7계층

: 위키피디아에 따르면 OSI 7계층은 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이며, 간단하게 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것이라고 할 수 있다.

🤔 왜 굳이 나눴대?

통신이 일어나는 과정을 각 단계별로 파악함으로서 사용자가 흐름을 이해하기 쉽고, 과정 중 이상이 발생하면 단계를 특정하여 쉽게 오류를 해결할 수 있기 때문이다.

또한, 통일된 규칙을 사용하여 통신을 원활하게 할 수 있도록 만든 규약이기 때문에 대부분의 네트워크를 위한 하드웨어 및 소프트웨어는 OSI 7계층 모델을 기반으로 설계 및 제작한다.

물데네전세표응
각 계층은 독립적이며 계급, 상하 구조를 가진다.

계층 중 1 계층(물리계층), 2 계층(데이터링크 계층), 3계층(네트워크 계층)은 허브, 라우터와 같은 전송매체를 통해 데이터를 송수신한다.

1. 물리 계층(Physical Layer)

네트워크 데이터가 전송되는 물리적인 매체.

데이터는 0과 1의 비트열로, 전기적 신호 상태로 이루어져 있다. 해당 계층은 전압, 허브, 네트워크 어댑터 등 사용된 모든 하드웨어의 물리적 및 전기적 특성을 정의한다.

데이터를 전달하지만 송수신하는 데이터가 무엇인지, 어떤 에러가 있는지에 대해 신경쓰지 않는다.

단순하게 데이터를 전기적인 신호로 변환해서 주고받는 기능만 존재!

데이터 단위 전송

데이터 전송 단위 : 비트

  • 송신(데이터링크 -> 물리) : 데이터 링크 계층에서 0과 1로 구성된 비트열의 데이터(프레임)을 받아 전기적 신호로 변환한 후 전송 매체를 통하여 수신 측에 보낸다.
  • 수신(물리 -> 데이터링크) : 송신 측으로부터 받은 전기 신호0과 1로 구성된 비트 열로 복원하여 수신 측 데이터링크 계층에 전송

물리계층을 통해 송수신 되는 데이터의 대한 전송 제어 및 발생할 수 있는 오류를 탐지하고 오류를 수정하는데 필요한 기능적, 절차적 수단(재전송 등)을 제공하는 계층이다.

데이터링크 계층은 맥(MAC)주소를 가지고 통신하며 포인트 투 포인트(Point to Point)간 신뢰성 있는 전송을 보장하기 위한 계층으로 CRC기반의 오류제어(오류 검출과 흐름)와 흐름제어(송신 측과 수신 측의 속도 차이를 조정)가 필요하다.

🤔 CRC(Cyclic Redundancy Check, 순환 중복 검사)
네트워크 등을 통하여 데이터를 전송할 대 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식.
위키피디아 - CRC

데이터 단위 전송

데이터 전송 단위 : 프레임

🤔 프레임?
트레일러 + 데이터 + 헤더의 구성으로 이루어진 데이터 단위이며, 추가적인 정보를 가지고 있는 데이터를 말한다.

  • 송신(네트워크 -> 데이터링크) : 네트워크 계층으로부터 데이터 단위를 받아서 주소와 제어정보 같은 의미 있는 비트들을 헤더와 트레일러에 추가한다.
  • 수신(데이터링크 -> 네트워크) : 수신 측이 프레임을 받으면 헤더와 트레일러 제거 후 네트워크 계층을 전송

3. 네트워크 계층(Network Layer)

네트워크를 논리적으로 구분하는 계층으로 IP주소를 사용하고 라우팅 프로토콜을 통해 데이터를 전송하는 최적의 경로를 찾아내 목적지까지 가장 안전하고 빠르게 데이터를 보내는 기능을 가진다.

즉, 경로(Route)주소(IP)를 정하고 패킷을 전달하는 역할을 한다.

전송 계층에서 요구하는 서비스 품질을 위한 수단을 제공한다.

데이터 단위 전송

데이터 전송 단위 : 패킷

데이터는 패킷 하나가 아니라 여러개의 패킷으로 나뉘어 전송된다.

🤔 패킷?
세크먼트 + 헤더, 헤더에는 IP주소(송신자, 수신자 주소)가 포함되어 있다.

4. 전송 계층(Transport Layer)

서비스를 구분하고 사용자 간의 신뢰성 있는 데이터 전달을 담당하는 계층이다. 이러한 전달을 효율적으로 하기 위해 네트워크 계층에 패킷에 대한 오류 검출 및 복구, 흐름 제어, 중복 검사들을 수행한다.

실제 데이터 전송에 처음으로 관여하는 계층으로 상위 계층(논리적 연결)과 하위 계층(실제 Data 전송)간의 가교 역할을 수행한다.

데이터 전송을 위해 Port번호가 사용되며, 대표적인 프로토콜로는 TCP와 UDP가 있다.

데이터 단위 전송

데이터 전송 단위 : 세그먼트

🤔 세그먼트?
데이터 + 헤더
데이터 헤더에는 port 주소 또는 소켓(socket)주소를 포함한다.
헤더에는 순서 혹은 세그먼트 번호를 포함한다.

  • 세션 계층으로부터 온 데이터를 수신할 때 데이터를 전송할 수 있는 세그먼트로 나누고 수신 측에서 수신자가 재조립할 수 있도록 순서를 헤더에 표시한다.
  • 네트워크 계층은 전송해야 하는 시스템에게 각 패킷을 전송하는 일을 하고, 전송 계층은 해당 시스템의 응용 프로그램에게 모든 데이터를 전송하는 역할을 한다.

💡 프로토콜에 따른 데이터 단위
TCP는 세그먼트, UDP는 데이타그램을 사용한다.

5. 세션 계층(Session Layer)

응용 프로그램 간의 논리적 연결을 형성하고 유지 및 종료하는 기능을 담당하는 계층으로 일종의 대화 통로 역할을 한다.

데이터 송수신을 위한 설정(타이밍, 방법) 및 동기점 삽입을 통해 동기 제어 관리를 하여 재동기화와 에러 복구 용이하다.

데이터 전송 보완과 관련이 있으며 TCP/IP 세션을 만들고 없애는 역할을 한다.

데이터 단위 전송

데이터 전송 단위 : 메세지(데이터)

6. 표현 계층(Presentation Layer)

전송하는 데이터의 표현 방식을 결정하는 계층으로 두 응용 계층간의 데이터 표현 차이를 해소하기 위해 방식을 통일화하는 역할을 한다.

인코딩, 정보 압축 및 해제, 암호화와 복호화 기능을 가지고 있으며 파일의 확장자(txt, jpeg, html 등)는 해당 계층과 관련된 프로콜이다.

데이터 단위 전송

데이터 전송 단위 : 메세지(데이터)

7. 응용 계층(Application Layer)

네트워크를 통한 응용 프로그램간의 정보 교환을 하며 사용자 인터페이스를 제공하는 계층이다. 실질적으로 사용자와 가장 가까운 위치에 있으며 사용하는 응용 서비스나 프로세스가 바로 응용 계층에서 동작한다.

HTTP, FTP, SMTP 등과 같은 프로토콜이 응용 계층에 속한다.

데이터 단위 전송

데이터 전송 단위 : 메세지(데이터)

참고
[기술사/토픽-네트워크] 네트워크계층(OSI 7 Layer)
OSI 7계층 중 홉 단위로 수행되는 계층과 종단간 수행되는 계층으로 구분
OSI 7계층 모델 - 핵심 총정리
해시넷 - OSI 7계층
OSI 7계층

profile
🧑‍💻백엔드 개발자, 조금씩 꾸준하게

0개의 댓글