일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- EC2
- SQL
- 배포
- 최단경로
- Database
- BFS
- 알고리즘
- GROUPBY
- django
- 그래프 탐색
- MST
- SQL코딩테스트
- 코딩테스트
- OrderBy
- 프로그래머스
- 누적합
- 자바
- 프림
- 구현
- 피로그래밍
- Java
- AWS
- 다익스트라
- db
- Pirogramming
- Baekjoon
- union find
- JOIN
- 백준
- 크루스칼
- Today
- Total
NullNull
OSI 7계층 && Internet 5 계층 본문
ISO OSI 7 Layer
OSI 7계층은 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리한 뒤에, 각 계층 간의 인터페이스를 정의한 네트워크 표준이다. 계층은 순서대로 다음과 같이 구분된다.
계층 | 내용 | PDU (Protocol Data Unit) |
1 Layer | 물리 계층 (Physical Layer) | Bit |
2 Layer | 데이터 링크 계층 (Datalink Layer) | Frame |
3 Layer | 네트워크 계층 (Network Layer) | Packet |
4 Layer | 전송 계층 (Transport Layer) | Segment |
5 Layer | 세션 계층 (Session Layer) | Data |
6 Layer | 표현 계층 (Presentation Layer) | Data |
7 Layer | 응용 계층 (Application Layer) | Data |
- 물리 계층 (Physical Layer) : 물리적인 신호 교환과 관련된 사항을 담당한다.
- 데이터 링크 계층 (Data Link Layer) : 하나의 링크로 연결된 노드 사이의 Frame(비트 묶음)을 교환한다.
- 네트워크 계층 (Network Layer) : 네트워크를 통해 연결된 호스트(단말) 사이의 데이터 Packet을 교환한다.
- 전송 계층 (Transport Layer) : 통신 응용 사이의 신뢰성 있는 메시지 교환을 제공한다.
- 세션 계층 (Session Layer) : 대화 패턴과 관련된 사항을 담당한다.
- 표현 계층 (Presentation Layer) : 데이터 표현 방법과 관련된 사항을 담당한다.
- 어플리케이션 계층 (Application Layer) : 응용 프로그램 자체와 관련된 사항을 담당한다.
OSI 7 계층 모델의 각 계층은 2가지 개념을 사용하여 네트워크 동작 원리를 설명한다.
첫 번째는 추상화이다. 각 계층은 추상화를 활용하여 상위 계층에 서비스를 제공하고 하위 계층을 사용하는 방식으로 동작한다. 예를 들어, 네트워크 계층은 데이터 링크 계층으로부터 연결된 링크들에 Frame을 전송하는 서비스를 제공 받고, 전송 계층에게 알맞은 경로를 찾아 Packet을 전달하는 역할을 한다. 이때 네트워크 계층은 데이터 링크 계층의 인터페이스를 사용하고 전송 계층에 서비스를 제공하는 역할만 한다. 따라서 데이터 링크 계층에서 어떻게 연결된 링크에서 디지털 신호가 전달되는지는 알 필요도 없고 이를 네트워크 계층에서 구현할 필요도 없다. 마찬가지로 전송 계층은 네트워크 계층을 사용만 하므로 라우팅 경로를 설정하는 방법과 Packet을 전송하는 부분에 대해 구현할 필요가 없다. 단지 네트워크 계층이 제공하는 인터페이스를 사용만 할 뿐이다.
두 번째는 캡슐화이다. 각 계층은 사용하는 프로토콜에 따라서 Protocol Data Unit 이라는 데이터 단위가 존재한다. 간단하게 설명하면 PDU는 각 프로토콜이 처리할 수 있는 데이터 단위이다. 즉 물리 계층은 Bit 단위로 데이터를 처리하고, 네트워크 계층은 Packet 단위로 데이터를 처리하게 된다. 각 계층에서 데이터를 전송할 때 필요한 정보를 헤더로 만들어 PDU에 붙여 다음 계층으로 보내게 되는데 이렇게 헤더를 붙여나가는 것을 캡슐화라고 한다. 반대로 받은 PDU의 헤더를 제거하는 것을 디캡슐화라고 한다. 캡슐화와 디캡슐화는 각 계층의 프로토콜이 사용하는 데이터 단위를 맞춰주는 역할을 한다. 캡슐화와 디 캡슐화를 통해서 두 엔드 포인트 단말의 응용이 통신하는 시나리오를 생각해보면 다음과 같다.
- 하나의 단말이 다른 단말로 보내고 싶은 메시지 Data를 표현 계층에게 준다.
- 표현 계층은 표현 계층의 헤더를 추가하여 세션 계층으로 준다.
- 세션 계층은 세션 계층의 헤더를 추가하여 전송 계층으로 준다.
- 전송 계층은 세션 계층에서 전달된 Data에 전송 계층의 헤더를 추가하여 Segment를 만들고, 네트워크 계층으로 준다.
- 네트워크 계층은 전송 계층에서 전달된 Segment에 네트워크 계층의 헤더를 추가하여 Packet으로 만들고, 데이터 링크 계층으로 준다.
- 데이터 링크 계층은 네트워크 계층에서 전달된 Packet에 데이터 링크 계층의 헤더를 추가하여 Frame으로 만들고 연결된 링크로 Frame을 전송한다.
- Frame을 전달받은 중간 노드는 이를 디 캡슐화 해서 네트워크 Packet을 확보한 뒤에 경로를 설정하여 어떤 노드에게 Packet을 줘야할 지 정한 뒤에 다시 네트워크 헤더를 붙여 Frame으로 만들고 데이터 링크 계층에게 보낸다.
- 이러한 과정을 반복하여 엔드 포인트 단말의 노드에 도착한 경우에는 Frame을 Packet으로, Packet을 Segment로, Segment를 Data로 디 캡슐화 하여 원본 메시지 데이터를 전달한다.
이렇게 네트워크 모델을 7개의 부분으로 나누어 계층화한 뒤에 각 계층이 추상화를 통해 하위 계층의 인터페이스를 사용하면서 상위 계층에 서비스를 제공하도록 하고, 캡슐화와 디 캡슐화를 사용하여 end-to-end 로 메시지를 전달하는 개념적인 모델이 바로 OSI 7 Layer이다.
OSI 7계층은 실제 네트워크를 구축할 때 참고하는 모델로 실제 현실에서는 Internet 표준 모델이 사용된다. Internet 5계층은 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 응용 계층으로 나누어진다.
- 물리 계층 (Physical Layer)
- 데이터 링크 계층 (Data Link Layer)
- 네트워크 계층 (Network Layer)
- 전송 계층 (Transport Layer)
- 응용 계층 (Application Layer)
각 계층에서 동작하는 프로토콜 역시 상위 계층 프로토콜에게 서비스를 제공하고 하위 계층 프로토콜의 인터페이스를 사용하는 것은 동일하다. 그러나 OSI 7계층에서 구분된 계층 중 몇 가지 계층의 역할을 동시에 구현하여 사용하기도 한다. 네트워크 보안에 대해 알기 위해서는 표준 참고형 모델인 OSI 7계층에 대해서 잘 아는 것도 중요하지만, 실제로 활용되는 Internet 계층 표준도 동시에 알아야 한다. 아래의 사진은 Internet 계층 표준과 OSI 7 계층을 비교한 그림이다.
OSI 7 Layer
Internet 5 Layer
'Computer Science' 카테고리의 다른 글
Domain Name System (0) | 2022.11.29 |
---|---|
네트워크 지연(Network Delay) 의 종류 (0) | 2022.11.11 |
CORS (Cross Origin Resource Sharing) (0) | 2022.10.23 |
멀티 프로그래밍, 멀티 태스킹, 멀티 쓰레딩, 멀티 프로세싱 (0) | 2022.09.29 |
산업보안 관점에서 고려되어야 할 보안 요소 및 보안 대책 (0) | 2022.09.29 |