OSI 7 계층
OSI 7 계층이란?
Open Systems Interconnection Reference Model
네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.- OSI 7 계층의 탄생 배경 - 초기의 여러 통신 업체 장비들은 같은 시스템의 장비들끼리만 연결 및 통신이 되어 호환성이 없었음 
 - → 모든 시스템들의 상호 연결에 있어 문제없도록 표준을 정한것이 OSI 7계층 
- 왜 계층으로 나눴는가? ✨ - 계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문 
- 예를들어, 특정한 계층에 이상이 생기면 다른 계층의 장비나 소프트웨어를 건들이지 않고도 이상이 생긴 계층만 고칠 수 있는 장점이 있음 
- 즉, - 트러블 슈팅이 용이 + 다른 장비들, 시스템과의- 호환성도 해결
 
- 최종 목적은,, - 개발자가 만드는 디지털 통신 제품과 소프트웨어 프로그램이 상호 연동 될 수 있도록 하는 것 (ex. 어떤 프로토콜과 기기가 서로 연동 될 수 있는지?) 
 
프로토콜이란?
- OSI 7 계층 → 통신이 일어나는 과정을 단계로 나눈 것을 알았다. - → 그러면 통신이 일어나는 과정은 누가 정해주는데? 
- google.com 을 입력하면 일어나는 일을 생각해보자 - IP 주소가 아니기 때문에 URL 중 도메인 네임 부분 → google.com 을 DNS 서버에서 검색한다. 
- DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달한다. 
- 브라우저는 HTTP 프로토콜을 사용하여 요청 메시지를 생성하고 HTTP 요청 메시지는 TCP/IP 프로토콜을 사용하여 서버로 전송된다. 
- 서버는 response 메시지를 생성하여 다시 브라우저에게 데이터를 전송한다. 
- 브라우저는 response를 받아 파싱하여 화면에 렌더링한다. 
 
프로토콜이 뭔데 통신하는 과정에서 사용되는걸까?
- 프로토콜은 서로 다른 시스템에 있는 개체 간에 성공적으로 데이터를 전송하게 해주는 표준화된 - 통신 규약이다.- 데이터 교환 방법이나 순서에 대해 정의한 약속 및 규칙 
 
- 통신 → 서로 다른 시스템 or 기기 간에 일어나야 하는 것 
- 동일한 프로토콜을 사용을 사용하면 기종 및 프로그램이 다르더라도 컴퓨터간 상호 통신이 가능하다. - → 따라서 이기종간 정보통신을 하기 위해 표준 프로토콜을 채택하여 통신망을 구축해야 한다! 
- 인터넷으로 통신하는데 가장 기반이되는 프로토콜로 TCP/IP 프로토콜을 채택하고 있다! 
OSI 7 계층 구성요소
 
 
1계층 - 물리 계층(Physical Layer)
신호로 변환하여 전송하는 계층
- ‘물리’ 계층이라는 이름 처럼, 데이터를 전기적인 신호로 변환해서 통신 케이블로 주고 받는 역할 
- 단지 데이터를 전달만 할뿐, 전송하려는(또는 받으려는)데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다! 
- 통신 단위 : - bit (1 or 0)- 전기적으로 On/Off 상태라고 생각하면 된다. 
 
- 통신 장비 : - 통신 케이블,- 리피터,- 허브등- 케이블, 리피터, 허브를 통해 데이터를 전송한다. 
 
2계층 - 데이터링크 계층 (DataLink Layer)
물리적 매체에 패킷 데이터를 실어 보내는 계층 - 환경에 맞는 다양한 통신 프로토콜 지원
- 물리 계층을 통해 송수신되는 데이터의 오류와 흐름을 관리하여 안전하게 전달되도록 도와주는 역할 
- 맥(MAC) 주소를 가지고 통신한다. - point to point→ 같은 LAN 안의 연결된 컴퓨터들끼리 맥주소로 통신
- 주소값은 물리적으로 할당받는다 == 네트워크 카드가 만들어질 때부터 맥 주소가 정해져있다. 
 
