정보과학 IT

OSI 7계층 참조 모델

물곰탱이 2013. 10. 21. 11:28

OSI 7계층 참조 모델

 

2장. 인터넷 인포메이션 서버(IIS)

ASP 프로그래밍을 하고자 한다면 제일 먼저 설치해야 하는 프로그램이 있다. 그것이 바로 인터넷 인포메이션 서버인 것이다. ASP가 실행되기 위해서는 웹 서버가 필요한데 이것들에 는 NT와 Windows2000에서의 IIS, 윈도우 98에서의 퍼스널 웹 서버가 있다. 지금부터 이런 웹 서버의 설치가 여러 가지 기능들에 대해서 알아보기로 하자.


2.1 TCP/IP와 네트워크

앞서 웹 서버가 하는 주요 역할에 대해서 알아보았다. 간단히 웹 서버는 인터넷에서의 홈페 이지를 클라이언트에게 보여주는 역할을 수행하는 하나의 프로그램으로 생각하면 된다. 하 지만 웹 서버에 대해 보다 자세하게 알고, 관리하기를 원한다면 내면에 숨어있는 여러 가지 네트워크에 대한 기본 지식들을 갖추어야 할 것이다. 지금부터 웹 서버를 이해하기 위한 여 러 가지 네트워크에 대한 기본 지식들을 알아보도록 하자.

1) OSI 7계층 (Open System Interconnection 7 Layer)
OSI Layer는 국제표준화기구에서 제안한 네트워크 프로토콜의 기준 모델이다. 이것은 모두 7개의 계층으로 구성되며 각각 아래와 같은 기능을 수행하도록 정의되어 있다. 네트워크의 프로토콜의 구성 방식을 의미하고 있으니 꼭 한번씩 읽어보도록 하자.

[그림 1-1] OSI 7 계층
 

① 계층 1 (물리계층) : 전기적 신호 전송
최하위층으로 하드웨어와 연결되는 물리적인 접속을 처리하며 전송매체와 전달방식, 그리고 랜카드 등에 관련된 부분을 처리하기 위한 계층이다.

② 계층 2 (데이터링크계층) : 인접장치간의 정보 전송
데이터 전송을 위해 전송방식, 에러 검출 및 처리, 상황에 따른 데이터 흐름의 조절 등을 처 리하기 위한 계층으로 데이터를 패킷으로 나누는 역할을 담당한다.

③ 계층 3 (네트워크계층) : 정보 교환과 중계
데이터링크 계층으로부터 받은 패킷들의 정보를 읽어 목적지까지 정확하게 전달될 수 있도 록 네트워크 내에 복잡하게 연결되어 있는 장치간의 경로배정 및 중계기능을 수행하고 장치 들을 연결하여 데이터 전송을 하는데 필요한 절차들을 처리하기 위한 계층이다. 또한 네트 워크 계층에서는 한 데이터를 여러 개의 연속적인 패킷으로 분리하여 전송할 경우 패킷이 순서대로 전달될 수 있도록 보장해 준다. TCP/IP의 IP에 해당하는 부분이기도 하다.

④ 계층 4 (전달계층) : 송수신 시스템간의 신뢰성 제공
전달계층은 연결된 두 장치간의 신뢰성 있는 데이터 전송을 위한 계층이다. 전달 계층은 긴 메시지를 작은 단위의 패킷으로 나누어주는 것으로 발생하는 에러를 검출해줌으로써 하위계 층에서 보다 효율적으로 데이터를 전송할 수 있도록 해준다. 또 순서에 관계없이 수신된 패 킷을 합쳐서 원래의 메시지로 복구시키는 기능을 수행하므로 상위계층에서의 작업이 순조롭 게 진행될 수 있도록 해준다. TCP/IP의 TCP에 해당한다.

● TCP : 두개의 호스트간에 연결된 데이터의 흐름을 보장하는 프로토콜로서 하위 네트워 크 계층에서 사용할 자료 chunk를 자르고 받은 패킷에 대해 Ack를 보내고 다른 쪽의 Ack 를 위해 Timeout지정하는 등의 일을 한다.

