컬쥐네 다락방
네트워크 기초 / 계층 구조와 OSI 7 Layer 본문
네트워크란 ?
컴퓨터와 컴퓨터를 연결해주는 것.
프로토콜
컴퓨터 네트워크를 하기 위하여 송수신 장치 간 통일된 통신 규약
과거 통신 과정은 중앙 집중적인 형태였는데, 전쟁 중에 이런 형태는 주요 지점이 공격받게 되면 통신망이 모두 마비되는 단점이 존재했다.
이를 해결하기위해 컴퓨터끼리의 연결을 시도했는데 이를 프로토콜이라고 정의했다.
초기에는 독점적 프로토콜과 비독점적 프로토콜로 나뉘었는데 특정 업체에서 개발한 독점적 프로토콜과 학교 및 연구기관에서 개발하는 비독점적 프로토콜로 나뉘었는데, 독점적 프로토콜은 타 프로토콜과 호환 불가한 폐쇄적인 구조였다.
그리고 이를 개선해서 OSI 7 Layer라는 프로토콜 개발 기준이 수립되면서 모두 통일된 통신 규약을 가지고 프로토콜을 만들게 됐다.
OSI 7 Layer의 장점
1. 복잡함의 감소
2. 인터페이스의 표준화
3. 상호 호환성의 확보
4. 기술 개발의 가속화
5. 설명과 이해의 간소화
프로토콜의 형식
통신 단말기 사이에 정보를 전송하기 위한 통신 규약 혹은 표준 형식이 있다.
각 Field 마다 의미가 있다.
계층 모델
프로토콜과 인터페이스
프로토콜 : 서로 다른 호스트에 위치한 동일 계층끼리의 통신 규칙
인터페이스 : 같은 호스트에 위치한 상하위 계층 사이의 규칙
서비스 : 하위 계층이 상위 계층에 제공하는 인터페이스
인터넷 계층 구조
네트워크 계층 (IP 프로토콜) 과 전송 계층(TCP, UDP 프로토콜)
계층적 모듈 구조
1. 크고 복잡한 시스템을 기능별로 여러 개의 작고 단순한 모듈로 독립화를 한다.
-> 전체 시스템을 이해하기 쉽고 설계 및 구현을 쉽게 해준다.
2. 모듈 사이의 적절한 인터페이스가 필요해진다.
3. 상위 모듈이 하위 모듈에게 서비스를 요청하면 하위 모듈은 서비스를 실행하고 그 결과를 상위 모듈에 통보하는 형식이다.
계층 구조의 장점
1. 전체 시스템을 이해하기 쉽고 설계 및 구현이 용이하다.
2. 모듈간의 포쥰 인터페이스가 단순하면 모듈의 독립성을 향상시킬 수 있으며, 이는 시스템 구조를 단순화시키는 장점이 된다.
3. 대칭 구조에서는 동일 계층 사이의 인터페이스인 프로토콜을 단순화시킬 수 있다.
4. 특정 모듈이 외부 인터페이스가 변하지 않으면 내부 기능의 변화과 전체 시스템의 동작에 영향을 미치지 않는다.
OSI 참조 모델
통신 기술의 도입과 통신 기능의 확장을 쉽게 하려고 프로토콜을 몇 개의 계층으로 나누는 것을 '계층화'라고 하고, 통신 기능을 7계층으로 분류하여 각 계층하마 프로토콜을 규정한 규격을 'OSI(Open System Interconnection)' 모델이라고 한다.
각 계층은 헤더와 데이터 단위로 정의되고 헤더에는 각 계층의 기능과 관련된 정보가 포함된다. 송신 측이 헤더를 생성하여 추가하면 수신 측에서 해당 계층이 이 헤더를 사용한다.
상위 계층이나 하위 계층 사이에 주고받는 것을 '서비스 데이터 단위 (SPU) 라고 하고, 같은 계층 사이에서 주고받는 것을 '프로토콜 데이터 단위(PDU)' 라고 한다.
이 데이터 단위는 송신 측이나 수신 측의 다음 계층에 데이터 정보를 전송할 때 사용한다.
계층 n 프로토콜 : 계층 n 모듈끼리 사용하는 통신 규칙
동료 프로세스 : 동일 계층에 위치한 통신 양단 프로세스
인터페이스 : 상하위 계층 사이의 접속 방법
서비스 : 상위 계층이 하위 계층을 사용하는 방법
송신 호스트 : 데이터가 상위 계층에서 하위 계층으로 갈수록 헤더 추가
수신 호스트 : 데이터가 하위 계층에서 상위 계층으로 갈수록 헤더 제거
1. Physical Layer
상위 계층에서 전송된 데이터를 물리 매체를 통해 다른 시스템에 전기적 신호로 전송한다.
두 시스템 간에 데이터를 전송하기 위해 링크를 활성화하고 관리하는 전기적, 기계적, 절차적, 기능적 특성을 정의한다.
물리 계층은 허브, 라우터, 네트워크 카드, 케이블 등 전송매체를 통해 비트를 전송한다.
Lan 카드, 케이블 등 물리적인 것과 데이터 전송에 사용하는 전압 등 기본적이 것이 물리 계층에 속한다.
모든 파일과 프로그램은 0과 1의 나열이다 → 결국 0과 1을 주고 받으면 된다.
물리 주소 (MAC address) => 48 bit (24 bit + 24 bit) = (제조사의 코드) + (제품의 시리얼 넘버)
0과 1의 나열을 아날로그 신호로 바꿔 전선으로 흘려보내고(인코딩) 아날로그 신호가 들어오면 0과 1의 나열로 해석하고 (디코딩) 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고 받을 수 있게 해주는 것 (모듈)
1계층은 하드웨어적으로 구현되어 있다. 하드웨어도 input을 받아 output을 만들기 때문이다. (PHY 칩)
2. Data-Link Layer
물리 계층 바로 위에 위치한다.
물리적 링크를 이용하여 신뢰성 있는 데이터를 전송하는 계층으로 네트워크를 통해 데이터를 전송할 때 전송로 역할을 한다.
데이터 링크 계층에서는 비트를 프레임이라는 논리적 단위로 구성하는데, 전송하려는 데이터는 인접하는 노드(시스템)의 주소가 더해진다. 주소는 최종 수신지의 주소가 아니라 전송되는 다음 노드의 주소가 된다.
시스템 간 오류 없이 데이터를 전송하기 위해 데이터 단위(패킷)을 프레임으로 구성하여 물리 계층으로 전송한다.
같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고 받기 위한 모듈.
Framing(데이터의 앞 뒤를 1111 0000으로 감싸는 것과 같은 행위)는 Data-Link Layer에 속하는 작업중 하나이다.
1계층처럼 하드웨어적으로 구현된다. (렌카드)
3. Network Layer
패킷을 송신측에서 수신 측으로 전송한다.
상위 계층에 연결하는 데 필요한 데이터 전송과 경로 선택 기능을 제공하고, 라우팅 프로토콜을 사용하여 최적의 경로를 선택한다.
데이터를 전송할 수신 측의 주소를 찾고 수신된 데이터의 주소를 확인하여 내 것이면 전송 계층으로 전송한다.
네트워크 계층은 데이터를 패킷 단위로 분할하여 전송한 후 재결합한다.
수많은 네트워크들의 연결로 이뤄진 inter-network 속에서 어딘가의 목적지 컴퓨터로 데이터를 전송하기위해 IP주소를 이용해서 길을 찾고 (routing) 다음 라우터에게 데이터를 넘겨주는 것 (Forwarding).
운영체제의 커널에 소프트웨어적으로 구현.
4. Transport Layer
시스템 종단 간 투명한 데이터를 양방향으로 전송하는 계층.
프로토콜(TCP, UDP)과 관련된 계층으로 오류 복구와 흐름 제어 등을 담당하며 두 시스템간 신뢰성 있는 데이터를 전송한다.
네트워크 계층에서 온 데이터를 세션 계층의 어느 애플리케이션으로 보낼 것인지 판독하고 네트워크 계층으로 전송할 경로를 선택한다.
네트워크 계층에서 전송한 데이터와 실제 운영체제의 프로그램이 연결되는 통신 경로.
포트 번호: 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지않게 가져야하는 정수 값.
포트 번호를 사용하여 도착지 컴퓨터의 최종 도착지 프로세스에 데이터가 도달하게 하는 모듈
운영체제의 커널에 소프트웨어적으로 구현
5. Session Layer
통신 장치간의 설정을 유지하고 동기화하는 역할을 한다.
응용 프로그램 계층 간의 통신을 제어하는 구조를 제공하기 위해 응용 프로그램 계층 사이의 접속을 설정, 유지, 종료 시켜주는 역할을 한다.
사용자와 전송 계층간 인터페이스 역할을 하며, LAN 사용자가 서버에 접속할 때 이를 관리하는 기능도 수행한다.
데이터의 단위(메시지)를 전송 계층으로 전송할 순서를 결정하고 데이터를 점검 및 복구하는 동기 위치(Synchronization Point)를 제공한다.
또한 세선을 종료할 필요가 있으면 종료할 적절한 시간을 수신자에게 알려준다.
논리적 연결을 담당
6. Presentaion Layer
송신 측과 수신 측 사이에서 표준화된 데이터 형식을 규정한다.
데이터 표현 차이를 해결하려고 서로 다른 형식으로 변환하거나 공통 형식을 제공하는 계층이다.
송신 측에서는 수신 측에 맞는 형태로 변환(ASC||코드 -> EBCDIC)하고 수신측에서는 응용 계층에 맞는 형태로 변환한다.
그래픽 정보는 JPEG 형태로, 동영상은 MPEG 형태로 변환하여 송수신 하는 기능과 데이터 압축, 암호화 기능을 제공한다.
Application Layer에 대한 Data 전송 Syntax를 협의한다.
구문 변환, 압축, 암호화를 담당
7. Application Layer
실제 프로그램이 실행되는 곳 실제 통신의 최종 목적에 해당하는 가장 중요한 계층이다.
파일 전송, 데이터 베이스, 원격 접속, 이메일 전송 등 응용 서비스를 네트워크에 접속시키는 역할을 하며 여러 서비스를 제공한다. 사용자에게 정보를 입력받아 하위 계층으로 전달하고, 하위 계층에서 전송한 데이터를 사용자에게 전달한다.
OSI 참조 모델에서 데이터는 응용 계층에서 하위 계층으로 순차적 전송이 이뤄지는데, 물리 계층과 응용 계층을 제외한 나머지 계층은 데이터의 시작 부분과 끝 부분에 헤더나 트레일러 형태로 정보를 추가한다.
시작 부분에 추가되는 헤더는 데이터 링크 계층(2 계층), 네트워크 계층(3 계층), 전송 계층(4 계층), 세션 계층(5 계층), 표현 계층(6 계층)의 데이터에 추가되고, 끝 부분에 추가되는 트레일러는 데이터 링크 계층(2 계층) 에서만 추가된다.
실제 네트워크 프로토콜은 OSI 참조 모델의 7계층을 모두 사용하지 않고 처음 세 계층 (물리 계층, 데이터 링크 계층, 네트워크 계층) 만 사용한다.
'클라우드 > 네트워크' 카테고리의 다른 글
이더넷, 프레임 (0) | 2022.02.10 |
---|---|
인터 네트워킹 (0) | 2022.02.08 |
TCP/IP (0) | 2022.02.08 |
전송 매체 / 접속 형태 (0) | 2022.02.07 |
네트워크 접속 장치 (0) | 2022.02.07 |