본문 바로가기

프론트엔드 👩🏻‍💻

OSI 7계층 정리 ✨

참고자료: 참고자료

 

⭐️ OSI 7계층

- 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것

 

📚 7계층으로 나눈 이유는?

- 단계별로 한눈에 파악하기 위해

💡 ) 만약, PC방에서 게임이 끊겼다면, 이 문제를 해결해야 한다.

🌻)  모든 PC에서 문제가 있다면, 라우터의 문제(3계층 네트워크)이나 광랜을 제공하는 회사의 회선문제(1계층 물리계층)

- 또는 한 PC만 문제가 있다면, 소프트웨어 문제 (7계층 어플리케이션 계층)

- 소프트웨어 문제가 없고, 스위치에 문제가 있으면 (2계층 데이터링크계층) 있다고 판단해 다른 계층에 있는 장비나 소프트웨어를 건들이지 않을 수 있다.

 

 

📚 OSI 7계층 단계

 

📚 1계층 물리계층 - 2계층 데이터링크 계층 - 3계층 네트워크 계층 - 4계층 전송계층 - 5계층 세션 계층 - 6계층 표현 계층 - 7계층 응용 계층

 


 

📚  1계층 물리계층(Physical Layer)

- 주로 전기적, 기계적, 기능적 특성을 이용해 통신 케이블로 데이터를 전송

- 통신 단위는 비트, 0과 1로 이루어짐, 전기적으로 On, Off 상태

- 단지 데이터를 전달할 뿐 데이터가 무엇인지, 어떤 에러가 있는지 전혀 신경 쓰지 않음

-단지 데이터 전기적 신호로 변환해서 주고 받는 기능 뿐

- 💡 ) 통신케이블, 리피터, 허브

 

 


 

 

📚 2계층 데이터링크 계층

- 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리, 정보 전달을 수행

- 오류도 찾고 재전송도 하는 기능

- 맥 주소를 가지고 통신

- 단위는 프레임, 브리지, 스위치 -> 맥 주소를 가지고 물리계층에서 받은 정보를 전달

- 포인트 투 포인트 간 신뢰성 있는 전송을 보장하기 위한 계층

- 오류제어흐름제어가 필요

- 네트워크 위의 개체들 간 데이터를 전달, 물리계층에서 발생할 수 있는 오류를 찾아내고, 수정하는데 기능적, 절차적 수단 제공

- 주소 값은 물리적으로 할당, 이때 네트워크 카드가 만들어질때부터 맥 주소가 정해져 있음

- 주소 체계는 계층이 없는 단일 구조 💡) 이더넷

- 패킷 스위칭 네트워크나 LLC, ADCCP 같은 포인트 투 포인트 프로토콜이나 패킹 스위칭 네트워크나 LLC, ALOHA 근거리 네트워크용 프로토콜

- 네트워크 브릿지나 스위치 등이 이 계층에서 동작하며, 직접 이어진 곳에만 연결

 

 

✅ 여기서 맥주소란  ❓

- 네트워크 세그먼트의 데이터링크계층에서 통신을 위한 네트워크 인터페이스에 할당된 고유 식별자

- UMTS 라우터의 레이블에 LAN과 WLAN 모듈을 위한 MAC 주소가 존재

- 인터넷을 할 수 있는 이더넷 기반 기기에는 모두 다 하나씩 할당되는 고유한 ID

-  PC의 랜카드, 스마트폰의 와이파이 모듈에도 하나씩 할당 + 인터넷전화, IPTV, 비디오 게임기, 블루투스를 이용한 장치에도 MAC 주소 존재

- IP 주소와 달리 웬만해서는 재활용하지 않음

 

 


✅ 정리
프레임 주소 부여(MAC -물리적 주소)
에러 검출/재전송/흐름제어

 

 

 

 


 

📚 3계층 - 네트워크 계층

-  데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)

- 프로토콜의 종류도 다양, 라우팅 기술도 다양

- 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 것이 이 계층의 역할

- 💡 ) 라우터 - 요즘은 2계층 장비 중 스위치라는 장비에 라우팅 기능을 장착한 Layer 3 스위치도 있다 (이때는 IP 주소를 사용)

- 여러 개의 노드를 거칠 때마다 경로를 찾아주는 역할

- 다양한 길이의 데이터를 네트워크들을 통해 전달, 전송계층이 요구하는 서비스 품질을 제공하기 위한 기능적, 절차적 수단 제공

- 라우팅, 흐름제어, 세그멘테이션, 오류 제어, 인터네트워킹 등을 수행

- 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만드는 계층

 

- 서브네트의 최상위 계층으로 경로를 설정하고, 청구 정보를 관리

- 개방형 시스템들의 사이에서 네트워크 연결을 설정, 유지, 해제하는 기능을 부여

- 전송계층 사이에 네트워크 서비스 데이터 유닛을 교환하는 기능

 

✅ 정리 
- 주소부여(IP)
- 경로 설정(Route)

 

 

 


✨ IP계층

