Network-001 OSI 7 Layer


네트워크 프로그래밍(강의 1)

 프로토콜

   - 다양한 이 기종간에 통신(데이터 송수신)을 수행하기 위해서는 상호간의 약속이 필요하다
   - 이 약속을 프로토콜이라 한다.
   - ISO 에서는 OSI 7 Layer를 기초로 해서 프로토콜을 만들기를 권고 하고 있다.  
    
 OSI 7 Layer

 
   - OSI 7 Layer 각 계층은 바로 그 상위 또는 하위 계층과만 데이터를 주고 받는다.
   - 모듈화가 되어 있어 구현하기가 쉽다.(장점)
   - 다른 계층에 대해서는 완전히 독립적이다
   - 계층 구조의 본질적인 약점인 속도에는 손해를 보게 된다.(소프트웨어 가격 >> 하드웨어 가격)   -
   - TCP / IP 는 OSI 7 Layer 를 이용하여 설계되었다.  

  OSI 7 Layer : Physical Layer
 
  - 인접한 통신 단말기 간의 물리적 교신 표준을 정의한다.
        - 전기적인 신호 전압(Volt)은 얼마로 할까?
        - 통신에 사용하는 케이블은 어떤 규격의 것을 사용할까?

 OSI 7 Layer : Data Link Layer

   - 인접한 통신 단말기간에 실제 데이터를 전달하는 역할과 제어를 담당한다.
   - 데이터를 패킷으로 분할 / 흐름을 조절 / 에러 Checking / 에러발생시 재전송--> 일종의 규격
   - 데이터 링크계층이 데이터 송수신을 수행하지만, 인접한 단말기(게이트웨이 내의) 끼리의 통신

 OSI 7 Layer : Network Layer

   - '논리'적인 두 지점간의 데이터 전송을 담당하는 계층이다.(논리적인 지점은 물리적과 연관 X)
   - 하나의 게이트웨이 내에서 송수신 되는게 아니라 라우터를 벗어난 곳 까지 전송이 가능
   - 각각의 PC 마다 Mac address 가 아닌 구별할 수 있는 IP address 가 필요하게 된다. 
   - 즉 경로 '배정'과 '중계'가 필요하게 된다(Router가 필요)
   - 데이터를 중계하는 라우터에도 네트워크 계층까지는 구현되어 있다. 

 OSI 7 Layer : Transport Layer
  
   - 네트워크 계층에 전달되는 데이터의 에러와 순서를 찾아내고 필요하다면 다시 송수신을 하게 한다.
   - 물리적으로 멀리 떨어진 상태에서의 재전송을 담당(같은 게이트웨이 내에서는 Data Link Layer 담당)
   - 즉 논리적인 두 통신 단말기 사이의 흐름 제어와 에러 보정을 하게 된다.
   - Session Layer 에서 데이터가 크게 넘어오면 데이터를 작은 패킷으로 분할/재조합(역순)을 하게된다.
   - 데이터의 무결성과 송수신된 데이터에 대해서 순서의 정확성을 보장(올바른 데이터)
   
 OSI 7 Layer : Session Layer

   - 통신 단말기 사이의 세션을 구축하고 유지하며 종료시키는 역할을 한다.
     (Session 즉 일종의 데이터 전송시의 규약을 담당한다)
   
 OSI 7 Layer : Presentation Layer

   - 송수신된 데이터를 서로 상이한 기종에서 표현하기 위하여 송수신된 데이터에 대한 규약을 정한다.
   - 데이터 압축 방법이나 암호화 규약 같은 것이 해당(암호화 복호화)

 OSI 7 Layer : Application Layer
   
   - 네트워크 서비스를 제공하는 계층(실제 우리가 프로그램을 작성하는 계층)
 - 하위 계층의 데이터 송수신 작업을 이요해 특정 네트워크 서비스를 만드는 계층

  TCP/IP 와 OSI 7 Layer
 

  - 인터넷은 TCP/IP통신 프로토콜을 사용한다.
  - TCP/IP 는 OSI 7 Layer 를 기반으로 하지만 단순화 시켜서 4단계로 나눔(속도 향상을 위해)

 TCP / IP : Network Access Layer

   - 네트워크 장치를 만드는 하드웨어 제작 회사와 그 회사가 제공하는 네트워크 드라이버에 구현되어 있다.
   - 직접 함수를 호출 할 필요가 없다.(실제에는 TCP와 UDP 만 보고 코딩하면 된다)
   - 인접한 통신 객체(지점)들 간에 송수신시 사용하는 프로토콜
   - 통신장치를 식별할 수 있는 물리적 주소인 Mac address 를 사용한다. 
   - Mac address 는 지역내에서만 쓰기 때문에 중복 문제가 거의 발생하지 않는다(문제는 IP address 중복 문제이다)
  
 TCP / IP : Internet Layer

   - 상위 계층에서 보낸 데이터를 논리적인 통신장치까지 전송하는 역할을 수행한다.
   - 통신 지점이 물리적으로 멀리 떨어져 있는 경우 전송경로를 설정하고 라우팅 작업을 수행하게 된다.
   - 논리적인 통신장치를 식별하기 위한 주소(IP)를 사용

 TCP / IP : Transport Layer

   - 두 통신 지점사이에 오류가 없는 데이터 송수신을 수행한다. 
   - 두 통신 지점이란 물리적 하드웨어 내의 논리적 지점이다.
   - 물리적인 두 통신 지점은 IP주소에 의해 지정되며 트랜스포트 계층의 두 통신 지점은
     IP 주소를 기반으로 포트번호로 식별하는 하드웨어 내의 논리적 지점이다.
   - 대이터의 분할 / 재전송 또한 담당한다.

    TCP : 연결형 프로토콜 (논리적 연결) / 속도가 느리다 / 신뢰성이 있다
    UDP : 비연결형 프로토콜 (논리적 연결 없이 송수신) / 속도가 빠르다 / 신뢰성이 없다 / (ex : 인터넷 방송)
   
 TCP / IP : Application Layer

   - 다양한 네트워크 서비스와 어플리케이션 자체를 의미한다.
   - 개발자가 실제 개발해야 할 몫이다.

 계층별 헤더

   - TCP/IP의 각 계층은 이것을 구현하기 위해 실제 송신하는 데이터 외에 자신의 계층이 인식할 수 있는 헤더
     정보를 첨부하여 송신하게 된다.
   - TCP/IP의 각 계층은 헤더를 붙여 전송하고, 상대 컴퓨터의 해당 계층은 헤더 정보를 이용해 자신의 계층
      에서 수신한 데이터에 대해 처리한다.
   - Application Layer 에서 전송한 데이터는 여러 데이터로 분할해서 보내고 이 분할된 데이터를
     '세그먼트'라고 한다.
   - 트랜스포트 계층과 인터넷 계층에서 헤더 정보를 포함한 데이터를 
     '패킷'(상위 분할된 세그먼트에 헤더 포함)이라고 한다.
   - 프렘임이란 헤더 + 패킷 + 트레일러를 의미
 

by MeTalPooH | 2009/07/22 12:35 | Network | 트랙백 | 덧글(0)

◀ 이전 페이지다음 페이지 ▶