[CS] 네트워크 1. OSI 7계층

최민길(Gale)·2023년 8월 9일
1

CS 탐구

목록 보기
10/13

안녕하세요 이번 시간에는 OSI 7계층에 대해 알아보는 시간을 갖도록 하겠습니다.

OSI 7계층이란 다른 기종 시스템 간 상호 통신을 위하여 국제표준화기구(ISO)에서 컴퓨터 네트워크 프로토콜 디자인과 통신 계층을 구성하여 개발한 네트워크 모델입니다. OSI 7계층은 개념적 모델로 실제로 구현되지 않으며 각 계층은 하위 계층이 제공하는 서비스를 이용하고 상위 계층에게 서비스를 제공합니다. 상위 계층에서 하위 계층으로 데이터를 송신 시 헤더와 트레일러를 추가하는 캡슐화를 수행하며, 반대로 하위 계층에서 데이터를 수신 시 헤더 및 트레일러를 제거하고 분석하여 상위 계층으로 전달하는 역캡슐화를 수행합니다.

OSI 7계층에서 데이터를 전송하는 단위는 상위 계층 순서로 메시지 - 세그먼트 - 패킷 - 프레임 - 비트입니다.

메시지란 데이터를 주고 받을 때 사용되는 구성 요소들의 모음으로 어플리케이션에서 필요로 하는 데이터들의 모음입니다.

세그먼트란 메시지를 네트워크를 통해 실제로 전송하기 위해 적절한 크기로 분할한 작은 조각을 말합니다. 하나의 메시지는 크기가 크기 때문에 여러 세그먼트로 분할하여 사용됩니다. 이렇게 세그먼트로 나누어진 데이터 조각들은 목적지에서 다시 재조립되어 원래의 메시지로 복구됩니다.

패킷이란 세그먼트에 목적지까지의 전달을 위해 출발 및 도착 IP가 포함된 IP 헤더가 붙은 형태의 데이터를 말합니다. 패킷은 논리적인 데이터 덩어리로 전송 중에 네트워크를 통해 이동하며 최종 목적지까디 도달하게 됩니다.

프레임이란 패킷을 물리적인 전송 매체를 통해 송신 및 수신하기 위해 트레일러가 붙은 형태의 데이터입니다. 트레일러란 데이터의 무결성을 검사하고 오류를 감지하는데 사용되는 데이터의 끝에 추가되는 정보입니다. 오류 검출을 위한 체크섬(CheckSum)이 존재하여 전송 과정 중의 데이터의 변화나 손상을 검출할 수 있습니다.

데이터가 전송되는 과정에서 여러 제어 기능들이 존재합니다.

흐름 제어란 수신 노드의 수신 속도에 맞추기 위해 송신 노드가 데이터를 느리게 보내는 기능입니다. 데이터를 전송 시 송신자와 수신자 간의 전송 속도 차이나 수신 측의 처리 속도의 차이로 인해 문제가 발생할 수 있는데 흐름 제어를 통해 이를 해결할 수 있습니다.

혼잡 제어란 네트워크 내의 패킷의 수가 과도하게 증가하는 현상을 제어하는 기능입니다. 네트워크의 부하가 과도하게 증가하여 패킷이 지연되거나 유실되는 상태를 혼잡이라고 하는데, 네트워크 내의 데이터 흐름을 조절함으로서 네트워크 성능을 최적화할 수 있습니다.

오류 제어란 데이터 통신에서 발생할 수 있는 오류를 검출하고 복구하는 기능입니다. 데이터가 전송되는 과정에서 노이즈, 간섭 등의 요인으로 데이터가 손상되거나 유실될 수 있는데 이를 해결하여 데이터의 무결성을 유지하고 신뢰성 있는 통신을 보장하는데 사용됩니다.

회선 제어란 신호 간의 충돌 현상이 발생하지 않도록 제어하는 기능입니다. 여러 사용자가 동시에 네트워크를 사용하려고 할 때 회선을 효율적으로 분배하여 각 사용자에게 적절한 네트워크 자원을 할당하도록 합니다.

연결 제어란 두 시스템 간의 연결을 설정, 유지, 해제하는 과정을 관리하는 기능입니다. 데이터의 신뢰성과 효율성을 확보하기 위해 사용되며 대표적으로 TCP의 3-way 핸드셰이크, 4-way 핸드셰이크가 있습니다.

연결 제어의 일부로 동기 기능과 대화 기능이 사용됩니다.

동기 기능이란 통신 양단에서 논리적으로 상호 데이터 전송이 잘 되었다는 의미로 동기점을 설정하고 이후 데이터 전송에서 전송 오류가 발생하면 동기점 후의 데이터만 복구하는 기능입니다. 이는 데이터의 순차적인 송수신을 보장하고 송신 측과 수신 측 간의 타이밍을 동기화하여 데이터가 정확하게 전달되도록 합니다.

대화 기능이란 데이터 통신 중에 송신 측과 수신 측간의 상호작용을 조절하는 기능입니다. 신뢰성 있는 전송을 보장하기 위해 시간 경과에 따라 순차적으로 동기점을 부여하면서 단계적으로 데이터를 전송합니다.

그럼 OSI 7계층의 각 계층에 대해 알아보겠습니다.

1계층은 물리 계층입니다. 네트워크의 전기적이고 물리적인 연결을 담당하며 사용자의 디지털 데이터를 물리 계층의 매체가 전달할 수 있는 신호로 변환하여 비트 단위로 전송합니다.

2계층은 데이터 링크 계층입니다. 2개의 노드가 직접 연결되어 있을 때 프레임 단위로 전송합니다. 이 때 각 노드는 식별 가능하도록 MAC 주소를 가지고 있으며 흐름 제어, 회선 제어, 오류 제어를 수행합니다.

3계층은 네트워크 계층입니다. 2개의 노드가 여러 네트워크를 거쳐 연결되어 있을 때 4계층에서 넘겨받은 세그먼트를 패킷 단위로 캡슐화하고 논리적인 주소를 설정하여 정확하게 전송하는 것을 목표로 합니다. 송신 노드와 수신 노드 사이에 여러 노드가 존재하기 때문에 이들 사이의 경로를 설정하는 라우팅 기능을 제공합니다.

4계층은 전송 계층입니다. 송신 측의 프로세스와 수신 측의 프로세스 간 연결을 제공하고 이들 간 신뢰성 있는 통신이 가능하도록 합니다. 세그먼트 단위로 데이터를 전송하며 주소 및 포트 지정, 연결 제어, 오류 복구, 흐름 제어 등을 수행합니다.

5계층은 세션 계층입니다. 연결된 노드 간 메시지 단위로 데이터를 전송하며 세션 설정 유지, 동기 기능 및 대화 기능을 제공합니다.

6계층은 표현 계층입니다. 송신자와 수신자가 서로 다른 표현 방식을 사용하면 데이터를 받았어도 그 의미를 해석할 수 없기 때문에 송신 측과 수신 측이 동일한 표현 방식을 사용할 수 있는 기능을 제공합니다. 데이터 암호화와 해독 기능, 압축 및 압축 해제 기능을 제공합니다.

7계층은 응용 계층입니다. 사용자에게 편리한 응용 환경을 제공하는 기능으로 SMTP, HTTP 등의 프로토콜을 지원합니다.

profile
저는 상황에 맞는 최적의 솔루션을 깊고 정확한 개념의 이해를 통한 다양한 방식으로 해결해오면서 지난 3년 동안 신규 서비스를 20만 회원 서비스로 성장시킨 Software Developer 최민길입니다.

0개의 댓글