● UDP : 상위 레이어에 대해 훨씬 더 간단한 서비스를 제공한다. udp는 단지 두개의 호스 트간에 하나의 패킷을 보내는 일을 한다. 이를 데이터 그램(Datagram)이라 한다. 그러나 이 패킷이 상대 호스트에 도착하는 여부에 대해서는 보장하지 않는다. 이런 신뢰성을 보장하기 위해서는 어플리케이션에서 이를 보장하도록 만들어야 한다.

⑤ 계층 5 (세션계층) : 응용 프로세스간의 회선 형성 및 동기화
이 계층은 시스템간의 정보교환을 위한 세션의 연결과 조정을 담당하며 논리적 통신 선로인 선의 처리 및 세션을 통신 데이터의 전송 절차에 관하여 규정하고 있다. 또한 통신 도중 발 생할 수 있는 세션의 이상 상태를 복구하여 적절한 상태에서 통신이 이루어질 수 있도록 함 으로써 응용 프로세스간의 통신을 위한 서비스를 제공한다.

⑥ 계층 6 (표현계층) : 데이터의 형식 설정 및 코드변환
운영체제, 파일시스템과 관련이 있으며 서버와 클라이언트간의 상이한 데이터 표현방식 및 부호체계를 서로 변환하여 주는 서비스를 제공한다. 또한 데이터의 보안을 유지하기 위해 암호화에 관하여도 규정하고 있는데 통신기능과는 무관하지만 통신을 하는데 수반되는 데이 터의 처리에 관련한 사항들을 규정함으로써 응용 계층의 통신을 도와주는 계층이다.

⑦ 계층 7 (응용계층) : 응용 프로세스간의 정보 교환
사용자가 응용프로그램을 통하여 네트워크 환경을 이용할 수 있도록 응용 프로세스간의 정 보 교환을 실현해 준다. 예로써 TELNET, FTP등 각종 네트워크관련 프로그램들이 응용계 층에 해당한다.

- SMTP(Simple Mail Transfer Protocol) : 전자우편 전송
- FTP (File Transfer Protocol) : 파일 전송
- TELNET : 원격 컴퓨터 접속
- HTTP : Web 서비스

 

--------------------------------------------------------

 

 


1. Physical (=물리 계층) 장비 : 케이블, 허브, 리피터 등

 - 어떤 전기적,기계적,기능적인 특성을 이용하여 전송

   이계층은 단지 데이터를 전달만 할뿐 데이터가 무엇인지, 어떤에러가 있는지,

   어떻게 보내야 효과적인지 하는것은 전혀 관여하지 않는다.

 

2. Data Link (=데이터 링크 계층) 장비 : 브리지, 스위치 등

 - physical를 통하여 송수신된는 정보의 오류와 흐름을 관리 안전한 정보전달을 수행하도록

   도와주는 역할  

 


3. Network (=네트워크 계층) 장비 : 라우터

 - 송신측과 수신측 사이에 보이지 않는 논리적인 링크를 구성

 - 데이터를 패킷(packet)단위로 분할하여 전송한 후 조립함

 - 패킷 전송의 최적의 경로를 찾아주는 라우팅 기능 제공

 

4. Transport (=전송 계층)

 - 사용자와 사용자, 컴퓨터와 컴퓨터간에 연결을 확립하고 유지

 - 송수신 시스템간의 논리적인 안정과 균일한 서비스 제공

 - 세션 계층에서 넘어온 데이터를 세그먼트(segment) 단위로

  분할하고 번호를 붙임

 - 오류 검출 코드를 추가하고 통신 흐름 제어를 제공

 

5. Session (=세션 계층)

 - 세션을 확립하여 순차적인 대화의 흐름이 원활하게 이루어지도록

  동기화 기능 제공

 - 데이터 전송 방향 결정

※ session : 사용자가 접속중인 응용 프로그램을 한 쌍으로 연결하는 작업

 

6. Presentation (=표현 계층)

 - 데이터를 표현하는 방식을 다루는 계층

 - 데이터의 안정성을 높이기 위해 데이터 압축이나,

  데이터 암호화 기능 제공

 - 상이한 데이터 표현을 서로 가능케 하는 표준인터페이스 제공

 

7. Application (=응용 계층)

 - 사용자의 응용 PㆍG(Program)이 네트워크 환경에 접근하는

  창구역할을 하는 최상위 계층

 

