공부블로그
OSI 모델 본문
https://www.cloudflare.com/ko-kr/learning/ddos/glossary/open-systems-interconnection-model-osi/
Spring 학습 중 인터넷 작동 원리가 헷갈려 위 사이트에서 공부한 후 내용을 정리
OSI
인터넷의 작동 방식을 추상적으로 개념화한 것으로 국제 표준화 기구가 만든 표준 프로토콜
7개의 계층으로 이루어진다.
7 | application layer | 애플리케이션이 네트워크 서비스에 접근할 수 있는 계층 |
6 | presentation layer | 데이터가 사용가능한 형식이고 어디에서 데이터 암호화가 발생했는지 확인 |
5 | session layer | 연결을 유지하고 포트와 세션제어를 담당 *세션: 웹 통신하는 동안 서버에 사용자의 정보를 저장해 웹 사이트 여러 페이지에서 브라우저를 닫기 전까지 사용하는 것. |
4 | transport layer 전송계층 |
TCP UDP같은 전송 프로토콜을 사용해 전송할 데이터를 전송 |
3 | network layer 네트워크 계층 |
데이터가 사용할 물리적인 경로(physical path)를 선택 |
2 | datalink layer 데이터 링크 계층 |
네트워크에서 데이터의 형식을 결정 인접한 데이터 노드끼리 데이터를 전송하는 기능과 절차 |
1 | physical layer 물리 계층 |
물리적인 매체를 통해 원시 bit 스트림 전송 |
- 각 계층은 특정 작업을 처리하고 위 아래의 계층과 통신함. - 전송자: 모델의 7 > 1 방향으로 진행 - 수신자: 모델의 1 > 7 방향으로 진행 |
7 application layer
- 애플리케이션이 네트워크 서비스에 접근하기 위한 계층
- 클라이언트 측 소프트웨어 애플리케이션은 통신을 시작하기 위해 애플리케이션 계층에 의지하지만 속한 것은 아님.
- 소프트웨어가 사용자에게 의미있는 데이터를 제공하기 위해 의존하는 프로토콜과 데이터를 조작하는 역할
- 사용자의 데이터와 직접 상호작용하는 유일한 계층
웹 사이트에서 content를 요청하면 요청된 형식에 기반해 전달해줌.
ex) HTTP, SMTP등
6 presentation layer
- 애플리케이션 계층이 사용할 수 있도록 데이터를 준비하는 역할
- 통신하는 장치끼리 다른 인코딩 방식을 사용할 수 있으므로 수신 장치의 애플리케이션 계층이 이해할 수 있는
구문으로 수신 데이터를 변환하는 일을 담당
- 데이터의 변환, *암호화, 압축을 담당
*암호화: 승인된 당사자만 정보를 이해할 수 있도록 데이터를 스크램블링하는 것
암호화: 장치가 암호화된 연결로 통신하는 경우 presentation layer에서 최종 송신자에게 암호화를 추가하고,
최종 수신자에게 암호화를 디코딩해 암호화되지 않은 데이터를 애플리케이션 계층에게 줄 수 있도록 함.
압축: 애플리케이션 계층에서 받은 데이터를 계층 5 session layer로 전달하기 전 압축. > 전송할 데이터의 양을 최소화,
통신 속도와 효율성을 높이는데 일조함.
5 session layer
- 기기 사이 통신을 시작하고 종료하는 일을 담당하는 계층
모든 데이터를 전송할 수 있도록 세션을 개방하고 리소스를 낭비하지 않도록 닫음.
- 세션: 통신이 시작 ~ 종료되는 시간을 세션이라고 함.
- 데이터 전송을 체크 포인트와 같이 동기화
ex) session layer에서 5MB마다 체크 포인트 설정할 경우 100MB 파일 전송 중 52MB에서 연결이 끊어졌다면 마지막 체크 포인트부터 세션을 재개함. 나머지 50MB만 더 전송하는 것.
체크 포인트가 없으면 전체 데이터를 다시 시작해야함.
4 Transport layer
- TCP UDP같은 전송 프로토콜을 사용해 전송할 데이터를 전송, 두 기기간 종단 간 통신을 담당
- 세션 계층의 데이터를 계층3으로 보내기 전에 분해함. (== 세그먼트)
- 수신 기기의 전송계층은 세그먼트를 세션 계층이 이용할 수 있도록 다시 재조립해야 함.
- 흐름제어 및 오류제어 담당
흐름 제어: 최적의 전송속도를 결정
오류 제어: 수신된 데이터가 안전한지 확인하고 안전하지 않을 경우 재전송 요청
3 network layer
- 네트워크에서 물리적인 경로를 설정해 두개의 상이한 네트워크 간 라우팅, 데이터 전송을 촉진시킴.
( 같은 네트워크에 있으면 네트워크 계층은 필요하지 않음. )
- 데이터가 대상에 도달할 수 있는 최상의 물리적 경로를 찾음 (= 라우팅)
- 발신자 기기의 전송 계층의 세그먼트를 더 작게 분해(=패킷)해 수신장치에 전송
수신자는 이러한 패킷을 재조립
- 네트워크 계층에서 사용되는 프로토콜 ( 연결, 검사, 라우팅, 암호화 등 역할 수행하는 프로토콜)
1. IP ★
2. IPsec
3. ICMP ★
4. IGMP
5. GRE 등
- 네트워크 연결과 관련된 모든 일이 네트워크 계층에서 일어남.
ex) IP패킷에 주소를 붙이거나 수신하는 일
2 datalink layer
- 동일한 네트워크에 있는 기기간 전송을 촉진함.
- 네트워크 계층에서 패킷을 가져와 더 작게 분할(= 프레임)
- 많이 사용되는 프로토콜: 이더넷
network layer는 우편물 주소, datalink layer는 해당 주소의 사무실 번호 또는 아파트 호수를 의미한다고 볼 수 있음.
1 physical layer
- 케이블, 스위치 등 데이터 전송과 관련된 물리적 장치를 포함함.
- 이 계층에서 프레임을 비트 스트림(0,1)으로 변환
- 1, 0을 구별할 수 있도록 두 기기의 물리적 계층이 신호 규칙에 합의해야 함.
작동 예시
송신자
어플리케이션 계층에서 네트워크에 접근하기 위해 프로토콜을 선택 (http / smtp)
데이터를 프레젠테이션 계층에 전달
프레젠테이션 계층에서 데이터를 압축시켜 세션 계층에 전달
세션 계층은 세션을 시작시킴
전송계층에서 데이터를 세그먼트로 분할하고 전송 프로토콜을 선택해 전달
네트워크 계층에서 세그먼트를 패킷으로 분할
데이터 연결 계층에서 패킷을 프레임으로 분할해 물리적 계층으로 전달
물리적 계층에서 프레임을 비트 스트림으로 변환하고 물리적 매체를 선택(케이블)을 통해 전송
수신자
물리적 매체(와이파이)를 통해 전달받은 비트 스트림을 프레임으로 변환 해 연결 계층에 전달
데이터 연결 계층에서 프레임을 패킷으로 재조립해 네트워크 계층으로 전달
패킷을 세그먼트로 재조립 해 전송계층으로 전달
세그먼트를 재조립해 하나의 데이터로 만듦.
세션 계층에서 데이터를 프리젠테이션 계층으로 넘기면 통신 세션이 종료됨.
프리젠테이션 계층은 압축을 제거하고 원본 데이터를 애플리케이션 계층으로 넘김.
애플리케이션 계층은 사람이 읽을 수 있는 데이터를 애플리케이션에 제공