일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 웹 스터디
- Spring Batch
- reactor core
- reactive
- 웹 커리큘럼
- reactor
- ipTIME
- 공유기 서버
- Spring Framework
- 웹앱
- 서버운영
- spring reactive
- Today
- Total
Hello World
OSI 7 Layer 본문
1. OSI 7 Layer
OSI(Open System Interconnection Reference Model)은 국제표준화기구 - ISO -에서 개발한 모델로 컴퓨터 네트워크 소프트웨어의 개발을 돕기 위해서 7계층으로 나누어 정의한 명세서다. 보통 OSI 7 계층
이라고 부른다.
컴퓨터 네트워크는 아래로는 물리/전자기 적인 알고리즘과 이들을 이용해서 통신을 하기 위한 물리적인 장비들 그리고 위로는, 컴퓨터 운영체제와 수많은 네트워크 소프트웨어들이 놓이는 전지구적 규모의 광대하고 복잡한 시스템이다. 인터넷 초창기인 ARPNET시절이라면 전체 네트워크 시스템을 이해하는 사람이 있었을 테지만, 지금은 전체 시스템을 이해하고 응용 소프트웨어를 개발할 수 있는 사람은 없다고 장담할 수 있다.
이런 복잡 거대한 시스템을 유지하기 위해서 네트워크 시스템을 7계층으로 나누기로 했다. 이를테면 추상화 한건데, 각 단계의 개발자는 자기가 맡은 단계만 이해하면 되기 때문에 응용 소프트웨어 개발이 매우 쉬워진다. (이론적으로 그렇다는 얘기가, 실제 개발 단계에서는 자기가 맡은 단계 외의 다른 단계에 대해서도 기본적인 이해는 가지고 있어야 한다.)
다음은 OSI의 계층 구조를 보여준다.
흔히 줄여서 L1, L2 ... L7 이라고 부른다.
1.1. 물리 계층
나는 물리 계층에는 관심이 없기 때문에, 다룰 내용이 없다. wikipedia의 내용으로 대신한다.
물리 계층은 실제 장치들을 연결하기 위해 필요한 전기적, 물리적 세부 사항들을 정의한다. 예를 들어, 핀들의 배치나 전압, 전선의 명세 등이 이 계층에 포함된다. 허브나 리피터가 물리 계층의 장치이다. 기계적 구조와 전기적 특성을 규정한다. 물리 계층에서 수행되는 중요한 일들은 다음과 같다.
물리적인 정보 전달 매개체에 대한 연결의 성립 및 종료. 여러 사용자들 간의 통신 자원을 효율적으로 분배하는 데 관여. 예를 들어, 경쟁 상태의 해소나 흐름 제어 등. 통신 채널을 통해 전송되는 사용자 장치의 디지털 데이터를 이에 상응하는 신호들로 변환, 변조. 이 신호들은 구리선이나 광섬유 선을 통해 전달되는 신호들로, 예를 들어, SCSI가 여기에 속한다 네트워크상에서 데이터 비트를 전송하는 계층으로, 데이터 링크 개체간의 비트 전송을 위한 물리적 연결을 설정, 유지, 해제하기 위한 수단을 제공하며, 물리계층에서 데이터를 교환하는 방식은 회선교환, 메시지 교환, 패킷교환 방식이 있다. 전송 매체는 신호 보내는 방법을 정의한다.
d
1.2. 데이터 링크 계층
데이터 링크 계층은 물리적인 네트워크 장비를 일대일(Point to Point)로 신뢰성 있는 통신을 보장하기 위한 명세를 정의 한다. 네트워크 장비(NIC카드)들이 일대일로 통신을 하기 위해서는 서로의 물리적 이름을 알고 있어야 한다.
NIC는 출시때 MAC Address를 할당하는데, 이 MAC Address를 이용해서 원하는 NIC으로 데이터를 전송할 수 있다.
MAC Address는 단일 계층 주소 체계다. 따라서 L2 계층에서는 모든 NIC을 하나의 네트워크로 묶어야 한다. 하나의 네트워크는 데이터가 브로드캐스팅
되는 영역을 의미한다. 예를 주변 네트워크 상황을 확인하기 위해서 ARP브로드캐스팅을 하면, 모든 NIC로 패킷이 전송되는 걸 의미한다. L2에서는 NIC의 개수가 늘어나면 네트워크 전체의 성능이 떨어질 수 있다. 확장에 한계가 있다
L2가 물리적이로 하나의 계층을 가지는 문제를 극복하기 위해서, VLAN기술을 사용해서 논리적으로 네트워크를 나누는 방법이 있다.
관련글
1.3. 네트워크 계층
노드와 노드를 연결해서 네트워크를 구성하기 위한 프로토콜이 정의되어 있는 계층이다. 망(네트워크)를 구성하기 위해서는 전체 네트워크에서 노드가 유일해야 한다. 네트워크에서 노드를 식별하기 위해서 사용하는 대표적인 프로토콜이 IP(Internet Protocol)이다.
네트워크 상에서 노드는 유일한 IP 주소를 부여 받고, 이를 통해서 식별할 수 있다. L3에서 제공하는 프로토콜을 이용해서 네트워크 상의 노드는 다른 노드에 데이터를 전송할 수 있다.
MAC Address와 달리 IP Address는 계층 구조를 가진다. 따라서 대규모의 네트워크를 조직적으로 관리할 수 있다.
1.4. 전송 계층
L3 계층은 노드와 노드사이에 데이터를 전송하는 것만 신경쓴다. 노드와 어떤 방식의 연결
을 만들 건지에 대해서는 관여하지 않는다.
인터넷은 패킷 스위칭 방식으로 데이터를 전송하며, 경로가 달라질 수 있다. 따라서 패킷은 처음 순서와 다른 순서로 목적지에 도달할 수 있다. 또한 경로를 따라가면서 데이터에 잡음이 생길 수도 있다.
이 경우 연결 방식을 조정해서 패킷의 순서를 재 조합하거나, 잡음이 생겼는지 확인하고, 잡음이 생긴 패킷에 대한 재 전송 요청등의 일을 할 수 있어야 한다. 대표적인 프로토콜이 UDP와 TCP이다.
OSI는 TP0에서 TP4까지 5가지 class의 연결단계를 제공한다.
- TP0 : Simple Class, 에러 복구와 같은 어떠한 기능도 제공하지 않는다.
- TP1 : Basic error recovery class
- TP2 : Multiplexing class
- TP3 : Error recovery and multiplexing class
- TP4 : error detection and recovery class
Connecection oriented network인 TCP는 위의 모든 클래스를 만족하는 프로토콜이다.
1.5. 세션 계층
세션 계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다. 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다. 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.
통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룬다. L4의 TCP의 세션관리 부분과 겹치는데, 보통 소프트웨어 개발자는 세션 계층을 신경쓰지 않는다.
1.6. 표현 계층
유저영역에서 처리해야할 데이터의 형식상의 차이를 대신 처리해준다. MIME 인코딩이나 암호화등에 관련된 동작이 이루어진다. EBCDIC로 인코딩 된 데이터를 ASCII로 바꿔주는 등의 일을 한다.
1.7. 응용 계층
일반적인 응용 소프트웨어들이 사용하는 계층으로, 인터넷 소프트웨어 개발자로서는 가장 많이 신경쓰는 계층이다. 이 계층에는 HTTP, FTP, TELNET, SSH 등의 표준 애플리케이션 프로토콜과 함께, 직접 개발한 프로토콜들이 위치하는 계층이다.
2. 관련문서
출처: http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer
'Back-End > 좋은글' 카테고리의 다른 글
쿠키와 세션에 대해 알아보자 (0) | 2017.01.24 |
---|---|
Cross Domain API (0) | 2017.01.24 |
javascript ajax 크로스 도메인 요청 하기 (CORS) (0) | 2016.09.21 |
자바 웹 애플리케이션 성능에 영향을 미치는 대표적인 문제 유형 (0) | 2016.08.10 |
간단히 살펴보는 HTTP Status Code (0) | 2016.08.10 |