OSI 7계층은 크게 하위계층과 상위계층으로 나눈다.
*상위계층(전송 계층, 세션 계층, 표현 계층, 응용 계층)
*하위계층(물리 계층, 데이터 링크 계층, 네트워크 계층)

=============================================================================================

 

이 작업은 1977년에 시작되어 1983년 까지 이뤄진 매우 길고도 방대한 작업이었다. 이 표준화 작업의 기초는 당시 네트워크의 주종을 이루고 있었던 IBM의 SNA와 DEC의 DECNet 이라는 네트워크 였다.

OSI 7계층 참조모델은 네트워크를 이루고 있는 구성요소들을 계층적 방법으로 나누고 각 계층의 표준을 정한 것이었다. 이와같은 표준이 있기 까지 각 제작사별로 중구난방으로 흩어져 있던 방식들이 통합되어 가면서 네트워크는 비약적 발전을 이루게 된 것이다.

 

OSI 참조모델이라 불리는 이 계층 모델은 다음과 같은 7계층으로 이뤄져 있다.

 

7계층

Application Layer

응용 계층

WWW, Telnet, NetBIOS, FTP

Presentation Layer

표현 계층

Session Layer

작업 계층

Tranport Layer

전송 계층

TCP/IP

Network Layer

네트워크 계층

Data Link Layer

데이터 링크 계층

랜 어댑터

Physical Layer

물리 계층

각각을 간단하게 살펴보면 다음과 같다.

-7층 : 어플레케이션층

여러 가지 서비스를 제공한다. 사용자로부터 정보를 입력받아 아래층으로 전달하고 아래층에서 보내주는 정보를 사용자에게 전달한다.

-6층 : 프리젠테이션층

사용자가 주는 정보는 통신에 적당한 형태로 변환하고 세션층에서 전달한 정보는 사용자에 맞게 변환한다.

-5층 : 세션층

정보가 흐르는 통로를 만들거나 폐쇄한다. 암호를 확인하거나 속도 조절도 행한다.

-4층 : 트랜스포트층

정보의 전달을 관리 감독한다. 네트워크층에서 온 정보를 세션층의 어느 어플리케이션에 보낼것인가 판독하고 네트워크 층으로 나가는 경우는 경로를 선택한다.

-3층 : 네트워크층

정보가 전달될 상대의 주소를 찾고 나에게 온 정보의 주소를 확인하여 내것이면 트랜스포트층으로 전달한다.

-2층 : 데이터링크층

네트워크층에서 확인한 주소의 상대와 물리적 연결을 위한 통로를 열고 유지한다. 에러를 검출하고 수정한다.

-1층 : 물리층

데이터를 비트 단위로 쪼개어 전기적 신호로 변환한다.

위의 7계층이 이해가 안되는 경우는 그냥 어플리케이션층, 프로토콜층, 물리층으로 이해하면 편하다. 실제로 랜카드에는 1,2층이 탑재되어 있고 프로토콜에는 3,4층이, 웹브라우져등에는 5,6,7층이 탑재되어 있다.

네트워크를 다루는 프로그램은 컴퓨터의 자원을 다루는 것인데 컴퓨터의 자원은 기본적으로 OS가 다룬다. 과거에는 DOS를 띄운 상태에서 네트워크 프로그램이 램상주로 뜨기도 하였으나 현재는 OS자체가 네트워크를 담당하게 되었고 OS의 기능중 특별히 네트워크를 강조할 때 NOS(Network OS)라고 한다. 현재 시장을 3분하고 있는 NOS로는 UNIX, NetWare, Windows 등이 있다.

실제 ISO 7 계층을 만든 이유중 하나는 전 세계 사람이 공용하여 쓸 수 있는 공짜의, 공개된 프로토콜을 만들기 위한 것도 있었다. 그러나 7계층이 발표된 시점에 이미 많은 프로토콜이 사용되고 있었고 특히 WAN에서는 TCP/IP가 표준으로 자리잡아 독보적인 위치를 확보하고 있었다. 그 이후, 1 계층과 2 계층에서는 Ethernet이, 3계층과 4계층에서는 TCP/IP, NetBuei, IPX등이 업계표준으로 자리잡게 되었다.