- 통신 단위 : - Frame- 패킷에 Ethernet 헤더와 Tail(FCS : Frame Check Sequence)가 붙은 것 - 헤더에는 송신자와 수신자의 MAC 주소가 담겨있음 
- FCS는 데이터 전송 도중 에러가 있는지 판별하는데 사용 
 
- 프레임에 맥 주소를 부여하여 에러 검출, 재전송, 흐름 제어 등을 관리한다. 
 
- 통신 장비 : - 브릿지,- 스위치등- 브릿지나 스위치를 통해 맥주소를 가지고 물리 계층에서 받은 정보를 전달한다. 
 
3계층 - 네트워크 계층 (Network Layer)
네트워크를 논리적으로 구분하고 연결하는 계층 - 논리적 주소 사용
- 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅) 이 제일 중요하다. 
- IP 주소를 이용해 다른 LAN에 속한 컴퓨터로 데이터를 전달함으로써 ‘인터넷’이 가능하게 만드는 계층 - 라우터를 통해 이동할 경로를 선택하고 (경로 설정) 
 
- 논리적인 주소 구조(IP)를 지정하고 (주소 부여) 
 
- 해당 경로에 따라 패킷을 전달해준다. 
 
 
- 라우팅, 흐름제어, 세그멘테이션, 오류제어, 인터네트워킹 등을 수행 
- 통신 단위 : - Packets- 세그먼트에 IP 헤더가 붙은 것 
 
- 통신 장비 : - 라우터등
4계층 - 전송 계층 (Transport Layer)
서비스를 구분하고 데이터의 전송 방식을 담당하는 계층 (TCP/UDP)
- TCP와 UDP 프로토콜을 통해 통신을 활성화 하기 위한 역할 - 포트를 열어서 응용 프로그램들이 전송 할 수 있게 한다. 
- TCP: 신뢰성, 연결지향적
- UDP: 비신뢰성, 비연결성, 실시간
 
- end to end→ 양 끝단의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.
- 패킷 생성, 오류 검출 및 복구, 흐름제어, 중복검사 등을 수행 
- 통신 단위 : - Segments- 상위 계층의 데이터에 TCP 헤더가 붙은 것 
- 데이터의 크기가 크면 MTU 단위로 데이터를 쪼갠다. 
- 세그먼트를 송신할 때마다 쪼개진 데이터의 순서를 알 수 있도록 Sequence 번호를 TCP 헤더에 기록 
- 네트워킹 상황에 따라 수신지에 도착하는 데이터의 순서가 바뀔 수 있기 때문! 
- 수신지에서 패킷이 누락되었는지 여부를 확인할 수도 있음 
 
5계층 - 세션 계층 (Session Layer)
응용 프로그램 간의 연결을 지원해주는 계층
- 데이터가 통신하기 위한 논리적인 연결의 역할 - 양 끝단의 응용 프로세스가 통신을 하기 위한 ‘방법’을 제공 
- TCP/IP 세션을 생성하고 없애는 책임이 있다! 
 
- 세션 설정, 유지, 종료, 전송 중단시 복구 등을 수행 
- 통신 단위 : - Data
6계층 - 표현 계층 (Presentation Layer)
데이터의 변환 작업을 하는 계층
- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고 암호화 하는 역할 - 코드 간의 번역을 담당 
- 사용자 시스템에서 데이터의 형식 차이를 다루는 부담을 응용 계층으로부터 덜어줌 
- MIME 인코딩이나 암호화 등의 동작이 표현 계층에서 이루어짐 - 예) 이미지 인코딩 → JPEG, MPEG 등으로 변환 
- 해당 데이터가 TEXT인지-그림인지, 그림이라면 GIF인지-JPG인지 구분등을 여기서 수행 
 
 
- 파일 인코딩, 명령어의 포장/압축/암호화 등을 수행 
- 통신 단위 : - Data
7계층 - 응용 계층 (Application Layer)
User Interface를 제공하는 계층
- 최종 목적지로서 응용 프로세스와 직접 관계하여 일반적인 응용 서비스 수행 - HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있음 
- 우리가 사용하는 브라우저나 프로그램 등은 위와 같은 프로토콜을 보다 쉽게 사용하게 해주는 응용 프로그램 
- → 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지, 응용 프로그램이 아니다! 
 
