/ #정보처리기사#네트워크

OSI 7계층(ISO Standard 7498)

OSI 7계층

데이터를 주고 받는 과정에는 많은 단계가 있습니다. 국제표준화기구(ISO)에서는 이를 역할에 따라 7개의 계층으로 나누었습니다. 이것을 OSI 7계층(Open Systems Interconnection 7 Layer)이라고 합니다.

img01

각 계층은 독립적으로 작용하며 수많은 프로토콜(Protocol)이 존재하는데 프로토콜이란 데이터를 주고 받기위한 일종의 약속을 말합니다. 프로토콜에 의해 하위 계층으로 갈수록 헤더가 붙으면서 데이터의 크기는 커집니다.

OSI 모델 프로토콜
1층: 물리 계층 1000BASE-T, RS-232, RS-485
2층: 데이터 링크 계층 이더넷(Ethernet), PPP, UART
3층: 네트워크 계층 IP, ICMP
4층: 전송 계층 TCP, UDP
5층: 세션 계층 SSH, TLS, RPC
6층: 표현 계층 ASCII, MPEG, JPEG
7층: 응용 계층 HTTP, FTP, Telnet, DHCP

물리 계층 (Physical Layer)

물리 계층의 데이터 단위는 비트(bit)이며, 네트워크 케이블과 신호에 관한 규칙을 다루고 있는 계층입니다. 통신 케이블의 종류와 신호의 규격 및 무선통신 주파수 설정, 커넥터 형태 등을 정합니다.

물리 계층과 관련된 장비로는 동축 케이블의 아날로그 신호를 디지털 데이터로 변환하는 모뎀(Modem), 다수의 컴퓨터를 연결하여 하나의 네트워크로 보내는 허브(Hub), 디지털 신호를 증폭해주는 리피터(Repeater) 등이 있습니다.

데이터 링크 계층의 데이터 단위는 프레임(frame)이며, 물리적 매체를 통해 데이터를 전달하는 계층입니다. 네트워크 계층에 데이터를 전달하고 물리계층에서 발생하는 오류를 탐지하고 수정하는 기능을 담당합니다. 또한 MAC주소(Media Access Control Address)라는 물리적 주소를 사용하여 각 기기들의 구분을 가능하게 합니다.

이 계층과 관련된 프로토콜에는 HDLC, PPP, LLC 등이 있으며, 관련된 장비로는 데이터를 MAC주소를 기반으로 빠르게 전달하는 스위치(Switch), 2개의 랜을 연결하는 브릿지(Bridge) 등이 있습니다.

네트워크 계층 (Network Layer)

네트워크 계층의 데이터 단위는 패킷(packet)이며, 네트워크를 논리적으로 구분하는 계층입니다. 인터넷에서는 IP주소(Internet Protocol Address)라는 논리적 주소를 사용합니다. 이 계층에서는 전송 계층에서 요구하는 서비스 품질(Qos)를 위한 수단을 제공합니다. 또한 라우팅 프로토콜을 통해 데이터를 전송하는 최적의 경로를 찾아냅니다.

관련된 프로토콜에는 IP, ARP, RARP, ICMP, IGMP 등이 있으며, 관련된 장비로는 랜을 연결하는 라우터(Router)가 있습니다.

전송 계층 (Transport Layer)

전송 계층은 서비스를 구분하고 사용자 사이의 신뢰성 있는 데이터 전달을 담당하는 계층입니다.

이 계층의 프로토콜에는 신뢰성있는 데이터 전송이 목적인 TCP(Transmission Control Protocol)와 빠른 데이터 전송이 목적인 UDP(User Datagram Protocol)가 있습니다.

TCP는 세그먼트(Segment)라는 데이터 단위를 사용하며 UDP는 데이터그램(Datagram)이라는 데이터 단위를 사용합니다.

TCP는 세그먼트를 작은 패킷으로 나눠 여러 경로를 통해 데이터를 전송하고 목적지에서 순서대로 패킷을 조립하여 데이터를 전달합니다. 반면 데이터그램은 순서에 상관없이 데이터를 전달하기때문에 신뢰성은 없습니다.

세션 계층 (Session Layer)

세션 계층은 두 컴퓨터 사이에 연결을 형성하고 유지 및 종료하는 기능을 담당하는 계층입니다. 일종의 대화통로라고 보면 됩니다. 데이터의 송수신 타이밍과 방법은 이 계층에서 규정됩니다.

세션 계층의 프로토콜에는 SSH, TLS, RPC 등이 있으며, 데이터 전송 보안과 관련있습니다.

표현 계층 (Presentation Layer)

표현 계층은 전송되는 정보의 구문(Syntax) 및 의미(Semantics)에 관여하는 계층으로, 인코딩(Encoding), 데이터 압축(Compression), 암호화(Cryptography) 등 주요한 동작을 수행합니다. 파일의 확장자(txt, jpeg, mp4, html 등)는 이 계층과 관련된 프로토콜입니다.

