목차
1. OSI 7계층이란?
1.1 OSI 7계층을 나눈 이유
2. OSI 7 계층 단계
계층 1: 물리 계층
계층 2: 데이터 링크 계층
계층 3: 네트워크 계층
계층 4: 전송 계층
계층 5: 세션 계층
계층 6: 표현 계층
계층 7: 응용 계층
1. OSI 7 계층이란?
OSI(Open Systems Interconnection reference) 모델이란 컴퓨터 네트워크 통신에 대한 국제 표준
OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.
즉, 해당 표준만 잘 지키면 어떤 기기든, 심지어 어떤 형태의 통신 선로를 사용하든 컴퓨터 간 통신을 할 수 있다.
1.1 OSI 7 계층을 나눈 이유
- 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문이다.
7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다.
예시를 보자

출처_Tistory
2. OSI 7 계층 단계

계층 1: 물리 계층
Physical Layer
- 물리 계층에서는 하드웨어를 다룹니다. 예를 들어 보낼 데이터를 어떤 파형의 전류로 보낼지 등을 정의합니다.
- 이 계층에서 사용되는 통신 단위는 비트이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On,Off 상태를 의미한다.
- 이 계층에서는 단지 데이터를 전달만 할 뿐 전송하려는(혹은 받으려는) 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경쓰지 않음
단지 데이터를 전기적인 신호로 변환해서 주고받는 기능만 한다.
- 대표적 장비는 통신 케이블, 리피터, 허브등이 있다.

계층 2: 데이터 링크 계층
DataLink Layer
- 로컬 지역 네트워크(LAN)에서 통신을 가능하게 합니다.
- 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할을 한다.
따라서 통신에서의 오류도 찾고, 재전송도 하는 기능을 가지고 있다.
- 대표적인 장비는 브리지, 스위치 등이 있다.

[요약]
- 각 단말기는 고유한 주소를 갖는다.
- 단말기는 데이터를 프레임(frame)이라는 단위로 주고 받는다.
Frame(프레임)

- 헤더(header)와 페이로드(payload)를 합친 결과물을 프레임이라고 한다.
-헤더 : 송수신자의 정보
-페이로드 : 단말기가 보내고자 하는 데이터
[많은 컴퓨터 연결하기 위한 문제]
- 스위치로 직접 이어진 곳에만 연결할 수 있다. 그럼 결과적으로, 스위치 하나가 연결 할 수 있는 단말기 수로 제한된다.
- 단말기들 각각의 주소를 모두 고유하게 만들기 어렵다.
[해결]
- 해결책 중 하나는 서로 다른 네트워크 기기 간에 연결하는 것이다. 다시 말해 LAN과 LAN을 연결
*LAN : 가까운 지역을 묶는 대표적인 컴퓨터 네트워크

LAN 1의 단말기 A에서 LAN 4의 단말기 C에 데이터를 보내고 싶으면, 일단 단말기 A에서 LAN 1로 데이터를 보낸다. LAN 1 에서는 가운데에 있는 네트워크 기기로 데이터를 보내고, 가운데에 있는 네트워크 기기는 LAN 4의 네트워크 기기로 데이터를 보낸다. 그리고 최종적으로 LAN 4의 네트워크 기기는 단말기 C에 데이터를 보낸다.
- 이렇게 서로 다른 LAN이 맞물려 연결된 것을 광역 통신망 혹은 WAN(Wide Area Network)
- LAN안에 있는 단말기들의 주소는 각 LAN 안에서는 고유하다. 하지만 서로 다른 LAN 안에 있는 각 단말기들의 주소를 모두 고유하게 만들기는 어렵다. 그래서 서로 다른 LAN이 모두 연결된 WAN에서는 또 다른 규약이 필요
이를 설명하는게 OSI 모델의 계층 3이다.
계층 3: 네트워크 계층
Network Layer
- 광역 통신망(WAN)에서 통신을 가능하게 한다.
- 이 계층에서 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)이다.
*여기에 사용되는 프로토콜의 종류도 다양하고, 라우팅하는 기술도 다양하다.예시를 들어보면,
계층 2는 우편이고, 계층 3은 도시이다.
00구 00번 이렇게 집주소가 있다면,
번지 값이 같아도 구역 이름이 다르면 고유한 주소 값이 보장된다.
추가적으로, 해당 주소를 찾을때 한 사람이 다 찾는게 아니라
00구로 넘겨지고 거기서 00번을 찾게 된다.
- WAN에서도 직접 데이터를 건네는 것이 아니라, 계층적적으로 데이터를 건네주는 방식으로 작동
- 어떤 데이터가 단말기에서 스위치로 갔는데 그 데이터를 스위치가 직접 건네줄 수 없는 곳에 있으면, 이를 취급할 수 있는 곳으로 데이터를 보내야 한다. 이러한 일을 담당하는 네트워크 기기를 라우터(router)라고 한다.