OSI 7계층에 따른 프로토콜(OSI 프로토콜) 교과서 같은 곳에 소개되다가 차세대 시리얼 버스 규격인 IEEE1394에 사용되고 있다.

5,6,7계층은 따로 따로 구현되기 보다 통합되어 여러 가지 '서비스'라는 이름으로 제공된다. Telnet, FTP, e-mail(SMTP, POP), News(NNTP), NetBIOS 등이 이 서비스 층에 해당된다.

LAN 외에 여러 통신에 공통적으로 적용되는 1, 2 계층에 대해 자세히 살펴보겠다. 조금 지루할 지 모르지만 기초가 되는 부분이고 잘 따라가면 의미를 잘 모르고 사용해온 단어들을 이해할 수 있을 것이다.


1.1. Layer 1 - Physical Layer

물리층은 네트워크 케이블과 신호에 관한 규칙이다. 상위층에서 보내는 데이터를 케이블에 맞게 변환하여 내보내고 반대의 일을 수행한다. 따라서 케이블의 종류와 그 케이블에 흐르는 신호의 규격을 정하고 있다. 네트워크 업계에도 10/90 법칙이 있는데 그것은 케이블링 작업이 네트워크 비용의 10%를 차지하지만 고장원인의 90%를 제공한다는 뜻이다. 현재는 기술이 많이 발전하여 고장율이 많이 줄었지만, 자기손으로 직접 네트워크를 구축하는 사람에게 있어서는 매우 주의를 요하는 부분이다.

네트워크의 데이터 전송속도는 초당 10Mbps 정도로(Ethernet) 매우 빠른 편이다. 전자공학을 전공한 사람은 알겠지만 일반 구리선(전화선)은 전송속도가 빨라지면 자체 정전용량이 생기고 주위 신호들과 간섭(전자파)이 일어나게 되므로 1Mbps이상은 사용할 수 없다. 이 문제를 해결하려면 신호선 주위를 그라운드선으로 감싸는 동축케이블을 사용해야 한다. 동축 케이블은 거리에 따 100Mbps 이상의 속도 까지도 전송이 가능하다.

그러나 동축 케이블은 가격이 비싸고 선이 두꺼워 공사가 불편한 단점이 있다. 그래서 그 중간단계로 트위스티드 패어 라인(twisted pair line)이 널리 쓰이고 있다. 줄여서 TP 케이블 이라고 부른다. 이 선은 신호선과 그라운드선을 꼬아서 보내는 것인데 이렇게 함으로서 어느정도 잡음의 영향을 줄일 수 있다. TP 케이블에는 UTP(Unshielded TP)와 STP(Shielded TP)가 있는데 전자는 선을 꼬으기만 한 일반적인 TP 케이블이고 STP는 UTP 주위를 다시 접지선으로 감싼 형태를 취한다. UTP는 10Mbps까지, 후자는 100Mbps까지도 전송이 가능하다.

더욱 더 고속의 데이터를 전송하기 위해 광케이블이 사용된다. 앞의 케이블들은 전기적 신호를 이용하므로 전자파의 간섭이 없을 수가 없다. 그러나 광 케이블은 빛을 사용하기 때문에 이론적으로 간섭이 0% 이며 현존하는 최고속도의 케이블이다.

선을 이용하지 않고 무선으로도 데이터를 전송할 수 있다. 무선 랜등이 여기에 해당한다. 무선은 선을 이용하지 않기 때문에 케이블링 작업이 필요없다는 장점이 있지만 현재 기술로 고속의 데이터 전송이 어렵다.(얼마전 삼성이 발표한 무선 랜카드는 2Mbps 속도 이다)

1계층의 표준으로 널리 쓰이고 있는 것이 RS-232이다. RS-232에서는 15m 이내의 거리에서 9600bps의 속도를 표준으로 하며 논리 1 은 +3V이상, 논리 0은 -3V이상의 신호를 규정하고 있다. 실제로는 ±12V가 가장 널리 쓰인다. PC의 COM1에서 COM4까지가 RS-232C를 사용하고 있다. Ethernet에서는 방식에 따라 약간의 차이가 있지만 0V와 약-2V를 사용한다.