- IP 계층이란 네트워크의 주소(IP 주소)를 정의

- IP 패킷의 전달 및 라우팅을 담당하는 계층

 

- IP계층은 네트워크 계층에 해당

- 즉, 패킷을 목적지까지 전달하는 역할 및 그에 수반되는 기타 역할

 

📚 주요 역할

- 데이터링크 계층의 하드웨어적인 특성에 관계없이 독립적인 역할 수행

 

✅ IP계층 상에 있는 주요 프로토콜

- 패킷의 전달을 책임지는 IP

- 패킷 전달 에러의 보고 및 진단을 위한 ICMP

- 복잡한 네트워크에서 인터네트워킹을 위한 경로를 찾게 해주는 라우팅 프로토콜

 

 


 

✨IP 프로토콜

- TCP/IP 기반의 인터넷 망을 통해 데이터그램의 전달을 담당하는 프로토콜

 

📚주요 역할 

- IP 계층에서 IP 패킷의 라우팅 대상이 됨

- IP 주소 지정

 

📚 주요 특징

-신뢰성(에러 제어) 및 흐름제어 기능이 없음 -> Best-Effect Service

- 신뢰성을 확보하려면 IP계층 위의 TCP와 같은 상위 트랜스포트 계층에 의존

- 비연결성 데이터그램 방식(논리적인 가상회선 연결이 필요없음)으로 전달되는 프로토콜 -> Connectionless

- 패킷의 완전한 전달(소실, 중복, 지연, 순서바뀜 등이 없게 함)을 보장않음 -> Unreliable

- IP 패킷 헤더 내 수신 및 발신 주소 포함

- IP 헤더 내 바이트 전달 순서: 최상위 바이트를 먼저 보냄

- 경우에 따라 단편화가 필요함 -> IP 단편화 참조

- TCP, UDP, ICMP, IGMP 등이 IP 데이터그램에 실려서 전송

 


 

📚 4계층 - 전송 계층(Transport Layer)

- 보통 TCP 프로토콜을 이용

- 포트를 열어서 응용프로그램들이 전송할 수 있게

- 데이터가 왔다면, 4계층에서 해당 데이터를 하나로 합쳐서 5계층에 던져줌

- 단대단 오류 제어 및 흐름 제어. 이 계층에서는 물리적 계층에 속함 (TCP/UDP 프로토콜 사용)

 

- 전송계층은 양끝단의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해주며, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해줌

- 시퀀스 넘버(TCP 세그먼트의 연속된 데이터 번호) 기반의 오류 제어방식

- 특정 연결의 유효성을 제어, 일부 프로토콜은 상태 개념이 있고(stateful),  연결 기반

- 연결기반이란❓ 전송계층이 패킷들의 전송이 유효한지 확인하고 전송 실패 패킷들을 다시 전송한다는 것을 의미 (예: TCP)

- 종단간(end-to-end)통신을 다루는 최하위 계층으로 종단 간 신뢰성 있고 효율적인 데이터를 전송

- 오류 검출복구흐름 제어, 중복검사 등을 수행

 

✅ 정리
- 패킷 생성 및 전송

 

 

 


 

 

✨ TCP 프로토콜(Transmission Control Protocol)

- 전송계층(4계층)에 해당

- 양종단 호스트 내 프로세스 상호간에 신뢰적인 연결 지향성 서비스를 제공

- IP의 비신뢰적인 최선형 서비스에다가 신뢰적인 연결지향성 서비스를 제공

- 신뢰적인 전송을 보장을 위해 데이터를 세그먼트로 분할, 전송속도 조정(흐름제어), 재전송 요청

- 📌 흐름제어 방법으로는 윈도우슬라이드라는 기법을 사용

- 전이중 방식(Full-Duplex Service) : 데이터를 동시에 양방향으로 보냄, 연결이 되어있어서 가능

 

✅ 1. 신뢰성 있음

- 패킷 손실, 중복, 순서 바뀜 등이 없도록 보장

- IP 계층의 신뢰성 없는 서비스에 대해 다방면으로 신뢰성 제공

 

✅ 2. 연결지향적

- 전송계층의 UDP가 비연결성인 것과 달리, TCP는 연결지향적

- 이 경우, 느슨한 연결을 갖으므로 강한 연결을 의미하는 가상회선이라는 표현보다는 오히려 연결지향적이라고 말함

- 연결 관리를 위한 연결 설정 및 연결 해제 필요 -> TCP 연결 설정, TCP 연결 종료

- 양단간 어플리케이션/프로세스는 TCP가 제공하는 연결성 회선을 통해 서로 통신

 

 


 

✨ UDP 프로토콜

- 전송계층의 통신 프로토콜의 하나 (TCP와 대비됨)

- 신뢰성 낮은 프로토콜

- 완전성 보증하지 않으나, 가상회선을 굳이 확립할 필요 없고 유연하며 효율적 응용 데이터 전송에 사용

- 단방향 방식 : 그냥 데이터를 일방적으로 보내기 (Simplex mode)

 

