OSI 7계층이란?
- OSI(Open Systems Interconnection) : 개방형 시스템, 시스템 간의 상호연결성을 부여하는 표준
- 국제표준화기구(ISO)에서 개발한 모델
- 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명 → 네트워크 통신의 7단계 과정을 말하는 것
- 일반적으로 하위 계층은 하드웨어로, 상위 계층은 소프트웨어로 구현됨
Layer 계층의 종류
- Layer 7 → 응용 계층 (Application Layer)
- 일반적 응용 서비스 수행 (네트워크 소프트웨어 UI, 사용자 입출력)
- HTTP, FTP, DNS, SMTP
- Layer 6 → 표현 계층 (Presentation Layer)
- 데이터 번역 담당 (ex. EBCDIC 인코딩 → ASCII 인코딩 변환)
- 네트워크 상의 다양한 시스템들이 저마다 다른 데이터 표현 방식을 사용 (정수를 16비트, 24비트 등으로 사용하는 경우) → 하나의 통일된 구문으로 변환
- 데이터 변환, 문자 코드 번역, 압축, 암호화, 복호화
- JPEG(이미지 손실 압축 방법 표준), MPEG(비디오/오디오)
- Layer 5 → 세션 계층 (Session Layer)
- 데이터가 통신하기 위한 논리적 연결 담당, TCP/IP 세션을 만들고 없앰
- 동기화, 네트워크 오류 검사 및 복구 수행
- 응용프로그램간의 대화를 유지하기 위한 구조(세션)를 제공 → 프로세서 간의 논리적 연결 담당
- 두 응용프로그램 간의 연결 설정, 유지 및 종료
- 분실 데이터 복원을 위한 동기화 지점을 두어 상위 계층 오류로 인한 데이터 손실 복원
- 데이터 송수신 중 에러 발생 시 처음부터 재전송하지 않고 오류 발생 지점 이후 데이터만 재전송시킴
- Socket
- Layer 4 → 전송 계층 (Transport Layer)
- 데이터 전송 서비스 제공 → 송수신측 간의 실제적 연결 설정 및 유지, 오류 복구와 흐름 제어
- 세션 계층에 통신망 서비스 차이나 속성 관계 없이 균일한 데이터 전송 서비스를 세션 계층에 제공
- 큰 데이터를 보낼 때에는 잘 분할하고, 받을 때에는 잘 조립하는 역할
- 보낼 때, 데이터를 패킷으로 쪼갬
- 받을 때, 패킷의 순서가 맞는지, 빠진 패킷은 없는지 점검하고 재구성
- TCP, UDP 프로토콜로 통신을 활성화
- TCP: 신뢰적, 연결지향
- 송수신측 연결을 먼저 설정(3-way handshaking) → 연결 성공하면 모든 데이터를 순차적 전송 → 전송 완료하면 연결 해제(4-way handshaking)
- 패킷 순서 번호 부여 X
- UDP: 비신뢰적, 비연결지향, 실시간
- 패킷이 독립적으로 전송되어서 각기 다른 경로로 목적지 노드로 도착 가능
- 순서가 무작위이고 데이터 손실 가능성 있음 → 패킷마다 일련번호 할당
- Layer 3 → 네트워크 계층 (Network Layer)
- 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달
-
- 노드 간의 접속 설정, 유지, 종료 2) 주소 지정 3) 통신 경로 선정
- 노드 간의 연결이 붕괴되었는지 점검하고, 붕괴된 경우 복구 작업 수행
- 프로토콜
- 주소지정 프로토콜
- 상대 노드의 고유 네트워크 주소를 인식 (논리적인 주소를 물리적 주소로 번역)
- 경로결정(Routing) 프로토콜
- 목적지 노드로 가는 경로를 결정 → 경로상 모든 트래픽 고려하여 최적의 경로 결정
- IGP - Internal Gateway Protocol: 동일 그룹 내에서 라우팅 정보 교환
- EGP - Exterior Gateway Protocol: 다른 그룹과 라우팅 정보를 교환
- https://butter-shower.tistory.com/21
- 세그멘테이션
- 기본 단위인 PDU를 더 작은 단위(Segment)로 나누는 것
- 거치는 각 라우터마다 적함한 데이터링크 계층 프레임으로 변환이 필요
- http://www.ktword.co.kr/test/view/view.php?m_temp1=393
- Layer 2 → 데이터 링크 계층 (Data Link Layer)
- 물리 계층으로 송수신되는 정보를 관리하여 안전하고 신뢰성 있게 전달되도록 도움
- 직접 연결된 서로 다른 2개 네트워크 장치 간의 데이터 전송을 담당
- 역할
- 프레이밍: 송신할/수신한 데이터를 프레임 단위의 데이터 유닛으로 만들어 처리
- 흐름 제어: 너무 많거나 너무 적게 데이터를 송수신하지 않도록 데이터 흐름을 제어
- 오류 제어: 프레임 전송 시 발생한 오류 복원 혹은 재전송
- 송신측의 타이머와 ACK 신호에 의해 알 수 있음
- 접근 제어: 매체 상에 통신 주체가 여럿 존재할 경우 데이터 전송 여부 결정
- 동기화: 프레임 구분자 → 패킷과 ACK 신호를 구분하기 위해 각각에 일련번호를 부여
- 출발지와 도착지의 MAC 주소를 처리
- 브릿지, 스위치 등
- Layer 1 → 물리 계층 (Physical Layer)
- 데이터를 전기적인 신호로 변환하여 주고받음 → 데이터를 케이블에 맞게 변환하여 전송 및 수신하는 것
- 비트열 형태의 단순 데이터 전송 및 수신
- 리피터, 케이블, 허브, 전화선, 도축, 광케이블 등
OSI 7계층을 나눈 이유
- 통신이 일어나는 과정을 단계별로 파악하기 위함
- 흐름을 한눈에 알기 쉬워짐
- 사람들이 이해하기 쉽게 함
- 오류가 발생할 경우 발생한 계층만 고칠 수 있고 다른 단계의 장비나 소프트웨어를 건드릴 필요가 없음 (유지보수에 편리)
- 통신 구조가 모델링되어 앞으로 개발될 프로토콜의 표준 뼈대 제공
특징
- 상하 구조를 가짐
- 상위 계층 프로토콜이 정상 동작하기 위해서 하위 계층이 모두 정상 작동해야 함
- 각 계층은 독립됨
- 데이터 캡슐화
- 하위 계층은 상위 계층으로부터 정보를 받는데, 이 전체를 데이터로 취급
- 받은 데이터의 헤더에 현재 계층 정보를 담은 제어정보를 헤더화해 붙이는 것을 데이터 캡슐화라고 함
- 헤더에는 주소, 에러 제어 등의 정보가 담김
- 푸터를 추가하기도 함
- 데이터를 전송받으면 하위 계층에서 상위 계층으로 데이터를 전달하며 헤더를 떼어내는데, 이를 디캡슐레이션이라고 함
- PDU(Protocol Data Unit): 프로토콜 데이터 단위이자 OSI 모델의 정보 처리 단위, 캡슐화 과정에서 만들어짐
- SDU(Service Data Unit): 상향/하향 통신 레이어 간에 전달되는 실제 정보
- 각 계층에서 데이터를 부르는 이름이 다르다.
- 레이어 4 - 전송 계층: Segment
- 발신지 포트, 목적지 포트, 순서 정보, 오류 검출 코드(체크섬) 등의 정보가 추가됨
- 레이어 3 - 네트워크 계층: Packet
- 발신지/목적지 컴퓨터 주소, 서비스 요청 정보가 추가됨
- 레이어 2 - 데이터 링크 계층: Frame
- 레이어 1 - 물리 계층: Bit