OSI 7계층

성찬홍·2024년 8월 24일
0

Computer Science

목록 보기
2/6
post-thumbnail

오늘은 정처기 공부할 때 ,무지성으로 외우기만 했던 OSI7계층을
각 층이 어떤 역할을 하는지 공부해보겠습니다.

네트워크란?

: 컴퓨터나 기타 기기들이 리소스를 공유하거나 데이터를 주고 받기 위해 유선 혹은 무선으로 연결된 통신 체계를 말한다.

기능들

  • 애플리케이션 목적에 맞는 통신 방법 제공
  • 신뢰할 수 있는 데이터 전송 방법 제공
  • 네트워크 간의 최적의 통신 경로 결정
  • 목적지로 데이터로 데이터 전송
  • 노드 사이의 데이터 전송

⇒ 위 통신 기능이 제대로 동작하기 위해서는 참여자들 사이에서 약속된 통신 방법이 있어야 한다.

&이 모든 기능을 하나의 프로토콜로 구현할 수 있을까?
=> 그럴 수 없다.

  • 그래서, 모듈화를 해야 한다.
  • 기능별로 분리를 하자.
  • 어떻게 모듈화를 하면 될까?
    => 네트워크가 제공하는 기능들을 살펴보니, 각 기능이 계층별로 동작하는것 같다는 구조로 보인다.
    => 계층구조의 탄생 ( OSI model 7 layer )

OSI 7계층이란?

: 범용적인 네트워크 구조

1. application layer (7층)

: 애플리케이션 목적에 맞는 통신 방법 제공

ex)

  • HTTP : 어플끼리 통신을 하고싶다면
  • FTP : 파일을 업로드하고 다운하고
  • DNS : 도메인을 IP 주소로 바꾸고 싶다면
  • SMTP : 이메일을 보내고 싶다면

⇒ 어떻게 데이터를 보낼것인가 , 이런거는 7층의 관심사가 아니라, 아래의 기능들을 사용하는 것이다.

2. presentation layer (6층)

: 애플리케이션 간의 통신에서 메시지 포맷 관리

  • 인코딩 ↔ 디코딩
  • 암호화 ↔ 복호화
  • 압축 ↔ 압축 풀기

3. session layer

: 애플리케이션 간의 통신에서 세션을 관리

  • RPC

4. transport layer

  • 애플리케이션 간의 통신 당담
  • 목적지 애플리케이션으로 데이터 전송
  • 안정적이고 신뢰할 수 있는 데이터 전송 보장 ( TCP )
  • 필수 기능만 제공 ( UDP )

5. network layer

  • 호스트 간의 통신 담당 (IP)
  • 목적지 호스트 데이터 전송
  • 네트워크 간의 최적의 경로 결정

⇒ 전체적인 경로를 담당하는것이지 데이터를 어떻게 전송할 것인가?는 네트워크 계층의 관심사가 아니다.
데이터를 전송하는것은 데이터 링크 계층이 수행을 하는것이다.

⇒ 바로 아래의 층의 기능을 사용하는 것이다.

  • 직접 연결된 노드 간의 통신 당담
    • MAC 주소 기반 통신 (ARP)

7. physical layer

: bits 단위로 데이터 전송


그림으로 나타내는 네트워크 계층을 통한 데이터 전송 모습

(1) 7층에서 1층으로 데이터가 내려오면서 포장이 된다.
(2) 1층까지 내려왔으면, 라우터로 보내고 이 포장지를 뜯어서 3층으로 보낸다.
(3) 이게 목적지에 도착할 수 있도록 IP 주소를 알고 1층으로 포장해서 보내고 , 우측의 1층으로 보낸다.
(4) 이게 7층까지 올라가 데이터로 전달되는 것이다.

예제를 통한 설명

Step 1

  • 7층(어플리케이션)에서 발생한 정보를 어플리케이션 헤더에 담아 묶어서 6층(프레젠테이션)로 보낸다.
  • 6층(프레센테이션)에서도 부가적인 정보르 새 헤더에 담아서 5층(세션)에 전달해 준다.
  • 5층(세션)에서도 헤더에 새 정보를 담아서 4층(트랜스포트)에 전달해준다.

Step2
-4층(트랜스포트)은 목적지 전달을 위한 계층이므로, 목적지 전달에 필요한 내용을 헤더에 담고 3층(네트워크)에 전달해준다.
-3층(네트워크)는 이 어플리케이션을 담당하는 호스트 사이에서 담당하기에 , 목적지 IP 주소를 확인하고 어디로 보내줘야할 지
네트워크 레이어의 헤더에 담아서 2층(데이터 링크)로 보내준다.

  • 2층(데이터 링크)에는 이 둘 사이에 데이터를 어떻게 보내줄 지 2층(데이터 링크)헤더에 담아주고 ,트레일러를 담아준다.
    그리고, 1층(피지컬)으로 보내준다.
    ( 트레일러는 전송 후 , 데이터 전송에 문제가 있었는지 없었는지 확인하기 위함이다. )
  • 1층(피지컬)에서 비트 단위로 라우터로 전송해준다.

Step3

  • 라우터는 전달받은 비트 데이터르 변환 전 데이터로 만들고 2층(데이터 링크)로 올린다.
  • 2층(데이터 링크)는 헤더와 트레일러를 확인하고, 문제가 없다면 헤더와 트레일러를 없애고 네트워크 계층으로 올려준다.
  • 3층(네트워크)에서는 이제 목적지 주소를 확인해야하기 때문에, 다음 노드를 확인하고 고쳐줄 부분을 고쳐주고 2층(데이터 링크)로 내려준다.
  • 이려면 데이터는 두 노드 사이에 통신을 담당하게 된다.
  • 헤더와 트레일러를 확인하고 1층(피지컬)으로 보내준다.
  • 1층(피지컬)은 또다시 비트 단위로 전송하고, 2층(데이터 링크)로 올려준다.
  • 2층(데이터 링크)는 헤더와 트레일러를 확인하고, 문제가 없으면 떼어내고 3층으로 올려준다.
  • 3층(네트워크)은 또다시 목적지를 확인하고, 네트워크 헤더를 수정할 부분을 수정해주고 또다시 2층으로 내린다.
  • 그리고 똑같이 1층(피지컬)으로 내리는 작업을 반복적으로 수행한다.
  • **이렇게 원하는 목적이에 도착했을 때 , 이제는 network 헤더를 떼고, 4층(트랜스포트)로 전달해준다.
  • 이후에는 5층(세션),6층(프레젠테이션)도 똑같이 헤더를 떼어내고 상층으로 전달해준다.
  • 마지막으로 7층 (어플리케이션)에서 처리 후 ,최종적으로 데이터가 도달하게 된다.

ncapsulation & decapsulation
: 위에서 헤더를 담고 뜯고 반복하는 것을 의미한다.


TCP / IP stack

: OSI 7계층과 비슷한 구조로 몇 개층을 하나로 본 형태이다.

  • 어플리케이션 + 프레센테이션 + 세션 ⇒ 어플리케이션 층으로 통일
  • 트랜스포트 ⇒ 트랜트포트
  • 네트워크 ⇒ 네트워크
  • 데이터링크 + 피지컬 ⇒ 링크 층으로 통일

업로드중..


마무리

  • 단순 암기로만 외웠었던 내용이였는데, 네트워크상에서 각 층별로 어떻게 이용되는지와 , 어떤식으로 데이터가 움직이는지 알아볼 수 있었습니다.
profile
꾸준한 개발자

0개의 댓글