[통신 이론] OSI 계층

신현식·2022년 11월 10일
0

통신이론

목록 보기
1/4

Communication layer의 역할

  • 통신을 이해하기 위해서는 OSI(Open Systems Interconnect) model을 꼭 알아둘 필요가 있다. OSI model은 시스템의 통신모듈을 7개 Layer로 구분하여 각 Layer에서 어떤 역할을 담당해야 할지 정의하고 있다.

📌통신 원리

  • layer는 편지를 전달한다고 할 때 편지수거는 누가 하고, 수거된 편지를 지역별로 나누는 것은 누가 하고, 지역별로 나누어진 편지를 수송차량에 싣는 것은 누가 하는가를 세분화 해 놓은 것과 유사하다.
    역할이 분리되면서 문제 발생시 문제의 현상을 보았을 때 어떤 계층에 문제가 생겼는지도 파악이 가능하다. 각 계층의 수행역할이 다르기 때문에 이런 것이 가능하다 볼 수 있겠다. 각 계층은 하위계층을 사용하고 현계층의 기능을 포함하여 상위 계층에 제공한다. 그래서 계층구조는 위에서 바라보았을 때 아래층이 안보이는 구조라 볼 수 있다. 따라서 최상위 계층만 보면 그 아래계층을 모두 포함하고 있다.

📌 [제 1계층] 물리 계층(Physical Layer)

  • 시스템의 물리적 전기적 표현을 나타내는 층이다. 주로 전기적, 기계적, 기능적인 특성을 이용해 데이터를 전송하게 된다. 데이터는 0과 1의 비트열, 즉 On, Off의 전기적 신호 상태로 이루어져 있다. 이 계층은 단지 데이터를 전달하기만 한다. 어떤 에러가 있는지 등 그런 기능에는 전혀 관여하지 않는다. 케이블 종류, 무선 주파수 링크, 핀, 전압 등의 물리적인 요건을 의미한다.
    대표적인 장비는 케이블,리피터(신호 증폭기),허브 등이고 프로토콜은 없다.
  • 데이터 링크 계층은 직접적으로 연결된 두 개의 노드 사이(Point to Point)에 데이터 전송을 가능하게 하고, 물리 계층에서 발생한 오류를 수정하기도 한다. 이 계층에서는 MAC 주소를 가지고 통신한다. 주소 체계는 계층이 없는 단일 구조이고 전송되는 단위를 프레임이라고 하며 대표적인 장비로 브리지, 스위치 등이 있다.(여기서 MAC주소 사용)
    MAC(Media Access Control) 주소를 이용해서 Data를 해당 장비로 보내는 것이고, LLC는 각 장비를 논리적으로 연결하고 유지하는것을 의미한다.

📌 [제 3계층] 네트워크 계층(Network Layer)

  • 네트워크의 핵심인 라우팅(데이터가 가야 할 길을 찾는 기능)의 대부분이 3계층인 네트워크 계층에서 작동한다. 이 계층은 여러 대의 라우터들을 바탕으로 데이터를 패킷 단위로 잘게 쪼개어 전송하는 층위에 해당한다. 데이터가 전송될 수 있는 수 많은 경우의 수 중 가장 효율적인 라우팅이 방법을 찾는 것 또한 이 단계에서 가능하다. 경로를 선택하고 주소(IP)를 정하고 경로에 따라 패킷을 전달해주는 것이 이 계층의 역할이다. 패킷이란 네트워크 계층에서 부르는 데이터의 단위이다. 논리적인 주소 구조(IP), 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적 구조를 가지고 있다.
    이 계층의 대표적인 장비는 라우터이며, 요즘은 2계층의 장비 중 스위치라는 장비에 라우팅 기능을 장착한 Layer 3 스위치도 있다. (여기서 IP주소부여)

📌 [제 4계층] 전송 계층(Transport Layer)

  • 전송계층의 경우 양 끝단(End to End)의 사용자들이 데이터를 주고 받을 수 있게 하는 계층이다. 송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위하여 오류검출 및 복구, 흐름제어와 중복검사 등을 수행한다. 중요한 것은 데이터 전송을 위해서 Port 번호가 사용이 된다는 것이다. 대표적인 프로토콜로는 TCP와 UDP가 있다. 전송 계층에 가장 대표적인 것은 전송 제어 프로토콜(TCP)이다. TCP는 인터넷 프로토콜(IP) 위에 구축되기 때문에 TCP/IP로 알려져 있다. 이 계층에서 사용하는 데이터 단위는 세그먼트(Segment)라고 한다.

