위로
아래
OSI
Open Systems Interconnection
- 컴퓨터 네트워크에서 데이터 통신을 위한 표준화된 계층 구조 모델
- 상위 계층은 하위 계층의 서비스를 이용하여 데이터를 전송한다
- 하위 계층은 상위 계층으로부터 받은 데이터를 처리하여 다음 계층으로 전달한다
- 네트워크의 기능을 모듈
- 계층 간의 독립성과 유연성을 제공
전송 방식
인캡슐레이션 (Encapsulation)
- 송신부에서 데이터를 보내는 과정
- 전송하기에 적절한 패킷으로 데이터를 분할
- 수신부에서 적절하게 수용하기 위한 헤더 정보를 추가 (각 계층마다)
디캡슐레이션 (Decapsulation)
- 수신부에서 데이터를 받는 과정
- 헤더에 포함된 정보를 읽어 패킷을 올바른 곳으로 보내고 헤더 정보 삭제
헤더 정보
2계층 : MAC 주소 정보
3계층 : IP 주소
4계층 : 시퀀스 번호, ACK 번호
상위 프로토콜 지시자
디캡슐레이션 과정에서 상위 계층의 프로토콜이나 프로세스를 정확히 찾아가기 위한 정보
2계층 : 이더 타입
3계층 : 프로토콜 넘버
4계층 : 포트 번호
OSI 7계층
1계층 물리계층 (Physical Layer)
- 데이터 전송을 위한 물리적인 매체
- 전기 신호로 비트를 전송.
- 기기 : 케이블, 허브
- 허브 : 전송 받은 데이터를 포트에 연결된 모든 기기에 전송.
2계층 데이터링크 계층 (Data Link Layer)
- 물리 계층을 통해 안정적인 데이터 전송을 위한 프레임 단위의 전송을 처리
- 1계층과 달리 주소를 확인하고 정확하게 해당 단말에 데이터를 전송한다.
- MAC 주소와 같은 물리적인 주소를 사용
- flow control 플로 컨트롤 : 데이터를 받는 단말이 현재 데이터를 받을 수 있는지 확인하는 작업
- 오류 검출과 복구, 흐름제어를 담당
- 기기 : NIC, Switch, 브릿지
3계층 네트워크 계층 (Network Layer)
- 여러 네트워크를 거쳐 데이터를 목적지까지 전달하는 역할.
- IP주소와 라우팅을 사용하여 최적의 경로를 선택하고, 패킷 단위로 데이터를 전송.
- IP 주소와 같은 논리적인 주소를 사용
- 기기 : 라우터, L3 스위치
- 라우터 : IP 주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송하는 역할
4계층 전송 계층 (Transport Layer)
- 송신 호스트와 수신 호스트 간의 신뢰성 있는 데이터 전송을 담당.
- 1,2,3 계층이 데이터 송신을 위한 거였다면, 4 계층은 신뢰성을 위한 것.
- 데이터를 분할해 패킷에 실어서 전송하다보니, 패킷이 유실되거나 순서가 바뀌는 경우가 있다. 이때 4계층이 이를 잡아준다. (4계층에서 패킷을 분할할 때 패킷 헤더에 보내는 순서와 받는 순서를 적어서 통신한다)
- TCP와 UDP 프로토콜이 이 계층에 해당
- 기기 : 로드 밸런서, 방화벽
시퀀스 번호 (Sequence Number, seq) : 패킷에 보내는 순서를 명시한 것
ACK 번호 (Acknowledgement Number) : 패킷에 받는 순서를 명시한 것
포트 번호 (Port Number) : 장치 내의 많은 애플리케이션을 구분할 수 있도록 명시한 것
5계층 세션 계층 (Session Layer)
- 양 끝단의 응용 프로세스가 서로 연결되도록 돕고, 연결을 안정적으로 유지하도록 관리하고, 작업 완료 후에 연결을 끊는 역할.
- 세션을 만들고 없애는 책임을 진다.
- 에러로 중단된 통신에 대해 에러 복구와 재전송도 수행한다.
- 세션의 생성, 유지, 종료를 관리
6계층 표현 계층 (Presentation Layer)
- 데이터의 표현 형식을 정의하고, 암호화, 압축, 형식 변환 등의 기능을 제공.
- 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능 (번역기)
- 서로 다른 데이터 형식 사이의 변환을 수행하여 상호 운용성을 지원.
- MIME 인코딩, 암호화, 압축, 코드 변환 같은 동작이 이루어진다.
7계층 응용 계층 (Application Layer)
- 최종 사용자에게 서비스를 제공하는 계층.
- 다양한 응용 프로그램과 서비스를 포함하며, HTTP, FTP, SMTP 등의 프로토콜이 이 계층에 해당
- 애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행.
- 네트워크 소프트웨어의 UI 부분이나 사용자의 입출력을 정의하는 역할