개발자 직군 신입에게 묻는 단골 질문인 OSI 7계층에 대한 답변을 준비하기 위한 포스트로
Cloudflare의 공식 자료(링크)를 참고했습니다.
OSI 모델의 정의
OSI는 개방형 시스템 상호 연결(Open Systems Interconnection)의 약자로, 표준 프로토콜을 사용하여 통신 시스템이 통신할 수 있도록 국제표준화기구에서 만든 개념 모델입니다.
7계층(응용) : 사람과 컴퓨터 간 상호작용 계층. 애플리케이션이 네트워크 서비스에 접근 가능
6계층(표현) : 데이터가 사용할 수 있는 형식인지, 데이터 암호화 발생 지점에 있는지 보장
5계층(세션) : 포트와 세션 간 연결 유지와 통제를 책임지는 계층
4계층(전송) : TCP & UDP를 포함한 전송 프로토콜을 사용하여 데이터를 전송
3계층(네트워크) : 어느 물리적 경로가 데이터를 받아들일지 결정
2계층(데이터 링크) : 네트워크 상에서 데이터 형식을 정의
1계층(물리) : 날 것의 비트 스트림을 물리적 매개체를 통해 전송
OSI 모델이 중요한 이유
OSI 모델은 네트워크 문제 발생 시 해당 문제가 어떤 계층에서 발생한 것인지를 명확히 분류할 수 있는 유용한 도식을 제공하여 특정 계층으로 문제를 좁히기 위한 시간과 비용을 최소화할 수 있습니다.
OSI 7계층
OSI 모델의 7가지 추상 계층은 일반적으로 탑 다운 방식으로 설명할 수 있습니다.
7. 응용 프로그램 계층
해당 계층은 사용자의 데이터와 직접 상호작용하는 유일한 계층으로, 소프트웨어가 사용자에게 의미있는 데이터를 제공하기 위해 의존하는 프로토콜과 데이터를 조작하는 역할을 합니다.
웹 브라우저 및 이메일 클라이언트와 같은 소프트웨어 애플리케이션은 통신을 개시하기 위해 해당 계층에 의존합니다.
(∴ 클라이언트 소프트웨어 애플리케이션이 애플리케이션 계층의 일부인 건 아님)
※ 프로토콜 : HTTP, SMTP
6. 프레젠테이션 계층
해당 계층은 데이터를 준비하는 역할을 하여 응용 계층이 이를 사용할 수 있게 합니다.
(즉, 애플리케이션이 소비할 수 있도록 데이터를 변환, 암호화, 압축합니다.)
1. 서로 통신하는 두 개의 통신 장치가 서로 다른 인코딩 방법을 사용할 수 있으므로, 수신 장치의 애플리케이션 계층이 이해할 수 있는 구문으로 수신 데이터를 변환하는 일을 담당합니다.
2. 장치가 암호화된 연결을 통해 통신할 경우, 최종 송신자에게 암호화를 추가, 최종 수신자에게 복호화를 추가하여 암호화되지 않은 읽기 쉬운 데이터로 애플리케이션 계층을 제시하는 역할을 수행합니다.
3. 애플리케이션 계층에서 수신한 데이터를 5계층(세션)으로 전송하기 전에 압축하는 일도 담당하며, 전송할 데이터의 양을 최소화함으로써 통신의 속도와 효율을 높입니다.
5. 세션 계층
해당 계층은 두 기기 사이의 통신을 시작하고 종료하는 일을 담당하며 이때 세션은 통신이 시작될 때부터 종료될 때까지의 시간을 의미합니다.
1. 세션 계층은 교환되고 있는 모든 데이터를 전송할 수 있도록 충분히 오랫동안 세션을 개방하고 리소스를 낭비하지 않기 위해 세션 종료 후 즉시 닫을 수 있도록 보장합니다.
2. 또한 데이터 전송을 체크포인트와 동기화합니다.
ex. 100 MB의 파일이 전송되는 경우 세션 계층이 5 MB마다 체크포인트를 설정하도록 하여 전송 도중 연결이 끊기거나 충돌이 발생하면 마지막 체크포인트에서 세션을 재개합니다.
( ∴ 해당 기능이 없다면 전체 전송을 처음부터 다시 시작해야 합니다.)
4. 전송 계층
해당 계층은 두 기기 간의 종단 간 통신을 담당하며 송신 측은 세션 계층에서 데이터를 가져와서 3계층(네트워크)으로 보내기 전에 조각(세그먼트)로 분할하는일을 포함합니다. 수신 측의 전송 계층은 세그먼트를 세션 계층이 이용할 수 있는 데이터로 재조립합니다. (송신-분할, 수신-재조립)
전송 계층은 또한 흐름 제어 및 오류(혼잡) 제어 역할도 수행합니다.
1. 흐름 제어: 연결 속도가 빠른 송신자가 연결 속도가 느린 수신자를 압도하지 않도록 최적의 전송 속도를 결정합니다.
2. 오류 제어: 수신된 데이터가 완료되었는지 확인하고 수신되지 않은 경우 재전송을 요청하여 최종 수신자에 대해 오류 제어를 수행합니다.
※ 프로토콜 : TCP, UDP
- 통신 단위 : 세그먼트
3. 네트워크 계층
해당 계층은 서로 다른 두 네트워크 간 데이터 전송을 용이하게 하는 역할을 합니다.
(∴ 서로 통신하는 두 장치가 동일한 네트워크에 있는 경우 네트워크 계층이 필요하지 않습니다.)
네트워크 계층은 전송 계층의 세그먼트를 송신자의 장치에서 더 작은 단위인 패킷으로 세분화하며 수신 장치에서 이 패킷들을 재조립합니다.
또한 네트워크 계층은 데이터가 표적에 도달하기 위한 최상의 물리적 경로를 찾는데 이를 라우팅이라고 합니다.
※ 프로토콜 : IP, 인터넷 제어 메시지 프로토콜 (ICMP), 인터넷 그룹 메시지 프로토콜 (IGMP), IPSec
- 통신 단위 : 패킷
2. 데이터 연결 계층
데이터 연결 계층은 네트워크 계층과 비슷하지만, 동일한 네트워크에 있는 두 개의 장치 간 데이터 전송을 용이하게 합니다.
해당 계층은 네트워크 계층에서 가져온 패킷을 더 작은 조각인 프레임으로 세분화합니다. 네트워크 계층과 마찬가지로 데이터 연결 계층도 인트라 네트워크 통신에서 흐름 제어 및 오류 제어를 담당합니다.
(∴ 전송 계층은 네트워크 간 통신에 대해서만 흐름 제어 및 오류 제어만을 담당함)
- 통신 단위 : 프레임
1. 물리적 계층
해당 계층은 케이블, 스위치 등 데이터 전송과 관련된 물리적 장비가 포함되며, 1과 0의 문자열인 비트 스트림으로 변환되는 계층입니다.
뿐만 아니라 두 장치의 물리적 계층은 신호 규칙에 동의해서 두 장치의 1이 0과 구별될 수 있어야 합니다.
Q. OSI 모델을 통해 데이터가 전송되는 방법에 대해 설명해주세요.
네트워크를 통해 사람이 읽을 수 있는 정보를 장치 간에 전송하려면 데이터가 송신 장치에서 OSI 7계층의 아래로 이동 후 최종 수신자에서 7계층 위로 이동해야 합니다.
A가 B에게 이메일을 전송한다고 가정할 때, A는 자신의 노트북에 있는 이메일 애플리케이션에서 메시지를 작성하고 '발송'을 누릅니다. 해당 이메일 애플리케이션이 이메일 메시지를 애플리케이션 계층에 넘기면, 해당 계층은 프로토콜(SMTP)를 선택하고, 데이터를 프레젠테이션 계층에 전달합니다. 프레젠테이션 계층이 압축한 데이터를 세션 계층에 전송하면 세션 계층은 세션을 시작합니다.
이제 데이터는 A의 전송 계층으로 넘어가 세그먼트로 분할되며, 네트워크 계층에서 패킷으로 다시 나뉘고, 이는 데이터 연결 계층에서 프레임으로 나눠집니다. 데이터 연결 계층은 해당 프레임을 물리적 계층으로 전달하며, 물리적 계층은 데이터를 1과 0의 비트 스트림으로 변환하고 물리적 매체(예. 케이블)을 통해 전송합니다.
B의 컴퓨터가 물리적 매체(예. 와이파이)를 통해 비트 스트림을 수신하면, 데이터는 반대 순서로 계층을 지나갑니다. 물리적 계층은 비트스트림에서 프레임으로, 데이터 연결 계층은 프레임에서 패킷으로, 네트워크 계층은 패킷에서 세그먼트로, 마지막으로 전송 계층에서 세그먼트가 하나의 데이터로 재조립됩니다.
이제 데이터는 수신자의 세션 계층에서 흐르고, 세션 계층이 데이터를 프레젠테이션 계층으로 넘기면, 통신 세션이 종료됩니다. 프레젠테이션 계층은 압축을 제거하고 원본 데이터를 애플리케이션 계층으로 넘깁니다. 애플리케이션 계층은 사람이 읽을 수 있는 데이터를 B의 이메일 소프트웨어에 제공하고, B는 본인의 노트북 화면에서 A의 이메일을 읽을 수 있게 됩니다.
Q. 4계층(전송)과 7계층(응용)의 차이에 대해 설명해주세요.
4계층은 전송 계층으로 데이터 전송의 신뢰성과 데이터의 정확한 전송을 담당하여 종단 시스템 간 연결을 설정, 관리, 해제합니다. 데이터의 손실, 순서 변경, 복제 등에 대한 에러 처리를 수행하며 송신 및 수신 프로세스를 식별하기 위해 포트 번호를 사용합니다.
주요 프로토콜로는 TCP(Transmission Control Protocol), UDP(User Datagram Protocol)가 있습니다.
7계층은 애플리케이션 계층으로 사용자와 상호작용하며, 그래픽 사용자 인터페이스(GUI), 텍스트 기반 인터페이스, 응용 프로그램 프로그래밍 인터페이스(API) 등을 제공합니다. 데이터 형식 및 인코딩을 관리하고 애플리케이션 데이터를 해석하며, 애플리케이션 간 데이터 교환과 서비스 제공을 담당합니다.
주요 프로토콜로는 HTTP, FTP, SMTP, POP3, IMAP 등이 있습니다.
요약하면, 4계층은 데이터 전송의 신뢰성과 에러 처리를 중심으로 작동하며, 주요 프로토콜 수준에서 동작합니다. 반면 7계층은 사용자와 상호작용하며 응용 프로그램 간의 통신을 관리하고, 높은 수준의 서비스를 제공합니다.
두 계층 모두 서로 다른 역할을 갖고 있으며, 전체 OSI 모델의 일부로 네트워크 통신을 조직화하고 설명하는 데 사용됩니다.
Q. TCP와 UDP의 차이에 대해 설명해주세요
참고 출처: https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/
'CS > 컴퓨터네트워크' 카테고리의 다른 글
[컴퓨터네트워크] 포트포워딩에 대하여 (0) | 2023.12.12 |
---|---|
[컴퓨터 네트워크] OSI 7계층 - 각 계층별 네트워크 장비 (0) | 2023.10.30 |
[컴퓨터네트워크] 대용량 트래픽 대응을 위한 방안 5가지 (1) | 2023.10.23 |
[DNS] DNS에 대하여 (1) | 2023.10.13 |
[컴퓨터네트워크] 네트워크 스위치 (0) | 2023.10.09 |