[Network/Tech]
OSI 7 Layer의 개념 정리 및 요약

2020. 3. 22. 20:05


OSI 모델은 무엇인가?

OSI(Open Systems Interconnection) 모델은 국제 표준화기구(International Organization for Standardzation)에서 만든 개념적 모델로, 다양한 통신 시스템이 표준 프로토콜을 사용하여 통신할 수 있다. 일반적으로 OSI는 서로 다른 컴퓨터 시스템이 서로 통신 할 수 있는 표준을 제공한다.

OSI모델은 컴퓨터 네트워킹을위한 범용 언어로 생각할 수 있다. 통신 시스템을 7개의 추상적 계층으로 나누는 개념을 기반으로 하며 각 계층은 마지막 계층 위에 쌓인다.

OSI 모델의 각 계층은 특정 작업을 처리하고 자체적으로 위, 아래 계층과 통신한다. DDOS 공격은 네트워크 연결의 특정 계층을 대상으로 한다. DDOS 공격의 공격 대상이 응용 프로그램일 경우 7계층을 공격하고, 공격 대상이 프로토콜 계층일 경우 3계층과 4계층을 타겟으로 공격한다.

OSI 모델이 중요한 이유

최신 인터넷은 OSI 모델을 엄격하게 따르지는 않지만(더 간단한 인터넷 프로토콜 제품군을 더 밀접하게 따르고 있다.) OSI 모델은 여전히 네트워크 문제를 해결하는 데 매우 유용하다. 인터넷에서 랩톱을 사용할 수 없는 사람이든 수천 명의 사용자가 사용할 수 있는 웹 사이트든 OSI 모델은 문제를 해결하고 문제의 원인을 찾는 데 도움이 될 수 있다. 문제를 모델의 특정 계층으로 좁힐 수 있다면 우리는 불필요한 작업을 더욱 많이 피할 수 있다.

OSI 모델의 7가지 계층에 대한 설명

OSI 모델의 7가지 추상화 계층은 위에서부터 아래로 다음과 같이 정의할 수 있다.

7. 응용 계층

응용 계층은 사용자의 데이터와 직접 상호 작용하는 유일한 계층이다. 웹 브라우저 및 이메일 클라이언트와같은 소프트웨어 응용 프로그램은 통신을 시작하기 위해 응용 프로그램 계층에 의존한다. 그러나 클라이언트 소프트웨어 응용 프로그램이 응용 프로그램 계층의 일부가 아님을 분명히 해둘 필요가 있다. 오히려 응용 프로그램 계층은 소프트웨어가 사용자에게 의미있는 데이터를 제공하는 데 의존하는 프로토콜 및 데이터 조작을 담당한다. 응용 프로그램 계층 프로토콜에서는 HTTP(HyperText Transfer Protocol)뿐만 아니라 SMTP(Simple Mail Transfer Protocol)가 포함된다.(SMTP는 전자 메일 통신을 가능하게 하는 프로토콜 중 하나이다.)

6. 표현 계층

표현 계층은 주로 데이터를 준비하여 응용 프로그램 계층에서 사용할 수 있도록 한다. 다시말해, 표현 계층은 응용 계층이 소비할 수 있는 데이터를 제공합니다. 표현 계층은 데이터의 변환, 암호화 및 압축을 담당합니다.

통신하는 2개의 통신 장치가 상이한 인코딩 방법을 사용하고있을 수 있으므로,  6계층은 수신 데이터를 수신 장치의 7계층에 암호화되지 않은 읽을 수 있는 데이터를 표기 할 수 있도록 한다.

마지막으로 표현 계층 또한 5계층으로 전달하기 전에 응용 계층에서 수신 한 데이터를 압축하는 역할을 한다. 이는 전송 될 데이터의 양을 최소화하여 통신 속도와 효율성을 향상시킨다.

5. 세션 계층

세션 계층은 두 장치 간의 통신을 열고 닫는 역할을 하는 계층이다. 통신을 열고 닫을 때까지의 시간을 세션이라고 하며, 세션 계층은 교환되는 모든 데이터를 전송할 수 있을정도로 세션을 열린 상태로 유지한 다음 자원 낭비를 피하기 위해 세션을 즉시 닫는다.

세션 계층은 데이터 전송을 체크포인트와 동기화한다. 예를 들어 100MB 파일이 전송되는 경우 세션 계층은 5MB마다 체크포인트를 설정할 수 있다. 52MB가 전송 된 후 연결이 끊어지거나 충돌이 발생하는 경우 마지막 체크포인트에서 세션이 재개될 수 있다. 즉, 남은 50MB 데이터만 재전송하면 된다. 만약 이러한 체크포인트가 없다면 처음부터 다시 100MB 파일을 재전송해야할것이다.

4. 전송 계층

