![[Network] OSI Model과 7 Layer 별 장비](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnEMAv%2FbtsLJcn0jw1%2FZZZ3LXNzrEPCfFvvBCgN50%2Fimg.jpg)
OSI Model이란
OSI$_{Open \space Systems \space Interconnection}$ 모델은 서로 다른 통신 시스템이 표준 프로토콜을 사용하여 통신할 수 있도록 국제표준화기구(ISO)에서 개발한 개념적인 모델이다. 복잡한 네트워크 통신을 7개의 계층으로 나누어 단순화했다.
각 계층은 유기적으로 연결되어 상위 계층은 하위 계층의 기능을 이용하고, 하위 계층은 상위 계층에 서비스를 제공하는 구조다. 통신이 일어나는 과정을 단계별로 파악할 수 있고 특정 계층의 기술이 발전하더라도 다른 계층에는 영향을 미치지 않는 장점이 있다.
현재는 더 단순한 TCP/IP 모델을 주로 사용해 OSI 모델을 엄격하게 따르지는 않지만, OSI 모델은 여전히 네트워크 문제를 해결하는 데 매우 유용한 프레임워크를 제공한다.
예를 들어 네트워크 문제가 발생했을 때, 어느 계층에서 문제가 발생했는지 파악함으로써 효율적인 문제 해결이 가능하다. 웹사이트 접속이 안 되는 문제가 물리 계층의 케이블 단선 때문인지, 네트워크 계층의 IP 설정 오류 때문인지, 아니면 응용 계층의 서버 프로그램 문제인지를 체계적으로 확인할 수 있다. 예를 들어 DDoS 공격의 경우, 공격 방식에 따라 특정 계층을 표적으로 한다. 응용 계층(7계층)을 대상으로 하는 공격이 있는가 하면, 네트워크 계층(3계층)이나 전송 계층(4계층)의 프로토콜을 공격 대상으로 삼기도 한다.
계층 | 설명 | 장비 | 데이터 단위 |
---|---|---|---|
응용 (Application) | 사용자가 네트워크에 접근할 수 있게 해주는 계층. 이메일, 파일 전송, 웹 브라우저 등 사용자가 직접 접하는 프로토콜과 데이터를 정의 | - | 메시지 (Message) |
표현 (Presentation) | 데이터 형식을 정의하고 암호화/복호화, 인코딩/디코딩 등을 수행. JPEG, MPEG 등의 데이터 포맷 처리와 ASCII, UTF-8 등의 인코딩을 담당 | - | 메시지 (Message) |
세션 (Session) | 양 끝단의 응용 프로세스가 연결을 성립하고 유지하도록 도와주는 계층. 통신 세션을 설정, 유지, 종료하고 동기화 담당 | - | 메시지 (Message) |
전송 (Transport) | 데이터를 일정한 크기로 나누고 전송 순서를 관리하며 오류 검사. TCP/UDP 프로토콜이 동작하며, 종단 간 신뢰성 있는 데이터 전송 보장 | L4 스위치, 방화벽 | 세그먼트 (Segment) |
네트워크 (Network) | 데이터를 목적지까지 전달하기 위한 최적 경로를 결정. IP 주소를 기반으로 라우팅을 수행하며, 서로 다른 네트워크 간의 통신을 담당 | 라우터, L3 스위치, 공유기, 방화벽 | 패킷 (Packet) |
데이터링크 (Datalink) | 인접한 네트워크 노드 간의 신뢰성 있는 데이터 전송을 담당. MAC 주소를 기반으로 통신하며 오류 검출과 재전송을 수행 | 브리지, (L2) 스위치, NIC | 프레임 (Frame) |
물리 (Physical) | 실제 데이터를 전기 신호로 변환하여 전송. 전송 매체의 물리적 특성, 전압, 데이터 속도 등을 정의 | 리피터, 허브, 케이블, 모뎀 | 비트 (Bit) |
Application Layer (응용 계층)
네트워크 서비스를 실제로 사용하는 가장 상위 계층이다. 사용자가 직접 접하는 인터페이스를 제공하며, 다양한 응용 프로그램과 프로토콜이 이 계층에서 동작한다.
웹 서비스의 경우 HTTP/HTTPS 프로토콜을 사용한다. 웹 브라우저를 통해 웹 페이지를 요청하고 받아오는 모든 과정이 이 프로토콜을 통해 이루어진다. 이메일 서비스는 SMTP와 POP3/IMAP 프로토콜을 사용한다. SMTP는 메일을 보낼 때, POP3나 IMAP은 메일을 받을 때 사용된다. 파일 전송의 경우 FTP 프로토콜을 사용하고 서버와 클라이언트 간에 파일을 주고받을 수 있다.
DNS$_{Domain \space Name \space System}$도 응용 계층의 중요한 서비스다. 우리가 'www.google.com'과 같은 도메인 이름을 입력하면 DNS는 컴퓨터가 이해할 수 있는 IP 주소로 변환해준다. 또한 원격 접속을 위한 SSH나 Telnet, 네트워크 관리를 위한 SNMP 등도 이 계층에서 동작한다.
Presentation Layer (표현 계층)
데이터의 형식을 결정하고 변환하는 계층이다. 응용 계층에서 전달받은 데이터를 다른 시스템이 이해할 수 있는 형식으로 변환하는 역할을 한다. 주요 기능은 세 가지로 나눌 수 있다.
- 데이터 인코딩/디코딩. ASCII, EBCDIC, UTF-8과 같은 문자 인코딩 간의 변환을 담당해 서로 다른 시스템 간에도 텍스트를 올바르게 해석할 수 있게 한다.
- 데이터 암호화/복호화. SSL/TLS와 같은 보안 프로토콜을 사용하여 데이터를 안전하게 전송한다.
- 데이터 압축/압축해제. JPEG, MPEG, GIF와 같은 이미지나 동영상 포맷의 압축을 처리하여 전송 효율을 높인다.
표현 계층은 서로 다른 시스템 간의 데이터 호환성을 보장해 안전한 데이터 전송을 가능하게 한다. 예를 들어 한글을 사용하는 시스템에서 영어를 사용하는 시스템으로 데이터를 전송할 때, 표현 계층이 문자 인코딩을 적절히 변환해 데이터가 올바르게 표시되도록 한다.
Session Layer (세션 계층)
양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고, 연결이 안정적으로 유지되도록 관리하는 계층이다. 이 계층의 주요 기능은 크게 세 가지로 나눌 수 있다.
- 세션 관리. 통신 세션을 설정, 유지, 종료하는 과정을 담당한다. 예를 들어 카카오톡으로 메시지를 주고받을 때, 대화가 시작되고 유지되다가 종료되는 전체 과정을 관리한다.
- 동기화. 두 시스템 간의 대화를 원활하게 하기 위해 체크포인트를 설정한다. 만약 파일을 전송하는 도중 오류가 발생하면, 처음부터가 아닌 마지막 체크포인트에서부터 전송을 재개할 수 있다.
- 대화 제어. 통신하는 양측이 동시에 데이터를 전송하려 할 때 충돌이 발생하지 않도록 관리한다.
이 계층에서는 RPC$_{Remote \space Procedure \space Call}$
, NetBIOS
같은 프로토콜이 동작한다. RPC는 한 컴퓨터의 프로그램이 다른 컴퓨터의 프로그램을 마치 자신의 프로그램인 것처럼 호출할 수 있게 해주며, NetBIOS는 로컬 네트워크에서 컴퓨터 간의 기본적인 통신 서비스를 제공한다.
Transport Layer (전송 계층)
데이터를 일정한 크기로 나누고, 전송 순서를 관리하며, 오류를 검사하는 계층이다. 대표적으로 TCP와 UDP 두 가지 프로토콜이 이 계층에서 동작한다.
TCP$_{Transmission \space Control \space Protocol}$
는 신뢰성 있는 데이터 전송을 보장한다. 데이터를 작은 단위(세그먼트)로 나누고, 각각에 번호를 부여하여 순서대로 전송한다. 수신측은 받은 데이터의 순서를 확인하고 손실된 데이터가 있다면 재전송을 요청한다. 또한 흐름제어와 혼잡제어를 통해 네트워크의 상황에 맞춰 전송 속도를 조절한다. 이메일, 파일 전송과 같이 데이터의 정확한 전달이 중요한 서비스에서 사용된다.
반면 UDP$_{User \space Datagram \space Protocol}$
는 단순히 데이터를 전송하는 것에 중점을 둔다. 순서 보장이나 오류 검사를 하지 않아 TCP보다 빠르지만 신뢰성은 낮다. 실시간 스트리밍이나 온라인 게임과 같이 약간의 데이터 손실이 있더라도 빠른 전송이 더 중요한 서비스에서 사용된다.
L4 스위치
L4 스위치는 TCP/UDP의 포트 정보를 분석해 특정 서비스(HTTP, FTP 등)의 트래픽을 여러 서버에 분산시키는 로드밸런싱 기능을 제공한다. 예를 들어 웹 서비스의 트래픽이 많을 때, 여러 웹 서버에 균등하게 부하를 분산시켜 서비스의 안정성을 높일 수 있다.
Network Layer (네트워크 계층)
데이터를 목적지까지 전달하기 위한 최적의 경로를 결정하는 계층이다. IP 주소를 기반으로 라우팅을 수행한다.
서로 다른 두 네트워크 간 데이터 전송을 용이하게 하는 것이 이 계층의 주요 역할이다. 만약 통신하는 두 장치가 동일한 네트워크에 있다면 네트워크 계층이 필요하지 않지만, 다른 네트워크에 있는 경우 네트워크 계층의 역할이 매우 중요해진다. 이 계층에서는 전송 계층에서 받은 세그먼트를 더 작은 단위인 패킷으로 분할하고, 목적지에서 다시 이 패킷들을 조립한다.
데이터가 출발지에서 목적지까지 가는 과정을 자세히 살펴보자. 먼저 IP$_{Internet \space Protocol}$ 주소를 사용해 데이터 패킷의 출발지와 목적지를 식별한다. 그 다음 라우팅 테이블을 참조해 패킷이 목적지까지 갈 수 있는 최적의 경로를 결정한다. 이때 네트워크의 상황(트래픽, 회선 상태 등)을 고려해 동적으로 경로를 변경할 수도 있다.
네트워크 계층에서 사용되는 주요 프로토콜은 아래와 같다.
IP$_{Internet \space Protocol}$
데이터 패킷의 주소 지정과 라우팅 담당ICMP$_{Internet \space Control \space Message \space Protocol}$
네트워크 상태와 오류 보고IGMP$_{Internet \space Group \space Management \space Protocol}$
멀티캐스트 그룹 관리IPsec
보안 통신을 위한 프로토콜 집합
라우터와 L3 스위치, 공유기
라우터는 서로 다른 네트워크를 연결하고 패킷을 적절한 경로로 전달하는 기본적인 장비다. L3 스위치는 라우터의 기능을 하드웨어로 구현한 것으로, 소프트웨어로 처리하는 일반 라우터보다 훨씬 빠른 속도로 패킷을 처리할 수 있다. 특히 대규모 네트워크에서 많이 사용되며, VLAN 간의 라우팅도 효율적으로 처리한다.
공유기는 가정이나 소규모 사무실에서 주로 사용되는 간단한 형태의 라우터다. 공유기는 NAT$_{Network \space Address \space Translation}$ 기능이 가장 큰 특징이다. 하나의 공인 IP 주소를 여러 개의 사설 IP 주소로 변환해 여러 기기가 하나의 인터넷 회선을 공유할 수 있게 해준다. 예를 들어 집에서 스마트폰, 노트북, TV 등 여러 기기가 동시에 인터넷을 사용할 수 있는 것이 바로 이 NAT 기능 덕분이다.
Data Link Layer (데이터링크 계층)
데이터링크 계층은 동일한 네트워크 내에서 인접한 노드 간의 통신을 담당하는 계층이다. 네트워크 계층이 서로 다른 네트워크 간의 통신을 담당한다면, 데이터링크 계층은 같은 네트워크 안에서의 통신을 관리한다.
이 계층에서는 네트워크 계층에서 받은 패킷을 프레임$_{frame}$이라는 더 작은 단위로 분할한다. 각 프레임은 MAC$_{Media \space Access \space Control}$ 주소를 기반으로 통신하며, 흐름 제어와 오류 검출 및 재전송을 담당한다. 특히 전송 계층이 네트워크 간 통신의 오류를 제어한다면, 데이터링크 계층은 같은 네트워크 내에서의 오류를 제어한다는 점이 특징이다.
아래는 데이터링크 계층의 주요 프로토콜이다.
Ethernet
가장 널리 사용되는 LAN 프로토콜PPP$_{Point-to-Point \space Protocol}$
두 통신 노드 간의 직접적인 연결을 위한 프로토콜HDLC$_{High-level \space Data \space Link \space Control}$
신뢰성 있는 점대점 프로토콜
브리지$_{bridge}$와 스위치
브리지는 네트워크 초기에 등장한 장비로, 두 개의 LAN 세그먼트를 연결하는 역할을 수행한다. 들어오는 프레임의 MAC 주소를 확인하고, 이를 기반으로 프레임을 전달할지 폐기할지를 결정해 네트워크 트래픽을 분리하고 관리하는 데 용이하다. 브리지는 MAC 주소 테이블을 유지하면서 각 세그먼트의 트래픽을 효율적으로 관리할 수 있었다.
이후 등장한 스위치는 브리지의 진화된 형태이다. 브리지는 포트가 2개로 제한이 있었지만, 스위치는 수십 개의 포트를 제공할 수 있게 되었다. 또한 기존 브리지가 소프트웨어로 처리하던 방식에서 하드웨어 기반 처리로 발전해 속도가 크게 향상되었으며, 여러 포트 간 동시 통신이 가능해졌다. 여기에 VLAN$_{Virtual \space LAN}$이나 포트 미러링과 같은 네트워크 관리 기능도 추가되었다.
NIC$_{Network \space Interface \space Card}$
NIC은 흔히 랜카드라고도 불리는 네트워크 인터페이스 카드로, 컴퓨터를 네트워크에 연결하기 위한 하드웨어 장치다. 데이터링크 계층에서 동작하며 각각의 NIC에는 고유한 MAC 주소가 할당되어 있다. 이 MAC 주소는 제조사에서 전 세계적으로 유일한 값으로 할당해 네트워크 상에서 장치를 식별하는 데 사용된다.
NIC의 주요 기능은 아래와 같다.
- 데이터를 전기 신호로 변환하여 네트워크로 전송
- 네트워크로부터 받은 전기 신호를 데이터로 변환
- MAC 주소를 기반으로 한 프레임의 송수신
- 충돌 감지 및 회피 (CSMA/CD)
- 네트워크 트래픽 제어
현대의 NIC은 대부분 이더넷(Ethernet) 프로토콜을 사용하며, 유선 또는 무선(Wi-Fi) 형태로 제공된다. 특히 무선 NIC의 경우 IEEE 802.11 표준을 따른다. 보안을 위한 암호화 기능도 포함하고 있다.
Physical Layer (물리 계층)
물리 계층은 실제로 데이터를 전기 신호로 변환하여 전송하는 가장 하위 계층이다. 네트워크의 모든 데이터는 최종적으로 1과 0으로 이루어진 비트 스트림으로 변환되어 전송되는데, 이 과정을 담당하는 것이 물리 계층이다.
이 계층은 데이터 전송을 위한 물리적 특성을 정의한다. 전송 매체(구리선, 광섬유 등)의 특성, 전압 레벨, 데이터 전송 속도, 통신 케이블의 규격 등을 다룬다. 특히 통신하는 두 장치가 동일한 신호 규칙을 따르도록 해 1과 0을 정확하게 구별할 수 있게 한다.
리피터와 허브
물리 계층의 대표적인 장비로는 리피터와 허브가 있다. 리피터는 네트워크에서 가장 기본적인 장비로 약해진 전기 신호를 증폭해 더 먼 거리까지 전달할 수 있게 해준다. 이는 마치 무전기 중계기와 같은 역할을 한다.
허브는 리피터의 발전된 형태로 여러 개의 포트를 가진 다중 포트 리피터라고 볼 수 있다. 한 포트로 들어온 신호를 증폭해 모든 포트로 전송하는 방식으로 동작한다. 이런 브로드캐스팅 방식은 네트워크 효율성 측면에서는 단점이 될 수 있지만, 구조가 단순해 신뢰성이 높고 가격이 저렴하다는 장점이 있다.
케이블과 모뎀
케이블은 데이터가 전송되는 물리적인 매체로, 크게 세 가지 종류가 있다.
- 트위스티드 페어 케이블$_{Twisted \space Pair \space Cable}$
- 구리선을 꼬아서 만든 가장 일반적인 네트워크 케이블
- UTP${Unshielded \space Twisted \space Pair}$와 STP${Shielded \space Twisted \space Pair}$로 구분
- CAT5, CAT5e, CAT6 등 여러 등급이 있으며, 등급에 따라 전송 속도와 거리가 다름
- 동축 케이블$_{Coaxial \space Cable}$
- 중심에 구리선이 있고 절연체와 보호막으로 둘러싸인 케이블
- 전송 거리가 길고 노이즈에 강함
- 주로 케이블 TV나 광대역 인터넷에 사용
- 광섬유 케이블$_{Fiber \space Optic \space Cable}$
- 빛을 이용해 데이터를 전송하는 케이블
- 가장 빠른 속도와 긴 전송 거리를 제공
- 외부 간섭에 매우 강하고 보안성이 뛰어남
모뎀$_{Modem}$
모뎀은 MOdulator-DEModulator의 약자로, 디지털 신호를 아날로그 신호로, 또는 그 반대로 변환하는 장치다.
- 컴퓨터의 디지털 신호를 전화선이나 케이블 TV 선로에서 사용할 수 있는 아날로그 신호로 변환
- 인터넷 서비스 제공자(ISP)로부터 받은 아날로그 신호를 컴퓨터가 이해할 수 있는 디지털 신호로 변환
- 신호의 변조와 복조를 통한 장거리 데이터 전송 지원
References
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/
'CSE > 네트워크 (network)' 카테고리의 다른 글
[Network] HTTP/0.9 (0) | 2025.02.22 |
---|---|
[Network] HTTP와 HTTPS (3) | 2025.02.04 |
TCP/IP 프로토콜 4판 - 연습문제 15장 (2) | 2024.01.12 |
TCP/IP 프로토콜 4판 - 연습문제 14장 (1) | 2024.01.11 |
TCP/IP 프로토콜 4판 - 연습문제 13장 (2) | 2024.01.10 |
컴퓨터 전공 관련, 프론트엔드 개발 지식들을 공유합니다. React, Javascript를 다룰 줄 알며 요즘에는 Typescript에도 관심이 생겨 공부하고 있습니다. 서로 소통하면서 프로젝트 하는 것을 즐기며 많은 대외활동으로 개발 능력과 소프트 스킬을 다듬어나가고 있습니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!