OSI 7계층

ohmin kwon·2021년 5월 23일
0

면접 대비겸 CS공부

OSI 7계층

  • 국제표준화기구에서 네트워크 프로토콜과 통신을 계층적으로 구분한 모델
  • 이질적인 시스템 간의 상호접속을 위한 개념을 규정

특징

  1. 순서 : 송신은 7계층 -> 1계층, 수신은 1계층 -> 7계층 순으로 진행되고, 이 모델에 따라 각 단계별 프로토콜을 정의한다.
  2. 계층의 독립 : 어떤 계층의 변화가 다른 계층에 영향을 주지 않는다.
  3. 상위 > 하위 : 기본적으로 하위 계층은 상위 계층을 위해 기능하고, 상위 계층은 하위 계층에 관여하지 않는다.

7. 응용 계층

  • 사용자가 보는 소프트웨어의 UI, 네트워크 서비스, 사용자의 입출력 부분 등을 담당하는 계층이다.
  • 목적에 따른 프로토콜(웹 접속 - HTTP, 파일 전송 - FTP 등)이 존재
  • 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.

6. 표현 계층

  • 사용자의 명령어 혹은 입력한 데이터를 완성(결정)한다.(형식 : 문자, 음성, 아스키...)
  • 하드웨어나 OS 등의 차이를 없앤 데이터 교환을 가능하게 한다.(포장? 압축?)
  • MIME 인코딩이나 암호화 등이 표현 계층에서 동작한다.

5. 세션 계층

  • 데이터 통신(송수신)을 관리하기 위한 방법을 제공하는 계층이다.
  • 어떻게 통신할 것인가?(동시 송수신, 반이중 방식, 전이중 방식 등)
  • 체크 포인팅과 종료, 다시 시작 과정 등을 수행
  • 다이얼로그 제어(세션 관리 -> TCP/IP 세션을 의미하는 건가?)

4. 전송 계층

  • 양 끝단의 사용자들이 신뢰성이 있는 데이터 송수신을 할 수 있도록 하는 계층
  • 송수신할 데이터에 대한 관리
  • 연결 기반
  • 시퀀스 넘버 기반의 오류 제어 방식을 사용 + 흐름 제어
  • 데이터가 유효한가?(제대로 전달되었는가?) -> 아니라면 실패한 데이터(패킷)을 다시 전송

시퀀스 넘버 기반으로 오류 제어를 한다는 게 뭔데?

구글링을 좀 해봤는데 시퀀스 넘버 기반의 오르 제어 방식을 사용한다-라고만 하고 막상 그게 뭔지는 없더라. 그래서 시퀀스 넘버를 대신 검색하고 공부했더니 이해할 수 있었다.(알고 보니 TCP 핸드 쉐이킹에 대해서 공부할 때 그 시퀀스더라...)

시퀀스 넘버란?

  • 통신과 제어에서 데이터를 관리하기 위해 번호를 부여한다.(대표적인 전송 계층인 TCP로 예를 들면, TCP 패킷 헤더에 Sequence & Ack number라는 걸 채운다)
  • 해당 번호는 순서 역전 방지, 중복 패킷 방지 등을 이유로 사용

그러니까 데이터를 한 번에 송수신하지 않고 패킷 단위로 작업하니, 그것들이 섞이거나 중복되는 경우를 방지하기 위해서 사용한다는 뜻

부여 방식

  • 0 또는 랜덤한 값 부터 최대값
    .. 최대값 이후에는 다시 0부터 시작됨

기타

  • TCP로 조금 상세하게 넘어가면(신뢰 보장성 측면으로 접근해서)
    TCP Sequence & Ack number, TCP에서 데이터 바이트 스트림, MSS (Max Segment Size)
    이 개념들로 인해 각 넘버 필드가 어떻게 바뀌고(MSS가 ??일 때) 재전송되는가에 대한 것은 TCP를 공부할 때 다루도록 하겠다.

3. 네트워크 계층

  • 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층
  • 세그먼트(네트워크) 간의 데이터 송수신
  • 라우팅, 세그멘테이션, 오류 제어, 흐름 제어, 인터네트워킹 등을 수행

2. 데이터 링크 계층

  • 포인트 투 포인트 간의 신뢰성이 있는 전송을 보장하기 위한 계층
  • 세그먼트 내(같은 네트워크의 노드들?)에서의 데이터 송수신
  • CRC 기반의 오류 제어, 흐름 제어(충돌 방지)
  • 이더넷

CRC는 또 뭐야?

  • CRC(cyclic redundancy check)는 네트워크 등을 통하여 데이터를 전송할 때 전송된 데이터에 오류가 있는지를 확인하기 위한 체크값을 결정하는 방식이다.
  • CRC는 데이터를 전송하기 전에 주어진 데이터의 값에 따라 CRC 값을 계산하여 데이터에 붙여 전송하고, 데이터 전송이 끝난 후 받은 데이터의 값으로 다시 CRC 값을 계산한다. 그렇게 나온 두 값을 비교하는 것으로 데이터를 체크한다.(값이 다르면 오류)

좀 더 자세히 알고 싶다면 -> 순환 중복 검사(위키백과)

1. 물리 계층

  • 전기, 기계 등과 같은 물리적인 부분의 송수신 담당
  • 네트워크 하드웨어의 전송 기술을 이룬다.
  • 신호 재전송(리피터), 신호 변조 및 복조(모뎀)
  • 어뎁터, 모뎀 같은 것들이 여기 속함

종합

profile
My simple note

0개의 댓글