FoO의 개발 블로그

개방 시스템 상호 연결(OSI, Open System Interconnection) 본문

학과공부/데이터통신

개방 시스템 상호 연결(OSI, Open System Interconnection)

FoO__511 2023. 10. 17. 14:04

개방 시스템(Open System)

기반 구조에 관계없이 서로 다른 두 시스템 간 통신을 가능하게 하는 프로토콜의 집합

개방 시스템 상호 연결(OSI) 모델

1983년 ISO(International Standardization Organization) 표준화 기구에서 개발 시작.

컴퓨터 통신 분야에서 상호운용성을 확보하기 위한 다양한 표준에 대한 국제적인 표준 정의를 위한 기본 골격.

 

융통성을 부여. 특정 계층만 업그레이드하여 교체할 수 있음.

각 계층별로 여러가지의 프로토콜이 존재함.

 

OSI 7계층 모델

 

요약

Layer 데이터 단위 장비 특징
[L7] Application data   사용자에게 서비스 제공. 
파일 전송, 접근, 관리. 문서, 메시지 교환
전자메일(SMTP), 가상단말, 파일 송수신(FTP), 웹(HTTP)
[L6] Presentation data   데이터 표현 방식 변환, 암호화, 압축, 코드변환, 가상 터미널 규약 ASN.1, BER(Basic Encoding Rule)
[L5] Session data   통신 프로세스 간 대화제어 및 동기화, 대화 단위별 그룹화(check point, synchronization) 소켓, RPC, NFS, SMB, NetBIOS, SQL
[L4] Transport segments L4 스위치 종단까지 온 패킷을 종단 내에서 최종 수신 프로세스로 전달(포트주소)
투명한 전송: 종단까지 오는 과정 고려x

연결 관리, 에러제어, 데이터 분리, 흐름제어, 다중화, 역다중화
TCP, UDP, SCTP
[L3] Network packets L3 스위치, 라우터 최종 목적지까지 패킷 전달.
routing(경로배정), 주소, 호 설정 및 해지.
IP
[L2] Data Link frame L2 스위치 노드와 노드 사이 데이터 전달.
프레임화, 데이터 투명성, 오류제어.
-> 물리계층+신뢰성
서브레이어: LLC, MAC 
 
[L1] Physical bits 리피터, 허브 기계적, 전기적 통신망 인터페이스 정의.
신호인코딩/디코딩(선로부호화), 비트 동기
전송매체 규격 정의(토폴로지 포함)
EIA RS-232C, V.24, X.21, V.35

 

계층별 기능

 

1계층(L1) : 물리계층(Physical Layer)

기계적, 전기적 통신망 인터페이스 정의

단말 기기와 전송매체 간 인터페이스 정의. 물리적인 비트 전송 수단 제공.

 

  • 데이터 단위 : bit

 

  • 신호 인코딩/디코딩 : 선로부호화(선로에 맞게 신호를 전기적 펄스열로 변환)
  • 비트 동기 : 프리엠블(각 프레임 맨 앞에 붙이는 영역) 처리
  • 물리적 회선 관리 : DTE(Data Terminal Equipment, 데이터 단말장치)와 DCE(Data Communication Equipment, 데이터 회선종단장치)간에 성립되는 물리적 회선에 대한 작동, 유지, 중지 등 규정. 점대점 혹은 다중점.
  • 물리계층 인터페이스 구현 : 상호 연결되는 장치의 논리적, 물리적, 전기적 특성이 정의되어야 함.
  • 전송방식 규정 : 2개 장치 간 전송방향 규정. (단방향, 반이중, 전이중)
  • 오류제어는 하지 않음.

 

2계층(L2): 데이터링크 계층(Data Link Layer)

데이터 링크 제어(프레임화, 데이터 투명성, 오류 제어)

잡음이 있는 인접 노드 간 물리적 회선을 상위 계층인 네트워크 계층이 신뢰적으로 사용할 수 있도록 전송 에러가 없는 통신 채널로 변환시키는 계층.

 

