[CS] OSI 7계층

Kerri·2021년 2월 28일
0

cs

목록 보기
1/5
post-custom-banner

CS 첫 글을 뭐로할까 하다가 OSI 7계층에 다뤄보도록 하겠습니다.
( ** 이 글은 raejoonee velog와 reakwon tistory를 많이 참고하여 적은 글입니다.)

OSI 7계층이란 ?

: 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층별로 나누어서 설명하는 것

  • 사용하는 이유 ?
    - 네트워크 규격의 표준화하기 위해
    - 통신 과정을 각 계층별로 분리해 계층간의 독립성을 확보하기 위해
    -> 통신 과정에 이상이 발생하면 이상이 있는 계층에 대해서만 작업을 수행하면 되고,
    나머지 계층은 영향을 받지 않기 때문에 디버깅이 쉬워진다.


여기서, 프로토콜이란 무엇일까 ?

프로토콜(Protocol)은 컴퓨터나 네트워크 장비가 서로 통신하기 위해 미리 정해 놓은 약속 또는 규약을 의미합니다.

쉽게 말해서 송신자와 수신자 사이에 "이건 이런식으로 하자", "이건 이런 의미라고 하자", "구조는 이런식으로 하자", "이런식으로 보내기로하자" 라고 약속을 하는 것입니다.

실생활에 비유하면 양식에 맞게 글을 써서 제출하는 것이라고 생각하면 되겠습니다.

프로토콜은 이러한 것들을 네트워크 상에 미리 정해놓은 것이라고 할 수 있습니다.

자, 이제 그럼 OSI 7계층에 대해 알아보겠습니다 !

응용계층에서 내려온 데이터부터 계층마다 헤더가 붙는 것을 알 수 있습니다. 이 헤더에는 그 계층에 대한 정보가 기록되어 있습니다.

우리가 어떤 데이터를 최상위 계층인 응용계층에서 생성하고, 이를 하위 계층으로 내려갈때마다 데이터에 헤더가 붙게 됩니다. 하위 계층으로 데이터를 전송할 때 다른 계층에서 처리한 데이터를 인식할 수 있도록 하는 것이죠. 이 과정을 캡슐화(Encapsulation)라고 합니다. 이런식으로 해서 물리계층까지 내려오면 그때부터 0과 1의 이진 비트 신호(Signal)가 전송되게 됩니다.

받은 수신자는 거꾸로 물리계층으로부터 시작해 헤더의 정보를 확인하고 떼어내는 과정을 합니다. 그러고 난 후 상위 계층으로 데이터를 전달합니다. 이렇게 헤더를 떼어내는 과정은 역캡슐화(Decapsulation)이라고 합니다.

1. 물리 계층(Physical Layer)

7계층 중에서 최하위 계층입니다. 전기적, 기계적 특성을 이용해 데이터를 전송합니다. 데이터는 0과 1의 비트열로 이루어져 있습니다.

이 계층은 단지 데이터를 전달하기만 해서 제어를 하거나 어떤 에러가 있는지에 대해선 관여하지 않습니다.

물리 계층에서 송수신되는 정보의 오류와 흐름을 관리해 안전하게 정보가 전달될 수 있도록 도와주는 역할을 합니다.
데이터 링크 계층의 데이터 전송은 Point-to-Point(노드 대 노드 간)로 이루어집니다.

안전한 정보 전달은 오류나 재전송하는 기능을 말합니다.

네트워크 계층에서 전달받은 데이터에 그 정보의 주소와 제어 정보를 각각 헤더와 테일로 붙입니다. 데이터 링크 계층에서 이렇게 전송하는 데이터 전송 단위를 프레임(Frame)이라고 합니다.

각 장치마다 MAC 주소를 가지고 있어 정확한 장치로 데이터를 전송할 수 있도록 합니다.

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

네트워크 계층은 데이터가 최종 목적지까지 어떤 경로를 통해 전달될 지 경로를 설정하는 역할을 합니다.
네트워크 계층은 네트워크에서 아주 중요한 역할을 하는데, 라우팅이라는 기능을 가지고 있기 때문입니다. 네트워크 계층의 데이터 전송 단위는 패킷(Packet)이고, 패킷을 최종 목적지까지 가장 빠르고 안전하게 전송할 수 있도록 하는 것이 라우팅입니다. 네트워크 계층은 바로 이 라우팅 기능을 수행하는 역할을 합니다.

또한 어느 컴퓨터에게 데이터를 전송할지 주소를 갖고 있어서 통신을 할 수 있습니다. IP 주소가 바로 이 네트워크 계층 헤더에 속해있습니다.

4. 전송 계층(Transport Layer)

전송 계층 또한 네트워크에서 중요한 계층입니다. 전송 계층은 송신자와 수신자(목적지) 양 끝단 간 신뢰성 있는 데이터를 주고 받게 해주는 역할을 합니다. 송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위해 오류검출 및 복구, 흐름제어와 중복검사 등을 수행합니다.

데이터 전송을 위해서 Port 번호가 사용됩니다. 대표적인 프로토콜로는 TCP UDP가 있습니다. 이 계층에서 사용하는 데이터 단위는 TCP는 세그먼트(Segment), UDP는 데이터그램(Datagram)을 이용합니다.

5. 세션 계층(Session Layer)

세션 계층은 응용 프로세스가 통신을 관리하기 위한 방법을 정의하고, 세션을 만들고 없애는 역할을 합니다.
또한 세션 계층은 포트 연결을 통해 통신 장치 간의 상호작용을 설정하고, 유지하며, 동기화하는 역할을 합니다.

대표적인 프로토콜로는 TLS, SSH가 있습니다.

6. 표현 계층(Presentation Layer)

표현 계층은 운영체제를 통해 입출력되는 데이터를 다른 표현 형태로 변환하는 역할을 합니다. 데이터를 어떻게 표현할 지 정하는 역할을 하죠, 확장자라고 생각하면 편할 것 같습니다.

주요 프로토콜인 JPEG, MPEG를 보면 쉽게 이해할 수 있는데, 내 휴대폰을 통해 보낸 JPG 확장자의 사진이 다른 장치에서도 똑같아 보이는 이유가 다른 장치의 표현 계층에서 통신 과정에서 얻은 데이터의 번역을 수행했기 때문이라고 생각하면 이해하기 편합니다.

7. 응용 계층(Application Layer)

사용자와 직접 상호작용하며 인터페이스 역할을 수행합니다. 각 프로세스 간의 정보 교환을 담당합니다.
우리가 사용하는 응용 서비스나 프로세스가 바로 응용 계층에서 동작합니다. 동영상 재생 프로그램이나 인터넷 브라우저 등 우리가 자주 사용하는 프로그램들 또한 이 이 계층에 포함되어 사용자가 네트워크에 접근할 수 있도록 도와주는 기능을 수행합니다.

주요 프로토콜로는 DHCP, DNS, FTP, HTTP가 있습니다.


TCP/IP 프로토콜에서는 1계층과 2계층을 한 계층으로 보고,
5~7계층을 응용 계층인 한 계층으로 봅니다. 실제 응용프로그램에서 5~7계층이 한 덩어리 처럼 사용되고 하나의 레이어로 취급되기 때문에 한 계층으로 봅니다.

참고)

OSI 참조 모델 완전히 파헤치기
[네트워크] OSI 7 계층 (OSI 7 LAYER) 기본 개념, 각 계층 설명

[위키백과] 통신 프로토콜

이미지 출처)

Tian
reakwon

profile
안녕하세요 !
post-custom-banner

0개의 댓글