- 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분 등이 응용 계층의 예시 
- 사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스 제공 - 예) 구글 크롬, 파이어폭스, 사파리, 아웃룩, 오피스 등 응용 프로그램 
 
- 통신 단위 : - Data
TCP/IP Protocol (4계층)
1계층 - 네트워크 접근 계층 (Network Access Layer)
OS의 네트워크 카드와 디바이스 드라이버 같은 하드웨어적인 요소와 관련되는 모든 것들을 지원하는 계층
- OSI 7 계층에서 - 물리계층과- 데이터링크 계층에 해당
- 송신측 컴퓨터 : 상위 계층으로부터 전달받은 패킷에, 물리적인 주소인 MAC 주소 정보를 가지고 있는 헤더를 추가하여 프레임을 만들고 → 프레임을 하위 계층인 물리 계층으로 전달한다. 
- 수신측 컴퓨터 : 데이터 링크 계층에서 추가된 헤더를 제거하여 상위 계층인 네트워크 계층으로 전달한다. 
- CSMA/CD, MAC, LAN, X25, 패킷망, 위성 통신, 다이얼 모뎀 등 - 전송에 사용
- 프로토콜: Ehternet(이더넷), Token Ring, PPP
2계층 - 인터넷 계층 (Internet Layer)
통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅 기능을 담당
- OSI 7 계층에서 - 네트워크 링크 계층에 해당
- 상위 전송 계층으로부터 받은 데이터에 IP 패킷 헤더를 붙여 IP 패킷을 만들고 이를 전송하는 계층 
- 프로토콜: IP, ARP, RARP, ICMP, OSPF
3계층 - 전송 계층 (Transport Layer)
통신 노드 간의 연결을 제어하고, 자료의 송수신을 담당하는 계층
- OSI 7 계층에서 - 전송 계층에 해당
- 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 전송 기능 제공 
- 시스템의 논리 주소와 포트를 가지고 있어서 각 상위 계층의 프로세스를 연결해서 통신 
- 정확한 패킷의 전송을 보장하는 - TCPor 정확한 전송을 보장하지 않는- UDP프로토콜 이용- 데이터의 정확한 전송보다 빠른 속도의 전송이 필요한 멀티미디어 통신에서 UDP를 사용하면 TCP보다 유용 
 
- 프로토콜: TCP, UDP
4계층 - 응용 계층 (Application Layer)
TCP/IP 기반의 응용 프로그램을 구분할 때 사용
- OSI 7 계층에서 - 세션,- 표현,- 애플리케이션 계층에 해당
- 응용 프로그램들이 네트워크 서비스, 메일 서비스, 웹 서비스 등을 할 수 있도록 표준적인 인터페이스를 제공 
- 프로토콜: HTTP, FTP, Telnet, DNS, SMTP
- 송신: 상위 (응용) 계층 → 하위 (네트워크) 계층으로 거쳐서 각 계층의 프로토콜과 관련 된 헤더가 데이터에 씌워져 내려온다.
- 수신: 하위 (네트워크) → 상위 (응용) 계층으로 올라가며 헤더를 없애가며 데이터를 보낸다.
OSI 7 계층 vs TCP/IP 4 계층
- TCP/IP 계층이 OSI 7 계층보다 먼저 개발되었다. 
- 세션과 표현 → 2개 계층이 TCP/IP 모델에 존재하지 않는다. (응용 계층에 속해 있음) 
- TCP/IP 모델은 인터넷 개발 이후 계속 표준화 되어 신뢰성이 우수
- OSI 모델은 표준이 되긴 하지만 실질적으로 구현되는 예가 거의 없어 신뢰성이 저하
OSI 모델은 장비 개발과 통신을 어떻게 표준으로 잡을지 사용되는 반면, 실질적인 통신 자체는TCP/IP 모델을 기준으로 사용한다!
- 참고 문서 
Last updated