1계층에서 정의되는 또한가지는 토폴로지이다. 우리말로 번역하기가 어려운데 '망형( 網形)'정도의 뜻을 같는다. RS-232에서는 1대1 형태(point-to-point) 연결만을 허용한다. 이더넷은 버스형(스타형)구조를 사용한다. 버스형과 스타형이 그림은 다르지만 전기적으로는 아무 차이가 없다.


===================================================================================

1. 프로토콜 - 구문, 의미, 타이밍
 -> 각 계층별로 나누어 생각해 보자. 계층별 구문과 의미는 다르다.
 1) 구문- 데이터 분할
 2) 의미 - 분할된 데이터에 의미 부여
 3) 타이밍 - 잘 모르겠음.

2. OSI 7계층 모델
 1) Application Layer - 사용자가 네트워크에 접근하도록 해준다.
 2) Presentation Layer - 표현되는 데이터의 가공.  즉  변환, 암호화, 압축 등
 3) Session Layer - 시스템 콜?, 통신 시스템간의 상호대화를 설정, 유지, 동기화 한다. (한 포트에서 들어오는 여러 프로세스를 구분?)
 * 실질적으로 1)~3)의 세 계층은 TCP/IP 프로토콜에서는 하나로 이루어지므로 뭉뚱그려놓아도 상관은 없다고 생각함.
 4) Transport Layer - 신뢰성 있는 데이터의 전송 보장, 정확한 프로세스에게 전달(PORT가 이 기능을 함)
   - 흐름제어, 연결제어, 윈도잉(남아있는 버퍼의 크기), 확인응답
 5) Network Layer - 라우팅과 네트워크 어드레싱을 담당.
   - 라우팅, 논리주소 지정
 6) Data Link Layer - Logical Link Control, MAC(Media Access Control)
 7) Physical Layer - 물리적으로 전기 신호를 내보내고 받아들이는데 필요한 기능 제공.

 

 

1. Physical (=물리 계층)

 - 상위 계층에서 내려온 비트들을 전송 매체를 통하여 어떤 전기적

  신호로 전송할 것인가를 담당.

 

2. Data Link (=데이터 링크 계층)

 - 신호수준의 데이터 비트들이 물리계층을 통과하면 데이터블록을

  형성하는데,  이 데이터 블록에 대한 전송을 담당

 - 인접한 개방형 시스템간에 발생하는 다음과 같은 문제를 담당.

      ① 데이터 블록의 시작과 끝을 인식하는 동기화 문제

      ② 발생된 오류를 검출하고 복원하는 오류문제

      ③ 혼선 제어문제


 


3. Network (=네트워크 계층)

 - 송신측과 수신측 사이에 보이지 않는 논리적인 링크를 구성

 - 데이터를 패킷(packet)단위로 분할하여 전송한 후 조립함

 - 패킷 전송의 최적의 경로를 찾아주는 라우팅 기능 제공

 

4. Transport (=전송 계층)

 - 사용자와 사용자, 컴퓨터와 컴퓨터간에 연결을 확립하고 유지

 - 송수신 시스템간의 논리적인 안정과 균일한 서비스 제공

 - 세션 계층에서 넘어온 데이터를 세그먼트(segment) 단위로

  분할하고 번호를 붙임

 - 오류 검출 코드를 추가하고 통신 흐름 제어를 제공

 

5. Session (=세션 계층)

 - 세션을 확립하여 순차적인 대화의 흐름이 원활하게 이루어지도록

  동기화 기능 제공

 - 데이터 전송 방향 결정

※ session : 사용자가 접속중인 응용 프로그램을 한 쌍으로 연결하는 작업

 

6. Presentation (=표현 계층)

 - 데이터를 표현하는 방식을 다루는 계층

 - 데이터의 안정성을 높이기 위해 데이터 압축이나,

  데이터 암호화 기능 제공

 - 상이한 데이터 표현을 서로 가능케 하는 표준인터페이스 제공

 

7. Application (=응용 계층)

 - 사용자의 응용 PㆍG(Program)이 네트워크 환경에 접근하는

  창구역할을 하는 최상위 계층

 

 

OSI 7계층은 크게 하위계층과 상위계층으로 나눈다.
*상위계층(전송 계층, 세션 계층, 표현 계층, 응용 계층)
*하위계층(물리 계층, 데이터 링크 계층, 네트워크 계층)