응용 계층 (Application Layer)

응용 계층은 응용 서비스를 수행하고 사용자 인터페이스를 제공하는 계층입니다. 대표적인 프로토콜로는 html 문서 전송 프로토콜인 HTTP(HyperText Transfer Protocol), 파일 전송 프로토콜인 FTP(File Transfer Protocol), 메일 전송 프로토콜인 SMTP(Simple Mail Transfer Protocol) 등이 있습니다.

TCP/IP

인터넷에서 데이터를 주고 받을때 대부분 전송 계층에 속하는 TCP(Transmission Control Protocol)​와 네트워크 계층에 속하는 IP(Internet Protocol)를 많이 사용하는데 이를 묶어 TCP/IP(Transmission Control Protocol/Internet Protocol)라고 합니다. 1960년대 미 국방성에서 개발한 통신 프로토콜이며, 현재는 대부분의 컴퓨터가 기본으로 제공하는 인터넷 표준 프로토콜입니다. TCP/IP는 데이터 전송 과정을 4계층으로 나누며, OSI 모델과 다르게 각 계층이 서로 종속적입니다.

img02

네트워크 인터페이스(Network Interface) 계층

네트워크 인터페이스 계층은 운영체제의 네트워크 카드와 디바이스 드라이버 등과 같이 하드웨어적인 요소와 관련된 모든 것을 지원하는 계층입니다. 상위 계층(IP)에서 패킷이 도착하면 헤더에 프리앰블(Preamble)과 CRC(Cyclic Redundancy Check)를 추가합니다. 송신 측 단말기는 인터넷 계층으로부터 전달받은 패킷에 물리적 주소(MAC) 정보를 가지는 헤더를 추가하여 프레임을 만들어 전달합니다.

관련 프로토콜에는 이더넷(Ethernet), 802.11x, MAC/LLC, PPP 등이 있습니다.

인터넷(Internet) 계층

인터넷 계층은 패킷의 인터넷 주소를 결정하고 경로를 배정하는 역할을 합니다. 관련된 프로토콜에는 IP(Internet Protocol), IP를 MAC으로 변환하는 ARP(Address Resolution Protocol), IP 패킷을 전달하는 동안 발생한 오류를 보고하는 ICMP(Internet Control Message Protocol) 등이 있습니다.

인터넷은 INTERconnected NETwork에서 만들어진 합성어로, TCP/IP를 통해 연결된 모든 네트워크의 집합체입니다.

IP 주소에는 32비트 체계인 IPv4와 128비트 체계인 IPv6가 있습니다.

IPv4는 최대 65,532byte로 이루어져 있으며, 5개의 클래스로 나눠집니다. 유니캐스트, 브로드캐스트, 멀티캐스트를 지원합니다.

IPv6는 IPv4의 주소 부족 문제를 해결하기 위해 만들어졌으며, 유니캐스트, 멀티캐스트, 애니캐스트를 지원합니다.

전송(Transport) 계층

전송 계층은 네트워크 양단의 호스트 사이의 신뢰성 있는 전송 기능을 제공합니다. 시스템의 논리 주소와 포트를 가지며, TCPUDP가 사용됩니다.

TCP의 경우 3 Way-Handshake라는 방식으로 통신합니다. 장치간에 연결이 잘 되었는를 3번의 과정을 통해 확인하여 데이터 전송의 신뢰성을 확보합니다.

img03

SYNsynchronize sequence numbers의 약자이고 ACKacknowledgements의 약자입니다. 상태에 대한 설명은 아래 테이블을 참조하세요.

상태 설명
CLOSED 닫힌 상태
LISTEN 요청 대기 상태
SYN-SENT SYN 요청 상태
SYN-RECEIVED SYN 요청을 받은 상태
ESTABLISHED 연결 확인 상태

(1) 클라이언트가 서버에게 SYN을 요청하고 SYN-SENT 상태가 됩니다.

(2) SYN을 요청받은 서버는 SYN-RECEIVED 상태가 되고, SYN과 함께 ACK를 클라이언트에게 읍답합니다.

(3) SYN+ACK를 응답받은 클라이언트는 ACK를 서버에 요청하고 클라이언트와 서버는 ESTABLISHED 상태가 됩니다.

쉽게 말해서 클라이언트가 “내말 들려?” 라고 요청을 보내면 서버가 “응 들려, 넌 내말 들려?” 라고 응답하고, 클라이언트가 “응, 나도 들려” 라고 대답하면서 대화가 시작되는겁니다.

응용(Application) 계층

OSI 참조 모델의 세션, 표현, 응용 계층을 합친 계층입니다.