✅ 1. 비연결성, 신뢰성 ❌, 순서화 ❌ 데이터그램 서비스 제공

- 메세지가 제대로 도착했는지 확인 ❌

- 수신된 메세지의 순서를 맞추지 않음(순서 제어 ❌)

- 흐름 제어를 피드백 제공 ❌( 흐름제어 ❌)

- 검사합(데이터의 정확성을 검사하기 위한 용도로 사용되는 합계)을 제외한 특별한 오류 검출 및 제어 ❌(오류 제어 ❌)

- UDP를 사용하는 프로그램 쪽에서 오류제어 기능을 스스로 갖추어야 함

- 데이터그램 지향의 전송 계층용 프로토콜 (논리적 가상회선 연결 필요 ❌)

- 비연결접속상태 하에서 통신

- 서버에서 데이터를 보낼 때 연결이 되었는지 확인 ❌

- 데이터 손상이 나도 재전송이나 다른 조치 없이 그냥 보냄

- 신뢰성 따위 신경쓰지 않기 때문에 연결이 됐든 안됐든 데이터를 일방적으로 보내기만 가능

 

✅ 2. 실시간 응용 및 멀티캐스팅 가능

- 빠른 요청과 응답이 필요한 실시간 응용에 적합

- 여러 다수 지점에 전송 가능(1 대 다)

- 일부 데이터가 누락되어도 상관없는 음악, 동영상 스트리밍 서비스에서 많이 이용

 

✅ 3. 헤더가 단순함

- UDP는 TCP처럼 16비트의 포트를 사용하나,

- 헤어는 고정 크기의 8바이트(TCP는 20바이트)만 사용

- 즉, 헤더 처리에 많은 시간과 노력을 요하지 않음

 

 

 


 

📚 5계층 세션계층

- 데이터가 통신하기 위한 논리적 연결. 통신을 하기 위한 "대문"

- 하지만, 4계층에서도 연결을 맺고 종료할 수 있기 때문에 우리가 어느 계층에서 통신이 끊어졌나 판단하기에는 한계가 있음

- 그러므로, 세션 계층은 4계층과 무관하게 응용 프로그램 관점에서 봐야 됨

- 세션 설정, 유지, 종료, 전송 중단 시 복구 등의 기능

 

- 세션계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공

- 동시 송수신 방식, 반이중 방식, 전이중 방식 등의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행

- TCP/IP 세션을 만들고 없애는 책임

 

✅  정리
- 통신하는 사용자들을 동기화하고 오류 복구 명령들을 일괄적으로 다룸
- 통신을 하기 위한 세션을 확립/유지/중단(운영체제가 해줌)

 

 


 

📚 6계층 표현 계층 (Presentation Layer)

- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고 암호화

 

- 코드 간의 번역을 담당하여 사용자 시스템에서 데이터 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어줌

- MIME(간단하게 파일 변환 방식) 인코딩이나 암호화 등의 동작이 이 계층에서 이루어짐

- 💡) EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔주는 것,

- 해당 데이터가 text인지, 그림인지, gif인지, jpg인지 구분 등이 표현 계층의 몫

 

✅ 정리 
- 사용자의 명령어를 완성 및 결과 표현
- 포장/압축/암호화

 

 


 

📚 7계층 응용 계층 (Application Layer)

- HTTP, FTP, SMTP, POP3, IMAP, Telnet과 같은 프로토콜

- 통신 패킷들은 방금 나열한 프로토콜에 의해 모두 처리되며 브라우저나 메일 프로그램은 프로토콜을 보다 쉽게 사용하게 해주는 응용 프로그램. 한마디로 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지 응용프로그램이 아님

 

- 응용계층은 응용 프로세스와 직접 관계하여 응용 서비스를 수행

- 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공

- 💡) 가상 터미널(예를 들어 텔넷), JTM 등이 있음

✅ 정리 
- 네트워크 소프트웨어 UI부분, 사용자 입출력 부분

 

 


 

✨ HTTP 프로토콜

- 웹 상에서 웹 서버 및 웹 브라우저 상호 간의 데이터 전송을 위한 응용 계층 프로토콜

- 처음에는 WWW 상의 하이퍼텍스트(참조(하이퍼링크)를 통해 독자가 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트) 형태의 문서를 전달하는 주로 이용

- 현재는 이미지, 비디오, 음성 등 거의 모든 형식의 데이터 전송 가능

 

✅ 1. 요청 및 응답의 구조

- 동작형태가 클라이언트/서버 모델로 동작

 

✅ 2. 메세지 교환 형태의 프로토콜

- 클라이언트와 서버 간에 http 메세지를 주고 받으며 통신

- http의 응답 및 요청 메세지 구성

- http 메세지 내 헤더 항목들

 

✅ 3. 트랜잭션(데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위) 중심의 비연결성 프로토콜

- 종단간 연결이 없음

- 이전의 상태를 유지하지 않음

 

✅ 4. 전송계층 프로토콜 및 사용 포트 번호

- 전송 계층 프로토콜: TCP

- 사용 포트 번호: 80