OSI 7 LAYER

pneuma·2021년 3월 7일
1

네트워크

목록 보기
2/4

42seoul 과제중 netwhat을 진행하기 위한 네트워크 기본 지식중 osi 7 layer에 대하여 정리해 보았습니다.

netwhat과제를 진행하기 이전에도 OSI 7계층이라는 개념을 들어본 적이 있습니다.
하지만 그때 당시에는 "그래서 이게 뭔데 **아" 라는 생각이 들 뿐이었지요.
OSI 모델은 중요하다. 반드시 알아야 한다. 라는 것은 알았지만, 이것을 왜 알아야 하는지 몰랐습니다.

그래서 이번엔 OSI 모델의 내용 뿐만 아니라 왜 공부를 해야하는지도 알아봤습니다.

OSI 모델이란?

OSI(Open System Interconnection, 개방형 시스템 상호연결) 7계층 모델데이터를 전송할 때 해당 데이터를 어떤 방식으로 처리하여 전송해야 하는지를 나타내는 모델이라고 할 수 있습니다.

흔히 Protocol(통신 규약)이라는 것을 들어 보았을 것 입니다.
원할한 데이터 송수신을 위해 데이터를

  • 어떤 형식으로 만들어서
  • 어떤 순서에 따라 전송하고
  • 어떤 행동을 수행할지

를 정한 약속입니다.

Protocol이 만들어진 덕에 세계의 어떤 컴퓨터라도 충족해야할 Protocol을 지켜주기만 한다면 데이터를 주고 받을 수 있지요.

OSI 모델은 Protocol을 활용해서 체계적인 네트워크 체계를 제시한 모델입니다.

보내는 측의 데이터는 각 층을 지나며 각 층의 프로토콜에 관한 데이터가 추가되며 점점 길이가 증가합니다.
(받는 측에서는 반대로 각 프로토콜이 해석되며 점점 데이터의 길이가 줄어듭니다.)

OSI 모델의 구조

