OSI 참조 모델 7계층

네트워크에 들어섰다면 무.조.건. 배우는 OSI 7계층이다.
“OSI”란 서로 다른 컴퓨터나 네트워크끼리 통신하기 위해 맺은 약속이나 규칙이라고 생각하면 된다. 풀네임은  ‘Open System Interconnection’인데 곧이 곧대로 해석하면 개방 시스템 상호 연결(?)이라서 뭐 금방 이해될거다. OSI는 ISO에서 규정했다.
(※ ISO: 국제 표준 기구)

본격적으로 그럼 OSI에서 제시된 ‘서로 연결을 위한  규칙’은 무엇일까 알아보자.

출처: https://blog.naver.com/PostView.nhn?blogId=pst8627&logNo=221670903384

위 그림을 보자.
제일 위에 순수 데이터만 있는 것을 확인할 수 있다. 이 데이터를 다른 컴퓨터(호스트,시스템 등)으로 보내기 위해 7계층부터 한 단계씩 내려가면서 데이터에 특정값을 추가한다. 결국 마지막 1계층에서 데이터를 봤을 때, 기존 데이터보다 커진 것을 확인할 수 있다.  이제 받는 컴퓨터는 반대로 1계층부터 7계층까지 헤더를 하나씩 열면서 다시 원본의 데이터가 된다.

이제 그럼 각 계층별로 무슨 기능을 수행하고, 꼭 알아두어야할 사항이 무엇인지 알아보자.

Layer 1: Physical (물리계층)

오직 0 또는 1로 된 데이터만을 다룬다.

  • 수행기능
    1. 하드웨어 명세 정의
    – 케이블, 커넥터, 랜카드(NIC) 등과 같은  ‘물리적 장치’를 정의한다.
    2. 인코딩과 신호
    – Bit 데이터 전송을 위한 신호로 인코딩 또는 변환한다.
    3. 데이터 수신 및 송신
    4. 네트워크 토폴로지와 물리 네트워크 설계

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

크게 논리적 연결제어(LLC; Logical Link Control)와 매체 접근제어(MAC; Media Access Control)로 나뉜다.  Ethernet, TokenRing, FDDI, 802.11은 데이터링크계층 기술이라고도 한다.

  • 수행기능
    1. 논리적 연결 제어 (LLC)
    – 네트워크의 Local 장비간 논리적 연결을 수립하고 제어하는데 필요한 기능이다. 대부분의 LAN 기술은 IEEE 802 LLC프로토콜을 이용한다.
    2. 매체 접근 제어 (MAC)
    – 매체에 대한 접근을 장비가 통제하는데에 사용하는 절차이다. 예를 들면, Ethernet은 매체 접근을 위해 CSMA/CD를 사용하고, TokenRing은 토큰 전달 방법을 사용하는 것과 같다.
    3. 데이터 프레이밍
    – 3계층 데이터(패킷)를 1계층에서 네트워크 전송할 때 프레임으로 최종 캡슐화한다.
    4. 주소 지정
    – DLL이 데이터를 특정 장비에만 보낼 수 있도록 하는데 쓰이는 유일한 주소를 갖고 있다. 바로 우리가 말하는 MAC Address이다.
    5. 에러 탐지와 처리
    – CRC검사가 있다.

Layer 3: Network (네트워크계층)

2계층 데이터링크에서 네트워크의 경계를 정의한다면, 네트워크 계층은 서로 연결된 네트워크가 어떻게 동작하는지 정의한다.

  • 수행기능
    1. 논리적 주소 지정
    – 모든 장비(네트워크에서 통신하는 장비)의 IP 주소이다.
    2. 라우팅 네트워크
    – 들어오는 데이터(패킷)를 받아서 최종 목적지를 파악 후 통과해야할 다음 곳으로 전송한다.
    3. 데이터그램 캡슐화
    – 4계층에서 받은 데이터(데이터그램)을 캡슐화하여 패킷으로 만든다.
    4. 단편화와 재조합
    – 일부 DLL 기술은 송신 데이터 길이를 제한한다. 데이터가 크면, 패킷을 단편화하여 쪼갠다. 수신 측에서 단편화된 패킷을 재조합한다. 예로, IP 프로토콜이 있다.
    5. 에러처리와 진단
    – 논리적으로 연결된 장비들이 네트워크나 장비 상태 정보를 교환할 수 있도록하는 특수 프로토콜을 사용한다.