4계층은 두 장치 간의 종단 간 통신을 담당한다. 여기에는 세션 계층에서 데이터를 가져와 3계층으로 보내기 전에 세그먼트라고 하는 청크로 분할하는것을 말한다. 수신 장치의 전송 계층은 세그먼트를 세션 계층이 소비할 수 있는 데이터로 재조립하는것이다.

전송 계층은 흐름 제어 및 오류 제어를 담당한다. 흐름 제어는 빠른 연결을 가진 발신자가 느린 연결을 가진 수신자를 압도하지 않도록 하기위해 최적의 전송속도를 결정한다. 전송 계층은 수신된 데이터가 완료되었는지 확인하고 재전송을 요청하지 않으면 수신 측에서 오류 제어를 수행한다.

3. 네트워크 계층

네트워크 계층은 서로 다른 두 네트워크 간의 데이터 전송을 촉진한다. 통신하는 두 장치가 동일한 네트워크에 있으면 네트워크 계층이 필요하지 않다. 네트워크 계층은 전송 계층의 세그먼트를 발신자의 장치에서 패킷이라고 하는 더 작은 단위로 분리하고 수신 장치에서 이러한 패킷을 재조립한다. 네트워크 계층은 데이터가 대상에 도달할 수 있는 최상의 물리적 경로를 찾는다. 이것을 라우팅이라고 부른다.

2. 데이터 링크 계층

데이터 링크 계층은 네트워크 계층과 매우 유사하지만 데이터 링크 계층은 같은 네트워크의 두 장치 간 데이터 전송을 용이하게 한다. 데이터 링크 계층은 네트워크 계층에서 패킷을 가져와 프레임이라고 하는 더 작은 조각으로 나눈다. 네트워크 계층과 마찬가지로 데이터 링크 계층도 네트워크 내 통신의 흐름 제어 및 오류 제어를 담당한다.(전송 계층은 네트워크 간 통신의 흐름 제어 및 오류 제어만 수행함)

1. 물리 계층

물리 계층에는 케이블 및 스위치와 같은 데이터 전송과 관련된 물리적 장비가 포함된다. 이것은 데이터가 비트 스트림으로 변환되는 계층이며, 이는 1과 0의 문자열로 이루어져있다. 두 장치의 물리 계층도 신호 규칙이 정상적이여야만 한다.

OSI 모델을 통한 데이터 흐름

사람이 읽을 수 있는 정보가 한 장치에서 다른 장치로 네트워크를 통해 전송 되려면 데이터가 송신 장치에서 OSI 모델의 7개 계층을 거쳐 이동한 다음 수신자 측에서 7개 계층으로 이동해야만 한다.

예를 들어 A가 B에게 이메일을 보내려고 할 때 A는 먼저 자신의 메시지를 랩톱의 이메일 응용 프로그램으로 작성하고 '보내기'를 누를것이다. 이때 A의 이메일 애플리케이션은 자신의 이메일 메시지를 애플리케이션 계층으로 전달하고 프로토콜(SMTP(메일 전송을 위한 프로토콜))을 선택하고 데이터를 표현 계층으로 전달한다. 표현 계층은 데이터를 압축 한 다음 세션 계층에 도달하여 통신 세션을 초기화한다.

그러면 데이터가 보낸 사람의 전송 계층에 도달하여 세그먼트화되고 네트워크 세그먼트에서 해당 세그먼트가 패킷으로 분할되어 데이터 링크 계층의 프레임으로 더 세분화된다. 그런 다음 데이터 링크 계층은 해당 프레임을 물리 계층으로 전달하여 데이터를 1과 0의 비트 스트림으로 변환하고 케이블과 같은 물리 매체를 통해 전송한다.

B의 컴퓨터가 WI-FI와 같은 물리적 매체를 통해 비트 스트림을 수신하면 데이터는 장치에서 동일한 일련의 계층을 통과하지만 반대 순서로 진행된다. 먼저 물리 계층은 비트 스트림을 1과 0에서 데이터 링크 계층으로 전달되는 프레임으로 변환한다. 그런 다음 데이터 링크 계층은 프레임을 네트워크 계층의 패킷으로 재조립한다. 그런 다음 네트워크 계층은 전송 계층에 대한 패킷에서 세그먼트를 만들어 세그먼트를 하나의 데이터로 재조립한다.

그런 다음 데이터는 수신자의 세션 계층으로 흐르며, 표현 계층으로 데이터를 전달한 다음 통신 세션을 종료한다. 표현 계층은 압축을 제거하고 원시 데이터를 응용 계층으로 전달한다. 그런 다음 응용 프로그램 계층은 사람이 읽을 수 있는 데이터를 응용 계층으로 전달한다. 그런 다음 응용 프로그램 계층은 사람이 읽을 수 있는 데이터를 B의 전자 메일 소프트웨어와 함께 제공하여 A는 전자 메일을 자신의 랩톱 화면에서 읽을 수 있는것이다.