이름처럼 OSI모델은 총 7개의 층을 가지고 있습니다.
(출처 : https://insights.profitap.com/osi-7-layers-explained-the-easy-way)

층 수가 높아질수록 end-user(사용자)와 가까워 지고,
층 수가 낮아질수록 하드웨어와 가까워 집니다.

Layer 7 - Application Layer

OSI 모델의 최 상위 계층으로 응용 계층 이라고도 합니다.

end-user(사용자) 혹은 어플리케이션이 네트워크에 접근할 수 있도록 해주는 계층입니다.

사용자가 직접 볼 수 있는 계층이기때문에 UI(user interface)를 지원합니다.(인터넷 브라우저나 e-mail클라이언트 등)

대표적인 protocol은
Telnet(텔넷), FTP, SMTP, HTTP 등이 있습니다.

Layer 6 - Presentation Layer

표현 계층이라고도 불리는 층으로써

전송하려하는 데이터의 인코딩이나 디코딩 그리고 암호화와 복호화 등이 이루어 집니다.

전송할 때는 데이터를 하위 계층에서 사용할 수 있도록 변환해 주고,
데이터를 받을때는 상위 응용계층에서 사용자가 직접 확인할 수 있도록 데이터를 변환해줍니다.

Layer 5 - Session 층

세션 계층은 이름대로 Session의 관리를 담당하는 계층입니다.

Session
인터넷을 사용하면서 유지하려는 데이터를 의미합니다.
(로그인 정보 등등...)

Session에 대한 생성, 관리, 종료를 담당합니다.

Layer 4 - Transport Layer

전송 계층데이터의 신뢰성을 확보하는 계층 입니다.

응용프로세스간의 논리적 통신을 제공합니다.
덕분에 다른 호스트들이 네트워크에 머무를 수 있습니다.

상대방에게 확실하게 데이터를 전송하기 위해 데이터의 에러를 감지하고 이를 복구하는 기능을 수행합니다.

에러 복구를 위해 패킷을 재전송 하거나 전송 속도를 조절하여 데이터가 정상적으로 전송될 수 있도록 합니다.

대표적인 Protocol은
TPU와 UDP 등이 있습니다.

Layer 3 - Network Layer

네트워크 계층데이터를 올바른 경로로 전송할 수 있게 해주는 계층입니다.

경로와 주소를 정하고 데이터를 전송합니다.

IP가 이 계층에서 사용됩니다.

전송 계층 vs 네트워크 계층
전송 계층(layer 4 - Transport Layer)는 응용프로세서간의 논리적 통신에 관여하는 층 입니다.
네트워크 계층(layer 3 - Network Lyaer)는 호스트들 간의 논리적 통신에 관여하는 층 입니다.

데이터 링크 계층물리적인 네트워크 사이에서 데이터의 전송을 담당합니다.

데이터 전송시의 오류를 감지하면 데이터를 재전송하는 역할도 수행합니다.

MAC address(물리 주소)가 이 층에서 쓰입니다.

대표적인 프로토콜로는 DHCP 등이 있습니다.

Layer 1 - Physical Layer

물리 계층은 전기적 기계적 특성으로 실제 데이터를 전송합니다.

단순한 데이터의 전송 이외에 다른 동작(오류 검사, 복구 등..)은 이루어 지지않습니다.

OSI model에 따른 데이터 전송 과정

  1. 사용자는 응용 계층(layer 7 - Application layer)에서 각종 프로그램을 통해 네트워크로 접근하여 데이터를 전송합니다.
  2. 표현 계층(layer 6 - Presentation Layer)에서 전송하려는 데이터를 인코딩한 후 암호화를 진행합니다.
  3. 세션 계층(layer 5 - Session Layer)에서 전송하려는 데이터에 사용되는 여러 Session정보를 붙여집니다.
  4. 전송 계층(layer 4 -Transport Layer)에서 전송할 데이터에 대하여 오류를 감지할 수 있도록 처리를 해줍니다.
    프로토콜에 따라 데이터의 전송이 제대로 이루어지지 않았음을 감지하면, 재전송을 해줍니다.
  5. 네트워크 계층(layer 3 - Network Layer)에서 전송할 IP등을 확인하여 올바른 경로로 전송이 가능하도록 경로를 설정해줍니다.
  6. 데이터 링크 계층(layer 2 - Data Link Layer)에서 데이터 전송에 문제가 발생할 경우 재전송을 동작을 지원합니다.
  7. 물리 계층(layer 1 - Physical Layer)에서 실제로 데이터를 기계적 신호로 전송합니다.

그래서 OSI 모델을 사용하는 이유

OSI 모델은 크게 2가지 장점을 가지고 있습니다.

  1. 모든 네트워크들이 동일한 구성을 가지게 해줌으로써 서로 통신하기 쉽게 만들어 준다.
    PC끼리 통신을 할 때 데이터는 단순한 0과 1의 신호로 전송됩니다.

    그렇게 때문에 같은 데이터라도 어떻게 나눠서 해석하느냐에 따라 전혀 다른 내용이 됩니다.

    그래서 서로 데이터를 주고받기 위해서는 이러한 데이터들을 어떤 규칙으로 전송할지에 대한 약속(protocol)이 필요합니다.

    그런데 이런 약속은 정하기나름이라 개인마다 각자의 protocol을 사용하게되면 다른 PC로 데이터를 보내거나 받을 때 마다 해당 호스트에서 사용하는 protocol을 알고있어야만 하는 불편함이 있습니다.

    거기에 데이터 전송에 필요한 데이터들이 많아지면서 그 복잡도 또한 상승했습니다.

    OSI 모델은 이러한 데이터 서식에 관한 큰 기준을 제공해줌으로써 어느 네트워크라도 해당 모델을 따르게해서 PC에서 동일한 protocol을 사용해 전송받은 데이터의 해석을 쉽게 만들어 주었습니다.

  2. 네트워크에 이상이 생겼을 경우 문제 발생의 원인을 찾기 쉽게 해준다.
    OSI 7 layer는 각 층별로 동작하는 기능이 명확하게 구분되어 있습니다.

    이러한 구조는 네트워크에 문제가 생겼을 때 어느 계층에서 문제가 발생했는지 빠르게 파악하여 해당 부분만 고치면되기에 유지보수 측면에서 뛰어난 장점을 보유하고 있습니다.

Rerference :
https://jhnyang.tistory.com/194

https://www.notion.so/netwhat-f16994257d49440eacc07f8ecf7bb3ce

https://medium.com/humanscape-tech/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B8%B0%EC%B4%88-%EC%A7%80%EC%8B%9D-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-osi-7-layer-f305361364e1

http://blog.naver.com/PostView.nhn?blogId=pst8627&logNo=221670903384

https://stitchcoding.tistory.com/4

https://velog.io/@hidaehyunlee/%EB%8D%B0%EC%9D%B4%ED%84%B0%EA%B0%80-%EC%A0%84%EB%8B%AC%EB%90%98%EB%8A%94-%EC%9B%90%EB%A6%AC-OSI-7%EA%B3%84%EC%B8%B5-%EB%AA%A8%EB%8D%B8%EA%B3%BC-TCPIP-%EB%AA%A8%EB%8D%B8

https://movefast.tistory.com/24

http://blog.naver.com/PostView.nhn?blogId=wlsdml1103&logNo=220934928895&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView

profile
C++을 좋아하는 조금 모자란 사람이랍니다!

0개의 댓글