정보처리기사

[정보처리기사] OSI 7계층 (Open Systems Interconnection)

dongkeonkim 2023. 4. 19. 12:03
반응형

네트워크 통신에서 사용되는 프로토콜 스택에서 채택되는 일반적인 프로토콜 설계 모델입니다. 이 모델은 각각의 계층이 서로 다른 목적을 가지고 있으며, 계층 간의 서비스를 사용하여 논리적인 데이터 흐름을 제공합니다.

각 계층은 다음과 같습니다.

 1. 물리 계층(Physical Layer)

 물리 계층은 네트워크의 하드웨어입니다. 전송 매체, 전송 방식, 전기 신호 등을 다룹니다.

 USB, HDMI "케이블"처럼 네트워크 장비 간에 데이터를 전송하기 위해 사용하는 것이나, 무선공유기와 같이 컴퓨터나 스마트폰 등이 인터넷에 접속할 수 있도록 하며 이들 간에 데이터 전송을 중계하는 "허브".

 인터넷 서비스 제공 업체가 제공하며 디지털 신호를 아날로그 신호로 변환하거나, 아날로그 신호를 디지털 신호로 변환하여 전화선을 통해 데이터를 전송하거나 컴퓨터나 네트워크에 연결하는 역할을 하는 "모뎀"이 물리계층에 해당됩니다.

 

 

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

 데이터 링크 계층은 물리 계층과 네트워크 계층 사이에 위치합니다. 네트워크의 하드웨어 부분과 소프트웨어 부분 사이의 인터페이스 역할과 데이터를 물리적인 매체를 통해 전송하는 역할을 하며, 에러 검출과 흐름 제어 등의 기능을 수행합니다. 데이터 전송의 신뢰성을 보장하죠.

 또한 네트워크 케이블을 통해 전송된 신호를 받은 네트워크 카드는 이를 패킷이라는 단위로 분할하고, 각 패킷에 대한 주소 정보를 포함합니다.

 

 데이터 링크 계층은 일반적으로 HDLC, PPP, MAC 세 가지 프로토콜을 사용합니다.

 

 1) HDLC

 HDLC는 네트워크 장비 간의 데이터 전송을 위한 프로토콜입니다. 주로 전용회선 환경에서 사용되며, HDLC 헤더를 통해 "프레임"의 시작과 끝, 에러 검출 등의 정보를 전달합니다.

 

 2) PPP

 PPP는 네트워크 장비 간의 포인트 투 포인트(Point-to-Point) 연결을 위한 프로토콜입니다. 주로 인터넷 접속 시, ISP(Internet Service Provider)와 사용자 간의 연결에서 사용됩니다. PPP는 HDLC에서 파생된 프로토콜로, 프레임을 전송하는 방식이 유사합니다.


 3) MAC

 MAC 프로토콜은 이더넷(Ethernet)과 같은 로컬 네트워크(Local Area Network)에서 사용되는 프로토콜입니다. 이더넷은 MAC 프로토콜을 사용하여 노드 간의 통신을 가능하게 합니다. MAC 프로토콜은 물리적인 매체에 의존하는 프로토콜이기 때문에, 이더넷, 토큰링(Token Ring) 등의 LAN에서 사용됩니다.
 이처럼 데이터 링크 계층에는 하드웨어에 의존하는 프로토콜이 많이 사용됩니다. 이러한 프로토콜은 데이터 전송의 안정성과 효율성을 보장하며, 높은 대역폭과 신뢰성을 요구하는 네트워크 환경에서 주로 사용됩니다.

 

 

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

 데이터의 논리적인 주소를 지정하고 경로를 선택하는 역할을 합니다.
 이 계층은 송신 호스트에서 목적지 호스트로 데이터를 전달하기 위해 여러 개의 라우터를 거쳐 패킷을 전송하는 역할을 합니다.
 또한, 상위 계층의 데이터를 패킷으로 캡슐화하고, 하위 계층에서 받은 패킷을 디캡슐화하여 상위 계층으로 전달하는 역할도 수행합니다. 이러한 역할을 통해 네트워크 계층은 전체 네트워크에서 패킷 전달을 보장하는 중요한 역할을 합니다.

 네트워크 계층에서 사용되는 프로토콜은 "IP" 입니다.

 IP(Internet Protocol)는 패킷을 목적지까지 전달하기 위해 각 호스트를 식별하는 논리적인 IP 주소를 부여하고, 이를 기반으로 최적의 경로를 선택합니다.

 

 

 4. 전송 계층(Transport Layer)

 전송 계층은 송신자와 수신자 사이의 신뢰성 있는 데이터 전송을 보장하는 역할을 합니다. 데이터의 분할, 흐름 제어, 오류 검출 및 복구, 데이터 전송 순서 등의 기능을 제공합니다.

 

 전송 계층은 포트 번호를 사용하여 응용 계층에서 오는 데이터를 여러 개의 전송 계층 프로토콜에 전달합니다. 송신자와 수신자는 포트 번호를 통해 어떤 응용 프로그램에서 전송되었는지를 알 수 있습니다. 또한 오류 검출 및 복구 기능을 제공하여 데이터 전송 시 손실이나 오류가 발생했을 때 이를 복구하고, 데이터 전송 순서를 보장합니다. 이를 통해 전송 계층은 신뢰성 있는 데이터 전송을 보장하고, 데이터 전송의 안정성과 정확성을 유지합니다.


 전송 계층에서 사용되는 프로토콜로는 "TCP""UDP"가 있습니다.

 

 1) TCP(Transmission Control Protocol)
 신뢰성 있는 데이터 전송을 보장하는 프로토콜입니다. 데이터의 분할, 흐름 제어, 오류 검출 및 복구, 데이터 전송 순서 등의 기능을 제공하여 데이터 전송 시 데이터의 정확성과 안정성을 보장합니다. 패킷을 받은 서버는 TCP 프로토콜을 이용하여 브라우저와 연결을 설정하고 데이터 전송을 시작합니다.

 

 TCP는 "연결 기반 프로토콜"로, 송신자와 수신자 간에 연결을 설정하고 데이터를 전송합니다. 데이터를 일정한 크기의 데이터 단위인 "세그먼트"(segment)로 분할하여 전송하며, 각 세그먼트는 "시퀀스 번호"(sequence number)와 "확인 응답 번호"(acknowledgment number)를 가지고 있습니다.

 이는 데이터 전송 중에 오류가 발생했을 경우. 즉, 수신자로부터 확인 응답 메시지(ACK)를 받지 못하는 경우 해당 데이터를 재전송하고, 수신자는 중복된 데이터를 제거하여 데이터의 정확성을 보장합니다.

 

 또한, 데이터 전송 순서를 보장합니다. 데이터는 전송되는 동안 다양한 경로를 거치기 때문에 데이터가 수신자에게 전송되는 순서와 송신자에서 전송된 순서가 다를 수 있습니다. 하지만 시퀀스 번호를 사용하여 데이터 전송 순서를 보장하며 흐름 제어 기능을 제공하여 수신자가 처리할 수 있는 속도에 따라 데이터의 송신 속도를 조절합니다. 이를 통해 데이터 전송 시 네트워크 혼잡을 방지하고, 데이터의 안정적인 전송을 보장합니다.

 

 TCP는 인터넷에서 가장 많이 사용되는 프로토콜 중 하나로, 웹 브라우저, 이메일, 파일 전송 등 다양한 응용 프로그램에서 사용됩니다.

 2) UDP(User Datagram Protocol)
 UDP는 TCP와 달리 연결 기반이 아닌 비연결형 프로토콜로, 빠른 속도를 위해 데이터의 손실과 오류 검사, 재전송, 흐름 제어와 혼잡 제어 등을 제공하지 않습니다. 데이터 전송 전에 연결 설정 과정이 없고, 데이터 전송 후에 연결 해제 과정이 없습니다. 대신 데이터의 크기를 제한하지 않고, 실시간 멀티미디어 스트리밍, DNS(Domain Name System) 조회, IP 음성 통화 등과 같은 애플리케이션에서 사용됩니다.

 따라서 데이터 전송 시간이 짧고, 빠른 전송이 필요하며 신뢰성이 중요하지 않은 경우에 적합합니다.

 

 

 5. 세션 계층(Session Layer)

 세션 계층은 양 끝단의 응용 프로세스 간에 세션을 설정하고 유지합니다. 이 계층에서는 동기화, 대화 제어, 세션 체크포인트 및 복구 등을 수행합니다.

 네트워크 사용자와의 상호작용을 관리하며, 이를 위해 세션을 설정, 유지 및 해제하는 프로토콜을 제공합니다. 세션 계층은 또한 데이터 전송의 순서를 조정하고 오류를 검출하며 복구하는 기능을 제공합니다.

 

 

 6. 표현 계층(Presentation Layer)

 표현 계층은 데이터의 형식을 변환하고 인코딩, 디코딩을 수행합니다. 이 계층에서는 데이터의 의미를 표현하고 변환하는 작업을 수행합니다.

 이 계층은 데이터의 표현 방식, 인코딩, 암호화 등의 기능을 담당합니다. 데이터를 전송하기 전에 표현 계층에서는 데이터를 ASCII 코드나 유니코드 등의 문자열로 변환하거나, 이미지 파일을 JPEG나 PNG와 같은 형식으로 변환하고, 필요에 따라 데이터를 암호화하여 안전한 전송을 보장합니다.

 표현 계층에서 주로 사용되는 프로토콜로는 다음과 같은 것들이 있습니다.

 JPEG, GIF, PNG 등의 이미지 파일 형식
 ASCII, Unicode 등의 문자 인코딩 방식
 MPEG, MP3 등의 오디오/비디오 압축 방식
 SSL, TLS 등의 암호화 및 보안 프로토콜

 

 

 7. 응용 계층(Application Layer)

 응용 계층은 최종 사용자가 직접 사용하는 계층입니다. 이 계층에서는 사용자 인터페이스, 전자우편, 파일 전송 등의 서비스를 제공합니다.

 사용자가 사용하는 응용 프로그램의 종류에 따라 다양한 프로토콜이 사용됩니다. 예를 들어, 웹 브라우저에서는 HTTP(Hypertext Transfer Protocol) 프로토콜이 사용되며, 이메일 클라이언트에서는 SMTP(Simple Mail Transfer Protocol) 또는 POP(Post Office Protocol) 프로토콜이 사용됩니다. 또한, 파일 전송 프로그램에서는 FTP(File Transfer Protocol) 프로토콜이 사용됩니다.

 

 

 이렇게만 봐서는 이해가 잘 가지 않기 때문에 실생활에서 사용되는 예시로 마무리 하겠습니다.

 컴퓨터로 어떠한 검색을 하려면, 먼저 웹 브라우저(응용 계층)에서 검색어를 입력하게 됩니다. 그리고 브라우저는 해당 검색어를 포함한 HTTP 요청을 생성하여 전송합니다.

 응용 계층에서 생성한 HTTP 요청은 표현 계층에서 사용 가능한 형식으로 변환됩니다. 이때 MIME(Multipurpose Internet Mail Extensions) 형식으로 변환되어, HTTP 요청이나 응답에 대한 메시지의 타입, 인코딩, 언어 등에 대한 정보를 포함합니다. 또한, 표현 계층에서는 데이터 압축, 암호화, 인코딩 등의 작업도 이루어질 수 있습니다. 이러한 작업을 거쳐 변환된 HTTP 요청은 세션 계층으로 전달됩니다.

 세션 계층은 통신 세션을 설정, 유지, 해제하는 역할을 합니다. 따라서, HTTP 요청이 생성되어 세션 계층으로 전달되면, 세션 계층에서는 해당 요청에 대한 세션을 설정하게 됩니다. 세션 계층에서 설정된 세션 정보는 전송 계층에 전달됩니다. 이 정보는 전송 계층에서 세그먼트를 생성하고, 이를 네트워크 계층으로 전달합니다. HTTP 요청이 네트워크 계층으로 전달되면, 이전 계층인 세션 계층에서 생성된 패킷이 추가되어 IP 패킷이 형성됩니다. 이때 IP 패킷의 헤더에는 출발지 IP 주소와 목적지 IP 주소가 기록됩니다.

 네트워크 계층에서는 IP 주소를 이용하여 패킷을 목적지까지 전달하기 위해 라우팅 기능을 수행합니다.각 라우터에서 패킷이 전달되는 경로를 찾기 위해 IP 주소를 사용합니다.

 네트워크 계층에서 패킷으로 캡슐화된 HTTP 요청은 데이터 링크 계층으로 이동합니다. 데이터 링크 계층에서는 이 패킷이 네트워크 물리 계층에서 전송될 수 있도록, 물리 주소인 MAC 주소를 할당하는 과정을 거칩니다. 이를 위해 ARP(Address Resolution Protocol) 프로토콜을 사용하여 IP 주소와 MAC 주소를 매핑합니다. 그리고 이 패킷은 이더넷 프레임 형태로 만들어지고, 이더넷 프로토콜을 사용하여 목적지 MAC 주소와 출발지 MAC 주소가 할당되어 물리 계층으로 전달됩니다.

 물리 계층에서는 데이터링크 계층에서 처리한 프레임을 전기 신호로 변환하여 네트워크 케이블을 통해 전송합니다. 이 과정에서 전송 매체에 맞는 전기 신호의 변환, 전송 속도 및 에러 검출과 수정 등의 작업이 이루어집니다.

 이렇게 전기 신호로 변환된 데이터는 네트워크를 타고 수신 컴퓨터로 향했을 때, 해당 수신 컴퓨터의 물리 계층을 통해 수신되어 데이터 링크, 네트워크, 전송, 세션, 표현, 응용 계층으로 거쳐 올라가게 되는 것입니다.

반응형