OSI 7 Layer

surim·2023년 4월 29일

네트워크

목록 보기
1/1

OSI 7 Layer

네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것

https://shlee0882.tistory.com/110 출처

  • 왜 나눌까?
    - 통신이 일어나는 과정을 단계별로 알 수 있고, 특정한 곳에 이상이 생기면 그 단계만 수정할 수 있기 때문(모듈화)

    • 1~4계층은 데이터 전송(전달)하는 기능, 5~7계층은 프로세스 간의 통신 프로토콜

      계층장치/프로토콜/도구구현 위치기능식별자데이터단위
      1 물(hw)리피터, 케이블, 허브encoding, decoding
      2 데(hw)스위치LAN카드같은 네트워크에서 데이터 패킷의 경로 찾아줌(switching)MAC주소프레임
      3 네라우터OS커널다른 네트워크에서 데이터 패킷의 경로 찾아줌(routing)IP주소Packet
      4 전TCP, UDPOS커널프로세스까지 데이터가 도달할 수 있도록 전송함포트번호Segment
      5 세API, socketOS user모드응용 프로그램 간 통신을 위해 세션을 관리
      6 표OS user모드• 데이터 포맷팅
      • 암호화 및 복호화
      7 응HTTPOS user모드응용프로그램을 통해 사용자가 확인
    • 1계층: 물리 - HW적으로 구현- 리피터, 케이블, 허브
      - 데이터를 전기적인 신호로 변환해서 주고받는 기능을 진행(데이터전송)
      - 컴퓨터가 통신하려면?
      - 모든파일, 프로그램은 0과 1의 나열→1은 +5v, 0은 -5v를 주고받음
      - but 전선은 모든 주파수를 다 통과시키지 못함

      ex) 5~8Hz만 통과시킬수 있는 전선에, 주파수 최소값 1, 최대길이 10인 전자기파는 5~8hz부분만 통과해서 엉뚱한 데이터만 도착하기도 함

      • 0과 1을 주고받을 수 있으면 되는데, but 수직선과 수평선이 있는 전자기파는 항상 0~무한대의 범위를 가짐

        → 이런 전기신호를 통과시킬 수 있는 전선은 없음

        ⇒ 아날로그 신호로 바꿔서 전송해야함

        ⇒ 물리계층: 0,1을 아날로그 신호로 바꾸는(encoding)과 아날로그 신호를 0과 1로 바꿔서(decoding) 물리적으로 연결된 2대의 컴퓨터가 0과 1을 주고받을 수 있게 해주는 모듈(함수)


    • 2계층: 데이터링크 - 브릿지, 스위치
      - MAC주소를 통해 통신함. 프레임에 Mac주소를 부여하고, 에러검출, 재전송, 흐름제어를 진행한다.

      → 여러대의 컴퓨터가 통신하려고 모든 컴퓨터에 전선을 연결하면 비용면에 비효율

      ⇒ 하나의 선에 여러개의 컴퓨터가 연결되어있으면 효율적으로 통신할 수 있음

      이 하나의 선을 상자(더미허브)안에 넣어보자.

      →만약 하나의 선에 있는 A가 B에게 데이터를 보내고 싶음⇒B에게만 보내라고 목적지를 정하도록 더미허브를 똑똑하게 만든것=스위치

    • 역할 : 경로를 찾는 것뿐만 아니라, 데이터를 마구잡이로 보내지 않고 안전하게 보내는 역할도 수행한다.
      1. 프레이밍: 프레임 단위의 데이터 유닛으로 만들어서 처리
      2. 흐름제어: 너무 많거나 너무 적은 데이터를 송수신하지 않도록 흐름제어
      3. 오류제어: 프레임 전송 시 발생한 오류를 복원하거나 재전송
      4. 접근제어: 매체 상 통신 주체(장치)가 여러 개 존재할 때, 데이터 전송 여부 결정
      5. 주소지정(switching): MAC주소를 할당받아 올바른 목적지로 전달되게 함
      - 데이터 단위: 프레임: 패킷을 캡슐화 한것

      ⇒2계층: 같은 네트워크에 있는 여러대의 컴퓨터들이 데이터를 주고받기 위해 필요한 모듈 (프레이밍은 그 작업 중 하나), LAN카드에 구현되어있음(HW)


    • 3계층: 네트워크 - 라우터

      • 이동할 경로를 선택해서 IP주소를 지정하고, 이 경로로 패킷을 전달해준다

      • 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능

        → 서로 다른 네트워크에 속한 컴퓨터끼리 통신할 수 있게하는 장비=라우터(like 공유기)

        ⇒이렇게 전세계의 컴퓨터를 연결한것=인터넷

        *IP주소: A가 다른 사람말고 B에게만 데이터를 보내고 싶어서 데이터를 보낼때 데이터+B의 주소(패킷)를 같이 보냄, 이때 주소=IP주소 ex)네이버 주소=ip주소로 변환

        ⇒ 네트워크계층: 수많은 네트워크의 연결로 이뤄지는 internetwork에서 목적지로 데이터를 전달하기 위해 IP주소를 이용해서 길을 찾고(routing) 자신 다음의 라우터에게 데이터를 넘겨주는 것(forwarding), OS의 커널에 구현되어있음


    • 4계층: 전송 - TCP, UDP
      - 포트를 열어두고, 보내고자 하는 데이터의 전송속도, 용량, 목적지(프로세스)를 처리
      - TCP: 신뢰성, 연결지향적
      - UDP: 비신뢰성, 비연결성, 실시간
      - 전송계층의 주요기능
      - 세그먼트 분할 및 재조립: 세션계층에서 받은 데이터를 세그먼트로 분할하고, 세그먼트를 원래의 데이터로 완전히 복원함
      - 연결제어: 두 장치 간 연결지향/비연결지향통신을 설정(TCP/UDP)
      - 신뢰성있는 데이터 전송: 오류 검출 및 정정, 흐름 제어, 혼잡 제어 등 신뢰성있는 데이터를 전송할 수 있도록 함

      ⇒전송계층: 각 프로세스 별로 포트번호를 사용하여 수신 컴퓨터의 어떤 프로세스에 데이터를 보낼지 구분해서 데이터를 전송하는 모듈, os커널에 구현

      *포트번호: 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 프로세스가 가져야하는 정수값 ex)https://www.naver.com/**80**


    • 5계층: 세션

      • 응용 프로그램 간 통신하기 위해 OS를 통해 세션을 설정, 유지, 중단 등 관리하는 작업 수행 = 응용 프로그램 간 연결을 유지하는 역할
      • 사용하는 도구 : 응용 프로그램과 세션 계층사이의 인터페이스: API, socket
      • 세션계층 역할
        • 동기화: 동기점을 설정해서 송수신 중 오류가 발생하면 동기화 이후부터 다시 전송함
        • 사용자 위주의 논리적인 연결 서비스 제공
        • 전송모드 (반이중, 전이중, 단방향, 병렬, 직렬, 동기, 비동기)설정
        • 토큰(특정 서비스 요구 권리)
    • 6계층: 표현계층: 데이터가 text인지, 그림인지, gif인지 등

      • 데이터 포맷팅(5계층 데이터↔ 7계층 데이터)
      • 암호화 및 복호화
    • 7계층: 응용(어플리케이션) 계층
      - 사용자와 상호작용하고, 네트워크 리소스에 엑세스함
      - 응용프로그램(크롬, 사파리)을 통해 사용자가 확인하는 과정
      - 대표적인 어플리케이션계층 프로토콜=http

      ⇒오늘날 TCP/IP모델을 사용하고 이 모델을 3개의 계층을 묶어 어플리케이션 계층으로 본다

= 네트워크 시스템은 하나의 거대한 sw라고 할 수 있음, 이 거대한 구조를 설명하는 것


데이터 캡슐화

: 데이터를 전달할 때 상위계층(7층)→하위계층(1층)으로 전달되는데, 각 계층에서는 다른 계층과 통신할 때, 데이터에 header와 footer를 추가한 후 다른 계층으로 전달

참고사이트 : https://velog.io/@jeongs/네트워크-OSI-7-계층-그림과-함께-이해하기

0개의 댓글