Layer 4: Transport (전송계층)

1~3계층은 실제 데이터를 패키징하고, 주소를 지정하고, 라우팅하는 작업이었다.
하!지!만! 4계층은 “다소 추상적”이라는 표현이 어울릴것같다.  5~7계층에 존재하는 추상적인 Application과 1~3계층의 구체적인 전송 작업을 연결해주는 역할이기 때문이다. 때론, 전송계층의 역할을 End-to-End(종단 대 종단)이나 Host-to-Host(호스트 대 호스트)라고도 한다.

  • 수행기능
    1. 프로세스 수준 주소지정
    – SW프로그램(Application)을 구분하는데에 쓰인다. TCP포트와 UDP포트가 있다. 마치 SSH가 TCP 22번 포트인 것처럼 말이다.
    2. 다중화와 역다중화
    – TCP포트나 UDP포트를 이용해 여러 프로그램의 데이터를 하나의 Data Stream으로 결합한다. 당연히 수신 측에서는 이러한 Data Stream을 역다중화하여 적합한 Application으로 전달한다.
    3. 단편화, 패키징, 재조합
    – 대량의 데이터를 송신할 때, 데이터를 단편화한다. 수신한 단편화된 데이터를 다시 재조합 한다.
    4. 연결수립, 유지, 종료
    – 연결수립 후 데이터 전송 중에는 연결을 유지한다. 필요없을 때는 연결을 종료한다.
    5. 승인과 재전송
    – 안정적인 데이터 전달을 보장하는 기술이 승인, 재전송 타이머를 결합한다. 송신 장비는 데이터를 보낼 때, 타이머를 작동시킨다. 데이터를 받은 수신자는 전송 성공에 관한 정보를 다시 보낸다. 만일, 송신장비의 타이머 동안 전송 성공에 관한 정보가 안오면 데이터를 재전송한다.
    6. 흐름 제어
    – 통신을 하는 장비가 다른 장비에게 송신율을 낮추도록 요구하여 수신장비가 과도한 데이터를 처리하지 않도록 예방한다.

Layer 5: Session (세션계층)

장비가 세션을 수립하고 관리할 수 있도록 하기 위해 설계되었다. 즉, 5계층 프로토콜은 세션을 생성하고 유지, 종료하는데에 필요한 수단을 제공한다. 관점에 따라, 5계층 프로토콜이라기보다 도구모음(API)이 더 가깝다.
널리 쓰이는 API에는 NetBIOS, TCP/IP 소켓, 원격절차호출(RPC) 등이 있다. API는 Application이 표준화된 서비스 모음을 이용해 상위 수준 네트워크 통신을 할 수 있게 한다. 예를 들어, 소켓 인터페이스가 개념적으론 5계층에 위치한다. TCP/IP프로그래머가 유닉스 OS에서 SW들이 인터넷을 통해 세션을 맺도록 하는데에 쓰인다.

Layer 6: Presentation (표현계층)

어느 한 곳에서 송신한 데이터를 수신자가 다른 방법으로 봐야할 필요가 있을 때, 발생되는 문제를 처리한다.

  • 수행기능
    1. 번역
    – 많은 유형의 OS가 동일 네트워크에 존재할 수 있다. 이 말인 즉슨, 데이터를 서로 다른 방법으로 표현하는데 이 OS간 데이터 표현 방식의 차이를 줄인다.
    2. 압축
    – 데이터 처리율 향상을 위해 압축이나 압축 해제를 할 수 있다.
    3. 암호화
    – 데이터의 보안을 보장하기 위해 특정 유형의 암호화(부호화)를 할 수 있다. SSL같은 프로토콜이 있다.

Layer 7: Application (애플리케이션계층)

사용자가 네트워크를 통해 이루고자 하는 여러 작업을 실제 수행하는 기능으로 구현한다. 웹서핑은 HTTP, 파일 송수신은 FTP나 NFS, 메일송수신은 SMTP, 원격지를 연결하는 TELNET 등이 있다.

답글 남기기

이메일 주소는 공개되지 않습니다.