OSI 7계층 참조 모델에 대한 이해
네트워크 분야에서 기초가 되는 OSI 참조 모델과 그와 관련된 각 용어들에 대해서 알아보면서 네트워크에 대한 기초에 대해 공부를 해볼까 합니다.
OSI 참조 모델이란?
OSI 참조 모델은 국제표준화기구(ISO)에서 네트워크에 대한 표준을 위해 만든 것입니다. 컴퓨터 간의 통신 단계를 7개의 계층으로 분류하고, 각 계층별 기능을 정의해 놓은 것입니다.
OSI 참조 모델의 구성
OSI 참조 모델은 7계층으로 이루어 져있습니다.
각 계층에 대해서 설명하기 위해서 알아야할 네트워크 기초 용어들을 짚고 넘어가려고 합니다.
- 프로토콜(protocol) : 각 통신장비들이 사용하는 통신방식, 즉 통신규약을 의미
- 클라이언트 : 서비스를 요청하는 장비
- 서버 : 서비스를 제공하는 장비
- 인터페이스 : 표준이 있는 접속점, 접속규격
물리계층
물리 계층(physical layer)은 인접한 두 장비 간에 통신 신호를 전송하는 역할을 합니다. 이를 위해 기계적, 기능적, 전기적 사양을 정의합니다.
예시를 들어서 LAN(근거리 통신망) 케이블과 커넥터(connector)를 살펴보면, 랜 장비들을 연결하는 커넥터를 RJ45 커넥터라고 하며 UTP(Unshielded Twisterd Pair)라는 8가닥의 구리선을 이용하여 장비들을 연결합니다.
PC, 통신용 스위치, 커넥터 및 케이블을 만드는 제조사는 다르지만 여기서 말했던 RJ45커넥터의 커넥터 크기, 모양 등은 동일해야 하도록 표준을 맞추고 있습니다.
데이터링크 계층
데이터 링크 계층은 라우터라는 장비로 구분된 구간에서 프레임이라는 데이터의 묶음을 전달하는 역할을 합니다.
데이터 링크 계층 프로토콜들은 용도에 따른 프레임의 종류를 정의하고, 프레임 내 각 필드(field)의 길이, 의미 등을 지정합니다. 그리고 링크 게층에서 사용하는 주소를 정의하고, 에러 발생 확인 및 에러 복구 절차 등도 지정합니다.
데이터 링크 계층의 프로토콜로는 LAN(근거리 통신망)에서 사용되는 이더넷, WAN(장거리 통신망)에서 사용하는 PPP, 프레임 릴레이(frame relay), HDLC(High-Level Data Link Control) 등이 있습니다.
네트워크 계층
네트워크 계층은 통신의 최종 당사자들인 종단장비 간에 패킷이라는 데이터 묶음을 전달하는 역할을 합니다.
(패킷 : 패킷 방식 컴퓨터 네트워크로 수행하는 데이터의 서식 단위)
네트워크 계층에서는 각 장비를 구분하기 위한 주소를 정의해서 사용합니다. 이 주소는 IP라는 네트워크 계층 프로토콜로 결정하게 되는데 이렇게 정의한 주소를 IP주소라고 부릅니다.
네트워크 계층은 스위치, 라우터 등을 지나 종단장비 간에 동작합니다. 웹 서버에서 출발한 IP 패킷이 도중에 변경 없이 PC까지 도달합니다.
대표적인 네트워크 계층의 프로토콜로는 IP, ICMP(Internet Control Message Protocol), IPv6, ICMPv6 등이 있습니다.
전송 계층
전송 계층은 종단장비에서 동작 중인 응용 계층 간에 세그먼트(segment)라는 데이터 묶음을 전달하는 역할을 합니다.
(세그먼트 : 전송계층에서 데이터 교환 단위)
PC에서 웹 서버를 접속할 때 HTTP(Hyper Text Transfet Protocol)라는 응용 계층 프로토콜이 동작합니다.
네트워크 계층 프로토콜인 IP가 PC에서 웹 서버까지 패킷을 전달하면, IP 패킷 내부에 있는 전송 계층 프로토콜인 TCP(Transmission Control Protocol)가 내부의 데이터를 HTTP라는 응용 계층 프로토콜에 전달합니다.
대표적인 전송 계층의 프로토콜로는 TCP와 UDP(User Datagram Protocol) 가 있습니다.
[TCP의 특징]
- 연결형 서비스로 가상 회선 방식을 제공
- 3-way handshaking 과정을 통해 연결을 설정, 4-way handshaking을 통해 해제.
- 흐름 제어 및 혼잡 제어
- 높은 신뢰성을 보장
- UDP보다 속도가 느리다.
- 전이중(Full-Duplex), 점대점(Point to Point) 방식.
[UDP의 특징]
- 비연결형 서비스로 데이터그램 방식을 제공
- 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
- UDP헤더의 CheckSum 필드를 통해 최소한의 오류만 검출
- 신뢰성이 낮다
- TCP보다 속도가 빠르다
세션 계층
세션 계층은 종단장비 간 세션(통신)의 시작, 종료 및 관리 절차 등을 정의.
대표적인 세션 계층의 프로토콜로 NetBIOS, TCP 세션 관리절차 등이 있습니다.
세션 계층 이상에서 송수신하는 데이터의 단위를 메시지(message)라고 합니다.
표현 계층
표현 계층은 상위 계층 프로토콜인 응용 계층에 대해 데이터 표현 방식의 변환, 암호화 등의 서비스를 제공합니다.
굳이 네트워크 뿐만 아니라 다른 분야의 컴퓨팅에도 많이 사용하고 있는 ASCII 가 대표적인 예시라고 할 수 있습니다.
응용 계층
응용 계층은 응용 프로그램과 통신 프로그램 간의 인터페이스를 제공합니다.
응용 계층의 프로토콜로는 HTTP, FTP, DNS, DHCP 등이 있습니다.
인캡슐레이션과 디캡슐레이션
각 프로토콜들의 동작에 필요한 정보를 기록한 것을 프로토콜 헤더(Header)라고 합니다.
하위 계층 프로토콜은 상위 계층 프로토콜부터 전달받은 헤더와 데이터를 모두 데이터로 간주하고, 여기에 자신의 헤더를 붙여 다시 하위 계층으로 내려보냅니다.
이처럼 상위 계층 정보에 자신의 헤더를 부착하는 것을 인캡슐레이션(encapsulation)이라고 합니다.
다른 계층과 달리 데이터 링크 계층에서는 에러를 확인하기 위해서 프레임의 꼬리에 필드를 추가하며, 이를 트레일러(trailer)라고 합니다.
맨 위에 올렸던 그래프를 다시 올려보겠습니다.
물리 계층을 제외한 각 계층에서 정보의 맨 앞에 H 라고 써있는 것들은 헤더를 나타냅니다. 그리고 데이터 링크 계층에서는 맨 끝에 트레일러를 확인 할 수 있습니다.
상위 계층에서는 자신의 헤더를 확인하고, 이상이 없으면 자신의 헤더를 제거하고 다시 상위 계층으로 데이터를 올려보냅니다. 이를 디캡슐레이션(decapsulation)이라고 합니다.
출처 : 입문과 실전이 한 권으로 끝 KING-of-NET-WORKING (피터 전 저)
Written by Sheart
'Study☆ > Computer Science' 카테고리의 다른 글
[네트워크] TCP/IP 에 대한 이해 (0) | 2021.01.09 |
---|---|
[네트워크] 패킷 트레이서 무료로 설치하기 (0) | 2021.01.02 |
프로그래머스 - 여행경로 (Level 3) (0) | 2020.12.26 |
프로그래머스 - 네트워크(level 3) (0) | 2020.12.18 |
[python] 파이썬으로 보는 BFS 와 DFS (2) | 2020.12.17 |