오늘은 정처기 공부할 때 ,무지성으로 외우기만 했던 OSI7계층을
각 층이 어떤 역할을 하는지 공부해보겠습니다.
네트워크란?
: 컴퓨터나 기타 기기들이 리소스를 공유하거나 데이터를 주고 받기 위해 유선 혹은 무선으로 연결된 통신 체계를 말한다.
기능들
- 애플리케이션 목적에 맞는 통신 방법 제공
- 신뢰할 수 있는 데이터 전송 방법 제공
- 네트워크 간의 최적의 통신 경로 결정
- 목적지로 데이터로 데이터 전송
- 노드 사이의 데이터 전송
⇒ 위 통신 기능이 제대로 동작하기 위해서는 참여자들 사이에서 약속된 통신 방법이 있어야 한다.
&이 모든 기능을 하나의 프로토콜로 구현할 수 있을까?
=> 그럴 수 없다.
- 그래서, 모듈화를 해야 한다.
- 기능별로 분리를 하자.
- 어떻게 모듈화를 하면 될까?
=> 네트워크가 제공하는 기능들을 살펴보니, 각 기능이 계층별로 동작하는것 같다는 구조로 보인다.
=> 계층구조의 탄생 ( OSI model 7 layer )
OSI 7계층이란?
: 범용적인 네트워크 구조

1. application layer (7층)
: 애플리케이션 목적에 맞는 통신 방법 제공
ex)
- HTTP : 어플끼리 통신을 하고싶다면
- FTP : 파일을 업로드하고 다운하고
- DNS : 도메인을 IP 주소로 바꾸고 싶다면
- SMTP : 이메일을 보내고 싶다면
⇒ 어떻게 데이터를 보낼것인가 , 이런거는 7층의 관심사가 아니라, 아래의 기능들을 사용하는 것이다.
2. presentation layer (6층)
: 애플리케이션 간의 통신에서 메시지 포맷 관리
- 인코딩 ↔ 디코딩
- 암호화 ↔ 복호화
- 압축 ↔ 압축 풀기
3. session layer
: 애플리케이션 간의 통신에서 세션을 관리
4. transport layer
- 애플리케이션 간의 통신 당담
- 목적지 애플리케이션으로 데이터 전송
- 안정적이고 신뢰할 수 있는 데이터 전송 보장 ( TCP )
- 필수 기능만 제공 ( UDP )
5. network layer
- 호스트 간의 통신 담당 (IP)
- 목적지 호스트 데이터 전송
- 네트워크 간의 최적의 경로 결정
⇒ 전체적인 경로를 담당하는것이지 데이터를 어떻게 전송할 것인가?는 네트워크 계층의 관심사가 아니다.
데이터를 전송하는것은 데이터 링크 계층이 수행을 하는것이다.
⇒ 바로 아래의 층의 기능을 사용하는 것이다.
6. data link layer
7. physical layer
: bits 단위로 데이터 전송
그림으로 나타내는 네트워크 계층을 통한 데이터 전송 모습

(1) 7층에서 1층으로 데이터가 내려오면서 포장이 된다.
(2) 1층까지 내려왔으면, 라우터로 보내고 이 포장지를 뜯어서 3층으로 보낸다.
(3) 이게 목적지에 도착할 수 있도록 IP 주소를 알고 1층으로 포장해서 보내고 , 우측의 1층으로 보낸다.
(4) 이게 7층까지 올라가 데이터로 전달되는 것이다.
예제를 통한 설명
Step 1
- 7층(어플리케이션)에서 발생한 정보를 어플리케이션 헤더에 담아 묶어서 6층(프레젠테이션)로 보낸다.
- 6층(프레센테이션)에서도 부가적인 정보르 새 헤더에 담아서 5층(세션)에 전달해 준다.
- 5층(세션)에서도 헤더에 새 정보를 담아서 4층(트랜스포트)에 전달해준다.
Step2
-4층(트랜스포트)은 목적지 전달을 위한 계층이므로, 목적지 전달에 필요한 내용을 헤더에 담고 3층(네트워크)에 전달해준다.
-3층(네트워크)는 이 어플리케이션을 담당하는 호스트 사이에서 담당하기에 , 목적지 IP 주소를 확인하고 어디로 보내줘야할 지
네트워크 레이어의 헤더에 담아서 2층(데이터 링크)로 보내준다.
- 2층(데이터 링크)에는 이 둘 사이에 데이터를 어떻게 보내줄 지 2층(데이터 링크)헤더에 담아주고 ,트레일러를 담아준다.
그리고, 1층(피지컬)으로 보내준다.
( 트레일러는 전송 후 , 데이터 전송에 문제가 있었는지 없었는지 확인하기 위함이다. )
- 1층(피지컬)에서 비트 단위로 라우터로 전송해준다.
Step3
- 라우터는 전달받은 비트 데이터르 변환 전 데이터로 만들고 2층(데이터 링크)로 올린다.
- 2층(데이터 링크)는 헤더와 트레일러를 확인하고, 문제가 없다면 헤더와 트레일러를 없애고 네트워크 계층으로 올려준다.
- 3층(네트워크)에서는 이제 목적지 주소를 확인해야하기 때문에, 다음 노드를 확인하고 고쳐줄 부분을 고쳐주고 2층(데이터 링크)로 내려준다.
- 이려면 데이터는 두 노드 사이에 통신을 담당하게 된다.
- 헤더와 트레일러를 확인하고 1층(피지컬)으로 보내준다.
- 1층(피지컬)은 또다시 비트 단위로 전송하고, 2층(데이터 링크)로 올려준다.
- 2층(데이터 링크)는 헤더와 트레일러를 확인하고, 문제가 없으면 떼어내고 3층으로 올려준다.
- 3층(네트워크)은 또다시 목적지를 확인하고, 네트워크 헤더를 수정할 부분을 수정해주고 또다시 2층으로 내린다.
- 그리고 똑같이 1층(피지컬)으로 내리는 작업을 반복적으로 수행한다.
- **이렇게 원하는 목적이에 도착했을 때 , 이제는 network 헤더를 떼고, 4층(트랜스포트)로 전달해준다.
- 이후에는 5층(세션),6층(프레젠테이션)도 똑같이 헤더를 떼어내고 상층으로 전달해준다.
- 마지막으로 7층 (어플리케이션)에서 처리 후 ,최종적으로 데이터가 도달하게 된다.

ncapsulation & decapsulation
: 위에서 헤더를 담고 뜯고 반복하는 것을 의미한다.
TCP / IP stack
: OSI 7계층과 비슷한 구조로 몇 개층을 하나로 본 형태이다.
- 어플리케이션 + 프레센테이션 + 세션 ⇒ 어플리케이션 층으로 통일
- 트랜스포트 ⇒ 트랜트포트
- 네트워크 ⇒ 네트워크
- 데이터링크 + 피지컬 ⇒ 링크 층으로 통일
![업로드중..]()
마무리
- 단순 암기로만 외웠었던 내용이였는데, 네트워크상에서 각 층별로 어떻게 이용되는지와 , 어떤식으로 데이터가 움직이는지 알아볼 수 있었습니다.