각 계층에서 잘 알려진 프로토콜이 무엇이 있는지 알고 넘어가기
OSI 7 계층이란?
네트워크 통신이 일어나는 과정을 7단계로 나누어 놓은 것
왜 만든거야 🙄 ?
통신 과정을 표준화해서 모든 네트워크 장치 간에 통신을 허용하도록 하기 위해서이다.
OSI 계층 이 나오기 전, 독점 네트워킹 모델을 개발했다. 따라서 같은 공급업체가 제조한 기기 간에만 통신을 허용했다.😱
이러한 장벽을 허물기 위해, 같은 회사의 제품이어야하는 조건에 구애받지 않는 네트워킹 모델을 만들어서 같이 사용하기로 약속했다.
그래서 OSI, TCP/IP 모델이 나왔다.
왜 이렇게 몇 개의 레이어로 분리했을까?
계층의 모듈화가 빠른 파악을 돕는다.
계층을 분리해서 독립적인 역할을 하도록 했다. 역할의 분리로 인해 문제가 발생하면, 어떤 계층에서 문제가 생겼는지 쉽게 파악할 수 있게 된다. (마치 Spring Boot에서 controller, dao, service 나누어 MVC 구조를 만든 것과 같은 느낌이네요!)
데이터의 흐름이 한 눈에 보인다.
다루기 쉬워진다.
잠시만 보고 넘어가기
이렇게 직접 선으로 연결되어 있다고 해봅시다.
000011101011 이런 데이터를 전기 신호로 변환해서 당연히 전달할 수 있겟죠?
그렇다면, 이렇게 사람이 많아졌고 모두가 데이터를 주고 받고 싶다면? 위와 같이 엄청난 전선 연결이 필요합니다.
그래서 이런 식으로 하나의 선에 모든 사람이 연결이 되어 있는 형식으로 묶어요!
이번엔 이렇게 먼 거리에 있는 두 네트워크를 묶어주려고 합니다.
이렇게 라우터를 이용해서 묶어주게 됩니다. 결과적으로 계층 구조를 갖게 되네요.
대분류
하위층 (1 ~ 4L)
정보를 전달하는 기능 (SW + HW 적으로 구현)
통신기기와 네트워크 간의 통신 경로를 설정하거나 경로의 유지/해제 규정
상위층 (5 ~ 7L)
정보를 통신하는 기능 (SW 적으로 구현)
통신 경로를 이용해 정보를 교환하는 절차 규정
'내'가 '네이버' 서버에 데이터를 보내보겠습니다.
Application Layer
웹 브라우저가 해당 데이터를 애플리케이션 계층으로 보냅니다.
Application Layer는 사용자의 데이터와 직접 상호 작용하는 유일한 계층
클라이언트의 요청을 다음 계층에 전달하는 역할
🏁 대표적인 프로토콜?
HTTP
SMTP (이메일 통신을 가능하게 하는 프로토콜)
FTP (C-S 사이에 파일을 전송하기 위한 프로토콜)
DNS
Presentation Layer
- 데이터 표준화
다양한 시스템들은 다른 방법으로 데이터값(ex. 16, 24, 36비트 등)을 표현하는데, 이때 송신측과 수신측 간에 동일한 문법으로 맞추어주는 역할 -> 그래야 대화를 할 수 있으니까!
- 암호화
암호화된 연결로 통신하는 경우, 인코딩/디코딩하는 역할
- 압축
전송할 데이터 양을 최소화하여 통신 속도와 효율 높임
🏁 대표적인 프로토콜?
SSL
TLS
Session Layer
종단 호스트 프로세스 간에 세션을 생성, 유지, 종료하는데 필요한 여러 기능을 제공
통신 중 연결이 지속되도록 시켜주는 역할하는 계층
동기화를 제공함
ex) 100MB의 파일이 전송되는 경우 세션 계층이 5MB마다 체크포인트를 설정했다고 하자.
52MB가 전송된 후 연결이 끊어 지거나 충돌이 발생하면, 마지막 체크 포인트에서 세션을 재개할 수 있어
50MB의 데이터만 더 전송하면 됨
Transport Layer
두 기기 간의 종단 간 통신에서 흐름제어, 혼잡제어, 오류제어/ 정보를 분할하고 합치는 과정을 담당
전달받은 데이터를 세그먼트라는 조각으로 분할함
TCP/UDP 와 같은 전송 방식을 결정함
🏁 대표적인 프로토콜?
⭐️ TCP - 신뢰성/ 연결지향성
⭐️ UDP - 비신뢰성 / 비연결지향성
Network Layer
여기에는 상위 계층에서 정했던, 어떤 프로토콜을 사용하는지, 어떤 포트로 전달을 해야 하는지에 대한 정보가 담겨 있습니다. (TCP/ UDP)
두 개의 상이한 네트워크 간 데이터 전송을 촉진하는 역할을 담당 (라우터)
=> 즉, 동일한 네트워크에 있는 기기가 통신하려면 네트워크 계층을 필요로 하지 않음
네트워크 계층은 데이터가 도달할 수 있는 최상의 물리적인 경로를 찾는 라우팅 기능을 제공
=> 패킷의 이동 경로 결정
IP 주소 정의
🏁 대표적인 프로토콜?
IPSec
DataLink Layer
해당 데이터는 올바른 목적지인 네이버 서버로 도착해야합니다.
따라서, 상위 계층에서 목적지 IP 주소, 보내는 측의 IP주소 등을 헤더에 넣어 보냅니다.
동일한 네트워크 안에 있는 수신측과 송신측의 전송을 담당하는 계층 (스위치)
전달받은 패킷을 더 작은 조각으로 나누어 프레임으로 만들어 하위 계층으로 전달함
MAC 주소 지정, 프레임의 순차 전송, 흐름제어 기능
Physical Layer
하나의 프레임이라는 걸 표시해주기 위해 앞 뒤로 값을 더해 전달받은 상태입니다.
이제 이렇게 필요한 정보들로 감쌓여진 데이터를 컴퓨터가 알아들을 수 있는 0과 1로 이루어진 데이터로 변환하여 전달합니다.
그래서 010111...1100 이런 데이터를 전기 신호로 변환해서 보내게 됩니다.
물리적 장치를 가지고 0과 1로 구성된 비트 데이터를 전기 신호로 전송하는 계층
그림 한장으로 다시보기
OSI 7 계층과 TCP/IP
TCP/IP는 4계층이고 두 모델 모두 계층형입니다. 현재 TCP/IP 모델을 실질적 통신에서 사용하고 있습니다.
알아야할 내용
- IP 주소
- MAC 주소
출처
https://jhnyang.tistory.com/194
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/
https://goodgid.github.io/OSI-7-Layer/
https://www.youtube.com/watch?v=1pfTxp25MA8