인접한 기기 사이의 통신 관리, 신뢰도 낮은 전송로를 신뢰도 높은 전송로로 전환.

 

  • 데이터 단위 : frame

 

  • 3계층 프로토콜 전송/운반/전달
  • 프레이밍(Framing) : 데이터를 frame으로 그룹. =물리계층에서 제공되는 Bit Pipe를 패킷화(또는 프레임)된 링크로 변환. 그냥 비트들을 패킷이나 프레임으로 만든다는 뜻. 송신자 및 수신자 주소(MAC)정보를 프레임 헤더에 추가.
  • 흐름제어(Flow Control) : 보내는 측과 받는 측 사이 속도차를 보상
  • 에러제어(Error Control) : 전송 오류 검출, 수정 혹은 재전송. (송신측에서 타이머와 ACK신호에 의해 전송에러 감지)
  • 매체접근제어(Media Access Control) : 둘 이상의 장치가 동시에 공유 매체에 접근할 시 발생하는 충돌(Collision)문제 해결
  • 순서화(Sequencing) : 패킷, ACK 신호를 잘못 혼동하는 것을 피하기 위해 패킷과 ACK에 일련번호(Sequence Number)부여
  • 데이터링크 연결 관리(Data Link Connection Management) : 네트워크 개체간 데이터 링크 설정, 유지, 단락 및 데이터 전송 제어.
  • 데이터링크 내 노드 간 식별성 제공 : MAC

IEEE 802표준에서는 LAN상 데이터링크 계층을 2개의 부계층으로 나눔.

  1. LLC 부계층
  2. MAC 부계층

 

3계층(L3): 망계층(Network Layer)

경로배정. 주소, 호 설정 및 해지.

인터넷의 IP가 여기 속함. 인터넷은 3계층에서 IP, 4계층에서 TCP프로토콜을 채택.

 

  • 데이터 단위 : packet

 

  • 경로제어(Routing) : 패킷이 최종 목적지에 전달될 수 있도록 경로 지정 메커니즘 제공.
  • 투명성 : 상위 계층인 전송계층에서 망의 형태를 의식하지 않도록 투명하게 처리.
  • 논리적 주소체계 : 라우팅과 관련된 주소 지정 등 주소체계 정립. IP주소 등. 상위 계층에서 받은 패킷에 송신측 및 수신측 논리 주소를 헤더에 추가
  • 연결지향성 및 비연결성 서비스 제공 : 망 계층은 전송계층에게 연결지향성 및 비연결성 서비스 제공. 
연결지향 서비스
두 개체 간 1 이상의 메시지들이 연결상태(세션)를 유지하며 데이터 교환이 가능한 서비스
비연결성
호 설정 절타 없이 단순히 목적지를 향해 목적지 주소를 담은 패킷 전송. 패킷이 손실되면 수신측에서 문제 검출해 송신측에 재전송 요구. 패킷은 Datagram이라는 독립적인 단위로 전송.
예) 망계층의 IP 프로토콜, 전송계층의 UDP 프로토콜

 

네트워크 계층을 지났으면 통신로를 통해 멀리서 길 찾아오는 일은 끝났다고 보면 됨.

상위 계층들은 하위계층을 고려하지 않고(투명하게) 통신

 

4계층(L4): 전송계층(Transport Layer)

양단간 어떤 종류의 망이 사용되었는지 의식x 

가장 복잡하고 핵심적인 계층. 소프트웨어적인 상위 3개 계층과 하드웨어적인 하위 3개 계층 사이의 중간 성격.

 

 

네트워크 계층에서 얻은 서비스 형태에 따라 전송계층 프로토콜크기복잡성이 결정.

망계층에서 가상회선 능력 및 신뢰할 수 있는 통신 지원이 있으면 전송계층 기능 최소로 축소.

반대일 경우 전송계층에서 에러감지, 회복 등 담당. (TCP)

 

