❓OSI 7 계층이란?
네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것입니다.
7 계층으로 나눈 이유
통신이 일어나는 과정을 단계 별로 파악할 수 있기 때문입니다.
특정한 단계에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건드리지 않고도 이상이 생긴 단계만 고칠 수 있습니다.
📣 계층 소개
1. 물리 계층
주로 전기적, 기계적, 기능적 특성을 이용해 통신 케이블로 데이터를 전송합니다.
데이터는 0과 1의 비트, 즉, on-off의 전기적 신호 상태로 이루어져 데이터를 전달만 할 뿐입니다.
데이터의 전달만을 담당하기 때문에, 데이터가 무엇인지, 오류가 있는지는 알 수 없습니다.
- 장비: 케이블, 리피터, 허브
2. 데이터링크 계층
물리적으로 연결된 인접한 두 장치 간의 신뢰성 있는 정보 전송을 담당합니다. (Point to Point)
데이터가 맞는지 틀린 지는 판단하지 않고 통신만 합니다.
MAC 매체 접근 제어 기능과 48비트 길이의 주소를 가집니다.
MAC 주소란 컴퓨터 간 데이터를 전송하기 위한 컴퓨터의 물리적 주소이며, 고유한 식별 번호입니다.
MAC 주소는 변하지 않습니다.
- 기능: 프레이밍, 흐름 제어, 오류 제어, 접근 제어, 동기화
- 단위: 프레임
- 장비: 브리지, 스위치
3. 네트워크 계층
실제 네트워크 간 데이터 라우팅을 담당합니다.
라우터를 통해 경로를 선택해서 IP주소를 지정한 후, 경로를 통해 패킷을 전달합니다.
- 기능: 라우팅, 흐름 제어, 세그멘테이션, 오류 제어, 인터네트워킹
- 단위: 패킷
- 장비: 라우터, L3 스위치
라우팅
어떤 네트워크 안에서 통신 데이터를 짜인 알고리즘에 의해 최대한 빠르게 보낼 최적 경로를 선택하는 과정
4. 전송 계층
양 끝단의 사용자 간의 신뢰성 있고 정확한 데이터 전송을 담당합니다.
신뢰성 있고 효율적인 데이터 전송을 위해서 오류 검출 및 복구, 흐름 제어·중복 검사를 수행합니다.
데이터를 전송받은 경우, 데이터를 합산해서 세션 계층으로 보내줍니다.
주로 TCP, UDP 프로토콜을 사용하고, 헤더에 송신지와 수신지의 포트 번호를 포함하여 전달합니다.
TCP의 데이터 전송 단위는 세그먼트, UDP의 데이터 전송 단위는 데이터그램입니다.
TCP 프로토콜
연결 지향 프로토콜
데이터 송수신을 위해 클라이언트와 서버의 소켓이 연결되어 있어야 함.
데이터가 유실되면 데이터 재전송을 요청함으로써 신뢰성을 보장.
신뢰성을 보장하기 때문에 대부분의 응용 계층 프로토콜에서 사용.
UDP 프로토콜
비연결 지향 프로토콜
전송한 데이터가 잘 전달이 되었는지 확인하지 않고 단지 데이터만 보냄.
비신뢰성, 대신 속도가 빠름.
주로 스트리밍 같은 서비스에 알맞음.
5. 세션 계층
응용 프로그램 간의 연결을 성립하게 하고 연결이 안정되게 유지 및 관리하며, 작업이 완료된다면 연결을 끊는 역할을 담당합니다.
주요 기능
- 세션 설정·관리·해제
- 대화 관리
토큰을 사용함으로써 대화 관리, 누가 언제 통신하였는지를 결정하며 토큰을 교환함으로써 구현, 프로세스는 토큰을 가졌을 때 전송 가능 - 다중화
여러 세션들이 효율을 높이기 위해 1개의 같은 전송 계층 접속 사용 가능, 반대로 1개 세션이 속도 등을 위해 다수의 전송 계층 접속들을 사용 가능
6. 표현 계층
표현계층은 응용계층과 세션계층 중간에서 정보로 넘겨주는 역할을 하고 데이터의 표현과 암호화 및 코드 간의 번역을 담당합니다.
응용프로그램이나 네트워크를 위해 데이터를 표현하는 부분입니다. 암호화, 복호화 과정이 이 계층에서 처리됩니다.
데이터가 텍스트인지 이미지 파일인지 구분하여 우리가 볼 수 있는 형태로 표현하는 게 바로 표현계층의 일입니다.
대표적인 프로토콜
SSL: 서버 또는 웹사이트 간에 암호화된 연결을 수립
ASCII: 특수문자, 숫자, 문자에 번호를 이용하여 컴퓨터에서 처리하기 쉽게 만든 코드
7. 응용 계층
사용자와 가장 가까운 계층이며, 우리가 사용하는 응용 서비스나 프로세스들이 동작하는 계층입니다.
사용자로부터 정보를 입력받아서 하위 계층으로 전달하고 하위 계층에서 전송한 데이터를 사용자에게 전달하는 역할입니다.
대표적인 프로토콜
HTTP (HyperText Transfer Protocol)
WWW 상에서 정보를 주고받을 수 있는 프로토콜
주로 HTML 문서를 주고받는 데에 사용
주로 TCP를 사용하고 HTTP/3부터는 UDP를 사용하며, 80번 포트를 사용
HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답프로토콜
HTTP를 통해 전달되는 자료는 http:로 시작하는 URL(인터넷 주소)로 조회할 수 있다.
FTP (File Transfer Protocol)
TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜
HTTP와는 달리 연결의 종류는 2가지 존재
- 명령 연결: 먼저 제어 포트인 서버 21번 포트로 사용자 인증 -> 연결 생성 -> 클라이언트에서 지시하는 명령어가 전달
- 데이터 전송용 연결: 실제의 파일 전송은 필요할 때 새로운 연결 생성