OSI 7계층이란
OSI 7계층 모형을 통해 특정 네트워킹 과정에서 일어나는 일을 시각적으로, 단계별로 파악할 수 있다. 흐름을 한눈에 알아보기 쉽기 때문에 통신 과정에서 발생한 문제의 원인 파악이 용이하다. 특정한 곳에 이상이 생겼을 때 다른 단계를 건들지 않고 이상이 생긴 단계만 고칠 수 있다.
PC방에서 오버워치를 하는데 연결이 끊겼다. 어디에 문제가 있는지 확인해보자. (인용 출처)
모든 PC에 문제가 있다면…
- 라우터의 문제 (3계층 네트워크 계층)
- 광랜을 제공하는 회사의 회선 문제 (1계층 물리 계층)
한 PC만 문제가 있다면…
- 오버워치 소프트웨어에 문제가 있다면 (7계층 어플리케이션 계층)
- 오버워치 소프트웨어에 문제가 없고, 스위치에 문제가 있으면 (2계층 데이터링크 계층)
동작 원리
캡슐화란 데이터 전송을 위해 각 계층에서 자신의 계층 특성을 담은 제어 정보(주소, 에러 제어 등)를 헤더화 시켜 붙이는 것을 말한다. 캡슐화 과정을 통해 동일 계층간 호환성을 유지하고, 오류를 최소화할 수 있다.
데이터를 보낼 때는 송신 측에서는 데이터 캡슐화를 하여 보내고, 수신 측에서는 역캡슐화하여 데이터를 확인할 수 있다. 데이터를 전송하기 위해 라우터를 통할 때 네트워크 계층까지 역캡슐화하여 자신(라우터)에게 온 정보가 맞는지 확인한다. 자신에게 온 데이터가 맞으면 마저 역캡슐화하여 데이터를 확인하고, 아니라면 다시 캡슐화하여 다음 라우터에게 전한다.
계층 설명
요즘에는 OSI 7계층보다 TCP/IP 5계층(TCP/IP Updated Model)을 많이 쓴다고하여 이를 기준으로 설명한다.
1. 물리 계층
- 주로 전기적, 기계적, 기능적인 특성을 이용해 데이터를 전송한다. 하드웨어적으로 구현되어 있다.
- 데이터는 0과 1의 형태로 전달되며, 단순히 데이터의 전달 만을 한다.
- 단순히 데이터의 전달 역할을 할 뿐, 주고 받는 데이터가 무엇인지, 어떤 에러가 있는지 신경쓰지 않는다.
- 케이블, 리피터, 네트워크 허브, 모뎀 등이 있다.
- 동축 케이블의 아날로그 신호를 디지털 데이터로 변환하는 모뎀(Modem)
- 다수의 컴퓨터를 연결하여 하나의 네트워크로 보내는 허브(Hub)
- 디지털 신호를 증폭해주는 리피터(Repeater)
2. 데이터 링크 계층
- 네트워크 상의 주변 장치들 간의 데이터를 전송한다. 데이터의 오류와 흐름을 관리하여 안전하게 데이터를 전달할 수 있도록 한다.
- 주소 할당: 물리 계층으로부터 받은 신호들이 네트워크 상의 장치에 올바르게 안착할 수 있게 한다.
- 오류 감지: 신호가 전달되는 동안 오류가 포함되는 지를 감지한다. 오류가 감지되면 데이터 링크 계층은 해당 데이터를 폐기한다.
- 오류제어, 흐름제어, 동기화 등을 수행한다.
- 맥 주소를 가지고 통신하며, 전송되는 단위는 프레임이다.
- 브릿지, L2 스위치가 있다.
- 2개의 랜을 연결하는 브릿지(Bridge)
- 데이터를 MAC주소를 기반으로 빠르게 전달하는 스위치(Switch)
- L2 스위치는 전송 받은 프레임(frame)을 어디로 보내야 하는지 알아야 한다.
- 그를 위해 switch table 또는 mac address table을 확인한다.
- 전송 해야하는 도착지(destination)이 테이블에 있으면 보내고, 없으면 mac 주소를 알아내기 위해 ARP 통신한다.
3. 네트워크 계층
- 주소를 정하고 경로를 따라 패킷을 전달해주는(라우팅) 역할 및 흐름 제어, 오류 제어 등을 수행한다. 수많은 네트워크들의 연결로 이루어지는 인터넷 네트워크 속에서, 데이터가 전송될 수 있는 많은 경우의 수 중 가장 효율적인 라우팅 방법을 찾는다.
- 데이터링크 계층에서는 바로 연결된 이웃 컴퓨터와의 통신만을 생각한다.
- 네트워크 계층에서는 출발지에서 목적지까지의, End-To-End만을 생각한다.
- 네트워크 레이어의 기술은 운영체제 커널에 소프트웨어적으로 구현되어 있다.
- 주요 프로토콜은 IP, ICMP, 라우팅 프로토콜이고, 데이터 전송의 단위는 패킷이다.
- TCP/IP 에서 IP 프로토콜은 신뢰성 및 흐름제어 기능이 없으며, 이것은 TCP에서 보장한다.
- 라우터, L3 스위치가 있다.
- L3 스위치는 2계층의 스위치에 라우팅 기능을 장착한 것
- 랜을 연결하는 라우터(Router)
4. 전송 계층
- 계층 구조의 네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공한다.
- 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어, 그리고 다중화 등의 역할을 한다.
- 포트 번호를 이용하여 도착지 컴퓨터의 최종 도착지인 프로세스에 데이터가 도달하게 한다.
- 포트 번호는 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야하는 정수 값이다.
- 주요 프로토콜은 UDP, TCP이다.
- 전송 단위는 UDP 일 경우 user datagram, TCP 일 경우 segment를 사용한다.
5. 응용 계층
- Session Layer
- 실제 네트워크 연결이 이루어지는 계층
- 두 대의 기기가 통신하기 위해서는 하나의 세션이 열려야만 한다. 세션 계층에서 프로세스간 통신을 제어하고, 통신 과정에서 동기화를 유지한다.
- Presentation Layer
- 응용프로그램 형식을 네트워크 형식으로 변환하거나 그 반대의 경우가 일어나는 계층
- 대표적인 예로, 데이터를 안전하게 주고 받기 위해 암호화하고 복호화 하는 과정
- 파일의 확장자(txt, jpeg, mp4, html 등)이 이 계층과 관련된 프로토콜
- Application Layer
- 사용자가 네트워크에 접근할 수 있도록 인터페이스를 제공하는 계층
- 사용자에게 가장 직접적으로 보이는 부분
참고 자료
- https://www.sharedit.co.kr/posts/7482
- https://www.robotstory.co.kr/raspberry/?vid=36
- https://shlee0882.tistory.com/110
'CS > 네트워크' 카테고리의 다른 글
TLS 핸드셰이크 (0) | 2022.07.20 |
---|---|
동기/비동기와 블로킹/논블로킹 (0) | 2022.05.22 |
웹소켓(Websocket)이란? (0) | 2022.01.19 |