💡 TCP의 경우

  • 신뢰성있는 통신을 보장하는데. 따라서 데이터가 전달되는 과정에서 여러 스위치 라우터 등등을 거치면서 데이터가 잘못 전달되는 현상이나 전달이 안되는 경우 오류제어, 흐름제어를 통해 신뢰성있는 데이터가 전달될 수 있도록 한다.
    TCP는 연결시 3-way hanshaking 방식으로 목적지와 상호 패킷을 교환하여 연결한다. 연결을 종료할 때는 4-way hanshaking 방식을 사용한다. 신뢰성 연결과 전달을 보장하는 만큼 중간의 확인과정을 거치고 연결을 계속 유지해야되기 때문에 그만큼의 리소스가 더 들어간다고 한다.

💡 UDP의 경우

  • 비연결형 프로토콜로서 데이터를 빠르게 전달하는데에 초점을 두고 있어 목적지에 데이터가 제대로 전달 되었는지 조차 확인하지 않는다. 그냥 전송하면 끝인 것이라고 볼수 있는데 이것을 쓰는 이유는 비연결을 지향하고 데이터를 전달할 때 TCP에 비해 오버헤드가 적다. 그래서 신뢰성 있는 데이터 전송이 필요할 때보다 스트리밍같이 연속적인 특성을 가지고 있는 서비스에 사용한다고 한다.

📌 [제 5계층] 세션 계층(Session Layer)

  • 5계층에서 실제 네트워크 연결이 이루어진다. 두 대의 기기가 ‘대화’하기 위해서는 하나의 ‘세션’이 열려야만 한다. 세션 계층에서는 프로세스간의 통신을 제어하고, 통신과정이 진행될 때 동기화를 유지하는 역할을 한다.
    즉 TCP/IP 세션을 만들고 없애고 통신하는 사용자들을 동기화하고 오류 복구 명령들을 일괄적으로 다루며 통신을 하기 위한 세션을 확립, 유지, 중단 하는 작업을 수행한다. 그리고 위에 작업들은 운영체제가 해준다.

📌 [제 6계층] 표현 계층(Presentation Layer)

  • 응용 계층으로부터 전달받은 데이터를 읽을 수 있는 형식으로 변환하는데 표현 계층은 응용 계층의 부담을 덜어주는 역할이 되기도 하는데 응용 계층으로부터 전송받거나 응용 계층으로 전달해야 할 데이터의 인코딩과 디코딩이 이 계층에서 이루어진다. 6계층은 응용프로그램 혹은 네트워크를 위해 데이터를 ‘표현’하는 계층에 해당한다. 그리고 인코딩과 디코딩이 이 계층에서 이루어진다. 데이터를 안전하게 주고 받기 위해 암호화하고 복호화 하는 과정이 필요한데 이러한 과정이 바로 표현 계층인 6계층에서 이루어진다. 예시를 들자면 유니코드(UTF-8)로 인코딩 되어있는 문서를 ASCII로 인코딩 된 문서로 변환하려 할 때 이 계층에서 변환이 이루어진다.

📌 [제 7계층] 응용 계층(Application Layer)

  • 마지막 응용 계층은 사용자가 네트워크에 접근할 수 있도록 인터페이스를 제공하는 계층이다. 사용자에게 가장 직접적으로 보이는 부분이 바로 이 응용 계층에 해당하는 것이다. 구글의 크롬과 같은 브라우저나 스카이프, 아웃룩 등의 응용프로그램이 이 응용 계층에서 동작한다. 해당 통신 패킷들은 방금 나열한 프로토콜에 의해 모두 처리되며 우리가 사용하는 브라우저나, 메일 프로그램은 프로토콜을 보다 쉽게 사용하게 해주는 응용프로그램이다. 한마디로 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지 응용프로그램이 아니다.
참고한 블로그: https://sean.tistory.com/22?category=875341
profile
전공 소개

0개의 댓글