- 라우터 : 서로 다른 LAN 사이에 컴퓨터 통신을 할 수 있게 하는 장비
- 이 계층에서 접하는 것은 인터넷 프로토콜(Internet Protocol) 혹은 IP
인터넷 프로토콜에서는 주소 형식이 8비트 숫자 4개로 구성되어 있다. 우리가 흔히 IP주소라고 칭하는 것이 바로 이것이다.
- 단말기 A에서 데이터 X를 다른 단말기 B로 보내려고 하면, 데이터 X는 OSI 모델 계층 3의 인터넷 프로토콜에 의해 IP 패킷 형태로 포장된다. 같은 LAN이면 스위치를 거쳐 바로 단말기로 간다. 하지만 다른 LAN에 있을 때, 데이터 X는 LAN에 연결된 라우터를 통해 LAN 바깥으로 나가 다른 LAN으로 들어간다.
- 라우터는 통신망 공급 업체에 있는 대형 장비인 경우가 많지만, 우리가 사용하는 인터넷 공유기도 일종의 라우터다.

계층 4: 전송 계층
Transport Layer
- 이 계층에서는 상대방에게 데이터가 반드시 도착하게 한다. 계층 2에서는 상대방에게 데이터가 변조 없이 가게는 하지만, 반드시 가게 하는 것은 아니다. 이 계층에서는 상대방에게 데이터가 반드시 가게 해 준다.
- 통신을 활성화하기 위한 계층이다. 보통 TCP 프로토콜을 이용하며, 포트를 열어서 응용프로그램들이 전송을 할 수 있게 한다.
만약 데이터가 왔다면 4 계층에서 해당 데이터를 하나로 합쳐서 5 계층에 던져 준다.
- 전송 계층은 양 끝단의 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있도록 해주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.
- 전송 계층은 특정 연결의 유효성을 제어하고, 일부 프로토콜은 상태 개념이 있고, 연결 기반(connection oriented)이다
-> 이는 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 뜻한다.
- 패킷 생성 및 전송
*TCP/UDP 프로토콜은 추후 정리
계층 5: 세션계층
Session Layer
- 데이터가 통신하기 위한 논리적인 연결을 말한다.
- 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능이 있다.
- 세션 계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
- 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.
- 통신하는 사용자들을 동기화하고, 오류 복구 명령들을 일괄적으로 다룬다.
- 통신을 하기 위한 세션을 확립/유지/중단(OS가 해줌)
계층 6: 표현 계층
Presentation Layer
- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화 한다.
- 표현 계층은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다.
- MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어짐.
- 해당 데이터가 TEXT인지, 그림인지, GIF인지 JPG인지의 구분 등이 표현 계층의 몫
- 사용자의 명령어를 완성 및 결과 표현, 포장/압축/암호화
계층 7: 응용 계층
Application Layer
- 최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet등과 같은 프로토콜이 있다.
- 응용 계층은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
- 응용 서비스의 예로, 가상 터미널(예로 텔넷) "Job transfer and Manipulation protocol" (JTM, 표준 ISO/IEC 8832) 등이 있다.
- 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분
[계층 5 ~ 7]
- 응용 프로그램이나 운영체제 안 모듈이 다른 컴퓨터의 응용 프로그램이나 운영체제 모듈과 통신을 하는 동안 논리적 연결 단위나 기능들은 계층 5~7에서 다룬다.
예로 동영상 스트리밍의 통신 규약(MPEG), 통신 암호화 규약(SSL), 웹 브라우저와 웹 서버 간 통신 규약(HTTP) 등을 들 수 있다.
- 우리가 게임 프로그램을 만드는 것도 결국 이 계층 5~7중 어딘가를 정의하는 것이다.
참고_게임 서버 프로그래밍 책