가상회선
패킷교환망에서 2개 이산의 노드 간에 구성되는 가상의 종단간 연결.
패킷 전송 전 논리적 경로를 구성 -> 이 경로로만 데이터가 흐르게 됨. 
실제 패킷은 물리적으로 다른 경로로 전달될 수 있음.
연결 내의 각 패킷은 자신이 어느 가상회선에 속하는지 알리는 가상회선 식별자를 가짐.

 

  • 데이터 단위 : segments

 

  • 네트워크가 아닌 호스트 내에서 구동된 프로세스 사이의 연결(End-to-End) 확립: host-to-host에서 process-to-process로 바꾸어줌. 양 호스트 종단간 응용 프로세스 상호간 통신 지원.
  • 투명한 전송 : 망 계층이나 세션계층에서 사용하는 제어방법과 내용에 관계없이 정보가 바뀜없이 투명하게 전송. 경로선택이나 중계기능에 관여x 오로지 end-to-end 데이터의 투명한 양방향 전송 기능 제공.
  • 두 종단 프로테스 간 성립된 세션 제어 : 세션을 가지고 있는 두 이용자 간 전송을 위해 종단 간 제어
  • 신뢰적 전송 지원 : 어떤 망이 어떻게 연결되었든 간에 관계없이 정보를 상대 단말에 전달. 논리 회선(세션, 가상회선 등) 가능.
  • 발신지 대 목적지 수준에서 오류제어, 흐름제어 
  • 다중화/역다중화 지원 
  • 지연에 따른 왜곡 및 대역폭 부족 일부 보상
다중화(Multiplexing, MUX)
설비를 더 효율적으로 이용하기 위해 하나의 설비에 여러 신호를 함께 결합시켜 보냄.
역다중화(Demultiplexing, DeMUX)
다중화로 송신한 다중 신호를 수신단에서 분리하여 보냄.

 

5계층(L5): 세션계층(Session Layer)

종단 호스트 프로세스 간 세션을 관리하는데 필요한 여러 기능 제공.

네트워크 대화 제어자(Dialog Controller)로서 통신 시스템간 상호 대화(세션) 설정.

 

  • 데이터 단위 : data

 

  • 세션 관리(session manage)
  • 대화 관리(dialoge manage) : 토큰을 사용해 대화 관리. 
  • 다중화(multiplexing) : 여러 세션들이 효율을 위해 1개의 같은 전송계층 접속 사용 가능. 혹은 속도를 위해 1개 세션이 다수의 전송계층 접속을 사용할 수 있음.
  • 대화 단위별 그룹화(check point, synchronization) : 전송시 점검점, 동기점 등을 삽입함으로써 메시지를 대화 단위로 그룹화. 에러 발생하면 중단된 대화 단위부터 전송 재시작.
  • 데이터의 범주화 교환 : OSI는 데이터를 4가지 범주로 구분(정보 데이터, 급송 데이터, 제어 데이터, 세션 파라미터 협상에 사용되는 데이터)

  • 소켓, RPC, NFS, SMB, NetBIOS
  • SQL

 

6계층(L6): 표현계층(Presentation Layer)

네트워크 상 여러 이기종 시스템들이 저마다 다른 데이터 표현 방식 사용 -> 하나의 통일된 구문 형식으로 변환하는 역할.

 

  • 데이터 단위 : data

 

  • 응용계층의 다양한 표현양식(Syntax)을 공통 형식으로 변환
  • 암호화(Encryption) 및 복호화(Decryption)
  • 압축(Compression) : 전달되는 비트수 최소화
  • 코드 변환 : 서로 상이한 형태의 코드변환(ASCII, EBCDIC, binary등), 파일변환, 문장 축소화 등
  • 가상 터미널 규약 : 라인과 스크린 길이, 라인의 종료 약속, 페이지 모드, 커서의 특성 등 상호간 다름. -> 가상 터미널 만듦.

 

7계층(L7): 응용계층(Application Layer)

사용자(사람 또는 소프트웨어)가 네트워크에 접근할 수 있도록 사용자 인터페이스 제공.

 

  • 데이터 단위 : data

 

 

  • 전자메일, 가상단말, 파일 송수신, 웹 응용
  • OSI 프로토콜 : FTAM(파일 접근, 전송 및 관리), CMIP
  • TCP/IP프로토콜 : FTP, SMTP, HTTP, TELNET