OSI 7 Layer에 대해서 공부를 해보자.
OSI 7 Layer이란
OSI 7 계층은 네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준화 기구(ISO)에서 정의한 네트워크 표준 모델이다.
아래 그림에서 아래부터 1계층(물리 계층) ~ 7계층(응용 계층)으로 구성되어 있다.
이미지 출처
http://wiki.hash.kr/index.php/OSI_7_%EA%B3%84%EC%B8%B5
OSI 7 Layer의 구조
1계층 - 물리 계층(Physical Layer)
실제 장치를 연결하기 위한 전기적 및 물리적 세부사항을 정의한 계층, 인터넷 케이블, 라우터 스위치 등의 전기적 신호가 물리적인 장치에 의해 왔다 갔다하는 계층이다.
이 계층에서는 단지 데이터를 전달만 할 뿐 전송하려는 데이터가 무엇인지, 어떤 에러인지 있는지 등에는 전혀 신경쓰지 않고 단지 데이터 전기적인 신호로 변환해서 주고받는 기능만 할 뿐이다.
2계층 - 데이터 링크 계층(Data-Link Layer)
해당 계층은 장치 간 신호를 전달하는 물리 계층을 이용하여 네트워크 상의 주변 장치들 간의 데이터를 전송하는 역할을 한다.
즉, 물리 계층을 통해 송수신 되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 하는 것이다.
따라서 통신에서의 오류도 찾아주고 재전송도 하는 기능을 가지고 있고 이 계층에서는 MAC 주소를 가지고 통신하게 된다.
데이터 링크 계층에서의 데이터 단위는 프레임(Frame)이다.
장비로는 브리지, 스위치가 있다.
프레임(Frame) 생성은 네트워크 계층에서 받은 데이트를 프레임이라고 하는 작은 단위로 분할한다. 프레임은 헤더(Header)와 트레일러(Trailer)로 구성되며, 헤더에는 제어정보와 주소 정보가 포함된다.
물리 주소(MAC 주소) 할당은 데이터 링크 계층에서 네트워크 인터페이스 카드(NIC)에 고유한 물리 주소인 MAC(Media Access Control) 주소를 할당한다. MAC주소는 네트워크에서 장치를 식별하는 데 사용되며, 이더넷과 같은 프로토콜에서 사용된다.
에러 검출 및 수정은 데이터 링크 계층에서 오류 검출 기능을 수행하며 프레임 전송 중에 발생할 수 있는 에러를 감지한다. 일반적으로 패리티 비트, CRC(Cyclic Redundancy Check) 등의 방법을 사용하여 에러를 검출하고 수정한다.
흐름제어(Flow Control)은 데이터링크 계층에서 송신자와 수신자 간의 데이터 흐름을 조절하여 송신자가 수신자를 과부화시키지 않도록 한다. 흐름 제어 메커니즘은 수신자가 수용할 수 있는 속도에 따라 데이터의 송신을 조절한다.
3계층 - 네트워크 계층(Network Layer)
네트워크 계층은 전송 단위는 Packet을 사용하며 주소는 IP를 사용한다.
여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공한다.
라우팅(Routing)은 데이터 패킷이 출발지에서 목적로 전달되는 경로를 결정하는 과정이다. 라우터는 네트워크 계층에서 작동하며, 패킷의 IP 주소를 기반으로 가장 적합한 경로를 선택한다. 라우팅 테이블을 사용하여 목적지 네트워크와 관련된 경로 정보를 유지하고 패킷을 전송한다.
패킷 분할 및 조립(Packet Fragmentation and Reassembly)은 네트워크 계층은 상위 계층에서 전송된 패킷단위로 분할한다. 데이터를 전송하는 네트워크 MTU(Maximum Trasmission Unit)보다 큰 경우, 패킷은 작은 조각으로 분할될 수 있다. 수신측에서는 이러한 패킷 족각들을 다시 조립하여 원래의 데이터로 복원한다.
패킷 포워딩(Packet Forwarding)은 네트워크 계층은 패킷을 출발지에서 목적지로 전달하는 역할을 의미합니다. 라우터는 패킷을 수신하고 목적지 IP주소에 따라 적절한 출력 포트로 패킷을 전달한다. 이러한 패킷 전달 과정은 네트워크의 다양한 노드를 통해 이루어진다.
네트워크 주소 지정(Addressing) IP프로토콜은 각 장치에 고유한 IP 주소를 할당하여 통신에 사용한다. IP 주소는 네트워크 계층에서 사용되며, 출발지와 목적지 장치를 식별하는 역할을 한다. IPv4와 IPv6는 주로 사용되는 IP주소 체계입니다.
네트워크 계층은 상위 계층인 전송 계층과 하위 계층인 데이터 링크 계층과 상호 작용하여 데이터의 신뢰성과 효율성을 제공한다. 또한 다양한 네트워크 장비들이 네트워크 계층을 통해 통신하며 전체 인터넷의 연결성을 유지한다.
4계층 - 전송 계층(Transport Layer)
이 계층은 통신을 활성화하기 위한 계층이며 보통 TCP 프로토콜을 이용하며, 포트를 열어서 응용프로그램들이 전송을 할 수 있게 한다.
만약 데이터가 왔다면 4계층에서 해당 데이터를 하나로 통합하여 5계층으로 전달한다.
종단 간 연결 설정 및 해제 전송 계층은 데이터의 종단 간 연결을 설정하고 해제하는 기능을 제공한다. 데이터 통신을 위해 양쪽 중단 간에 가상 연결을 설정하고, 데이터 통신을 위해 양쪽 종단 간에 가상 연결을 설정하고, 데이터 전송이 완료되면 연결을 종료한다.
데이터 분할과 재조립은 전송 계층은 상위 계층에서 받은 데이터를 전송 가능한 크기로 분할하고, 수신 측에서는 이러한 분할된 데이터를 다시 원래의 데이터로 재조립한다. 이를 통해 상위 계층에서는 데이터의 크기를 신경쓰지 않고 데이터를 전송할 수 있다.
전송계층에서의 흐름 제어(Flow Control)는 수신 측의 데이터 처리 능력을 고려하여 데이터의 흐름을 제어한다. 수신측에서 처리할 수 있는 데이터의 양을 초과하지 않도록 송신 측이 데이터를 조절한다.
가장 잘 알려진 전송 계층 프로토콜은 TCP(Transmission Control Protocol)이다. TCP는 신뢰성 있는 연결 지향 프로토콜로 데이터의 손실과 손상을 최소화하고 순서를 보장한다. UPD(User Datagram Protocol)는 비연결성 프로토콜로, 신속한 데이터 전송을 제공하지만 데이터의 순서와 신뢰성은 보장하지 않는다.
전송계층은 네트워크 계층에서 받은 데이터를 종단 간의 신뢰성있는 통신을 위해 처리하고, 상위 계층에서 받은 데이터를 분할 하여 하위 계층에 전달한다. TCP와 UDP는 가장 널리 사용되는 전송 계층 프로토콜로, 데이터의 신뢰성, 순서 보장, 흐름 제어등을 제공한다.
5계층 - 세션 계층(Session Layer)
양 끝단의 응용 프로세스가 통신을 관리하는 방법을 제공하는 계층이다. 이 계층의 프로토콜은 통신 연결이 손실되는 경우 연결 복구 시도가 가능하며 연결 시도중 장시간 연결이 되지 않았다면 세션 계층의 프로토콜이 연결을 닫고 다시 연결을 시도한다.
세션 설정 및 유지란 세션 계층은 양 끝단의 응용 프로세스 간에 세션을 설정하고 유지한다. 세션 설정 단계에서는 양쪽에서 데이터 전송을 시작하기 전에 초기와 동기화 작업이 수행된다.
대화 제어는 세션계층에서 양 끝단의 응용프로세스 간에 대화를 제어한다. 동시에 발생하는 응용 프로세스간의 다중 대화를 관리하고, 통신 순서를 유지한다.
세션 복구는 세션 계층에서 세션 중단이나 네트워크 장애가 발생했을 때 세션을 복구할 수 있는 메커니즘을 제공하는 것이다. 세션 복구는 이전 상태의 세션을 복원하여 데이터 손실을 최소화한다.
세션 종료 단계에서는 세션의 마무리 작업이 수행되며, 자원 해제와 정리 작업이 이루어진다.
동기화는 데이터의 일관성을 유지하기 위해 양 끝단 간의 동기화 지접을 설정하는 것을 의미한다. 체크 포인팅은 데이터의 중간 상태를 저장하여 장애 발생 시 복구할 수 있도록 한다.
6계층 - 표현 계층(Presentation Layer)
표현 계층에서는 데이터의 표현 방식을 정의하고, 암호화, 압축, 형식 변환 등의 기능을 수행하여 상위 계층에서 사용할 수 있는 데이터를 제공한다.
데이터 형식 변환은 표현계층에서 데이터를 네트워크에 전송 가능한 형식으로 변환하다. 서로 다른 시스템간의 데이터 형식 호환성을 유지하기 위해 데이터의 인코딩, 디코딩, 문자 집합 변환등을 수행한다.
데이터 압축은 표현계층에서 데이터를 압축하여 전송 효율성을 높이고 대역폭을 절약한다. 압축 기법은 데이터의 중복성을 제거하거나 압축 알고리즘을 사용하여 데이터 크기를 줄이는 방식으로 이루어진다.
표현 계층에서는 데이터의 보안을 위해서 암호화와 복호화를 수행한다. 데이터를 암호하여 외부에서의 무단 엑세스를 방지하고, 수신 측에서는 복호화하여 원래의 데이터를 얻을 수 있다.
또한 표현계층에서는 데이터의 구문 검사를 수행하여 문제가 있는 데이터를 탐지한다. 데이터의 유효성 검사와 오류 검출을 위해 체크섬, 해시 함수등의 기술을 사용한다.
그리고 데이터를 표현하는 방식을 정의하고, 필요한 경우 데이터의 인코딩을 수행한다. 데이터의 형식, 순서, 구조등을 정의하여 상위 계층에서 데이터를 적절하게 해석하고 처리할 수 있도록 한다.
표현 계층은 네트워크 상에서 데이터의 표현 방식과 변환을 담당하며, 상위 계층에서 사용할 수 있는 형태로 데이터를 제공한다. 데이터 압축, 암호화, 형식 변환등을 통해 데이터의 안전성과 효율성을 강화하며, 서로 다른 시스템 간의 호환성을 유지한다.
7계층 - 응용 계층(Application Layer)
응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행하는 계층이다. 응용 계층은 최상위 계층으로 사용자에게 직접적으로 보이는 부분이며, OSI 모형에서는 "최종 사용자에게 가장 가까운 " 계층이다.
응용 계층은 사용자와 상호 작용하기 위한 인터페이스를 제공한다. 이 계층은 사용자가 응용 프로그램을 통해 데이터를 입력하고 출력을 받을 수 있는 환경을 제공한다.
또한 응용 계층에서는 응용 프로토콜도 제공한다. 다양한 응용 프로토콜을 포함하여 이메일(POP, IMAP), 웹(HTTP), 파일 전송(FTP), 도메인 이름(DNS) 등 다양한 서비스를 지원한다.
응용 계층은 응용 프로그램 간의 데이터 전송을 관리하고, 데이터의 전달을 담당한다. 사용자가 요청한 데이터를 다른 시스템으로 전송하고, 응답을 받아 사용자에게 제공한다.
데이터의 인코딩, 디코딩, 압축, 해제등을 처리하여 응용 프로그램 간의 호환성을 유지한다.
사용자의 신원 확인, 데이터의 기밀성과 무결성을 유지하기 위해 암호화 및 보안 프로토콜을 사용한다.
응용 계층은 사용자와 응용 프로그램 간의 통신을 위한 최상위 계층으로, 웹 브라우저, 이메일 클라이언트, 파일 전송 프로그램 등과 같은 응용 프로그램이 이 계층에서 작동한다.
OSI 7 Layer를 나눈 이유
- 계층화 : OSI 모델은 기능을 계층별로 분리함으로써 네트워크 시스템을 더욱 모듈화하고 구성하기 쉽게 만들고, 각 계층은 특정한 기능을 수행하면서 계층 간의 인터페이스를 통해 효율적인 상호작용이 가능하다.
- 표준화 : OSI 모델은 네트워크 프로토콜의 설계와 구현을 표준화하기 위해 개발 되었다. 각 계층은 명확한 역할과 책임을 가지고 있으며, 표준화된 인터페이스를 통해 다른 계층과의 상호 운용성을 보장한다.
- 복잡성 감소 : 네트워크 시스템은 매우 복잡한 기술 요소들의 조합으로 이루어져 있다. OSI 모델은 이 복잡성을 계층별로 분해함으로써 각 계층의 독립성을 유지하고, 문제가 발생했을 때 해당 계층에 집중하여 해결할 수 있도록 도와준다.
위와같은 이유로도 나누지만 가장 간단하게 기억하기 쉬운 것은 흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고,
7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다.
참고
https://hahahoho5915.tistory.com/15
'Computer Science > Network' 카테고리의 다른 글
[Network] 무선 통신망의 방향성인 5G, 6G 기술에 대해서 각각 그 특징과 차이를 조사하고, 요약 (0) | 2023.12.28 |
---|---|
[Network] TCP/IP 프로토콜 구조에 대해서 설명해보자. (0) | 2023.12.28 |
[Network] HTTP와 HTTPS의 차이 (0) | 2023.07.18 |
[Network] TCP와 UDP (0) | 2023.05.05 |
[Network] HTTP 란 (0) | 2023.04.27 |