데이터 네트워크의 2가지 형태
< 이더넷(Ethernet), 토큰링(TokenRing) >

    1.  이더넷이란?
  • 이더넷이란 네트워크를 구축하는 방식 중 하나로, 우리나라에서는 대부분이 이더넷 방식을 사용하고 있다.
  • 이더넷 방식의 가장 큰 특징은 CSMA/CD(Carrier Sense Multiple Access/Collision Detection) 방식으로 통신한다는 것인데, 이 방식은 컴퓨터가 네트워크를 살펴봐서 아무도 통신하고 있지 않으면 무조건 자기 데이터를 실어서 보낸 후 잘 갔는지 확인해보는 방식이다. 그런데 만약 동시에 2개의 컴퓨터에서 데이터를 실어 보내려고 하면 충돌이 발생하게 되는데, 이것을 '콜리전(Collision)'이라고 한다. 이렇게 콜리전이 발생하면 이 두 PC는 자신이 보내려던 데이터를 랜덤한 시간동안 기다렸다가 다시 보내게 된다.



    2. 토큰링이란?
  • 토큰링 방식은 네트워크에서 오직 한 PC, 즉 토큰을 가진 PC만이 네트워크에 데이터를 실어 보내는 방식이다.
  • 데이터를 보내고 나면 토큰을 옆 PC에 전달한다. 만약 전송할 데이터가 없다면 토큰을 다시 옆 PC에 전달한다.
  • 이렇게 토큰을 옆으로 전달하는 방식이 토큰링이다.
  • 장점 
    • 충돌(Collision)이 발생하지 않는다. 토큰을 가진 PC만이 데이터를 전송하므로
    • 네트워크에 대한 성능을 예측하기 쉽다.
  • 단점
    • 지금 바로 보내야 할 데이터가 있고, 다른 PC들은 보낼 데이터가 하나도 없더라도 토큰이 올 때까지 기다려야한다.
  • 토큰링 프로토콜은 IBM이 처음 개발. 지금은 이더넷의 발전으로 사라지고 있음.




 요즘 서버를 구현하는데 있어서 기본지식의 부족함을 느꼈다. 개념 하나를 몰라서 찾아보면 또 모르는 개념이 나오고 이게 반복되다보니 무지함을 많이 느껴서 
앞으로 모르는 것이 나올때마다 하나씩 포스팅하려고한다.

 일단 클라이언트와 서버 개념부터 잡고 간다. 많이 들어봤고, 대충 알지만 정확하게 익히는게 좋을 것 같아서다.
이 글은 http://cupjoo.tistory.com/   이 블로그를 참조했다. 

  1. 웹 클라이언트와 서버.

     1) 클라이언트와 서버

  

  기본적으로 클라이언트와 서버는 웹 브라우저에서 특정 페이지를 요청하면 웹 서버는 해당 페이지를 반환해주는 역할을 한다. 초창기 웹이 출현했을 때는
 논문 열람 사이트와 같은 정적인 웹 페이지들을 하이퍼링크로 연결하는 것이 전부였기에 위의 구조가 유행했었다.

  하지만 점차 사용자가 늘어나자, DB를 통해 여러 데이터를 입력하고 조회할 수 있는 기능과 동적 페이지에 대한 필요성이 대두되었고, 새로운 서버 모델이 필요하게 되었다.

       
    2) 정적 페이지와 동적 페이지

 그렇다면 정적 페이지와 동적 페이지는 도대체 차이가 뭘까? 두 페이지의 차이는 페이지를 요청한 사용자의 정보와 현재 시점에 따라 내용이 변한다는 것이다. 우선 정적 페이지에 대해 알아보자.


정적 페이지는 서버에 미리 저장되어 있으며, 주로 HTML, CSS, Javascript, 이미지만으로 이루어져 있다. 사용자가 페이지를 요구하면 서버는 해당 정적 페이지를 반환해주는 역할만 한다.

 정적 페이지로 웹 페이지를 제작했다고 했을 때, 해당 페이지는 누가, 언제 열람하더라도 같은 내용이 유지된 상태로 사용자에게 보여진다. 물론 Javascript를 통해 글자의 색 파란색으로 바꾼다던가, Building의 정보를 411로 바꾸는 등 사이트를 동적으로 제어하더라도, 이는 사전에 정의된 동작으로 인해 결국 모든 사용자에게 같은 정보를 제공하므로 정적 페이지다.

그에 반면 동적 페이지는 사용자가 페이지를 요청할 시, DB로부터 얻은 해당 사용자의 정보나 현재 시점 정보 등을 가공하여 새롭게 생성한 페이지를 말한다. 페이스북 사이트를 예로 보겠다.




  로그인 하지 않은 경우, 위와 같은 화면이 나온다.



 로그인을 하게되면 사용자마다 모두 다른 게시물이 나오는 것을 알 수 있다.




  1.  CGI
         
   위에서 설명한 동적 페이지를 사용자에게 제공하기 위해 웹 서버 내에 프로그래밍 기능이 들어가는 방식을 CGI라고 한다.

 하지만 CGI 방식의 경우 웹 서버에서 각각의 클라이언트 요청에 대해 독립적인 별도의 프로세스를 생성해 요청을 처리하므로, 시스템에 부하가 커져 문제가 발생하게 된다.



  1. 웹 어플리케이션 서버
           
 1) 개념

CGI 방식의 문제점을 해결하기 위해 나타난 것이 웹 어플리케이션 서버이다. 웹 어플리케이션 서버는 웹 서버와 DB 서버 사이에서 미들웨어로서, DB 연동 및 동적 페이지를 생성하기 위한 처리를 한다.




요즘은 웹 어플리케이션 서버에서도 웹 서버의 기능을 제공하는 경우가 많다. 그렇다면 이제는 웹 서버가 굳이 필요할까? 라는 의문이 들 수도 있는데, 실제로 웹 서버의 경우 단순 이미지나 html파일 등의 리소스로 이루어진 정적 페이지를 보다 빠르고 안정적으로 사용자에게 제공할 수 있다.


그 외에도, 캐시 기능, 프록시 기능 등을 비롯해 접속 가능한 클라이언트 수 제한 및 처리 프로세스 관리, 요청 및 응답 로그 기록, 안정성 확보를 위한 인증 제어 및 암호화 처리 등의 기능을 제공하기에 지금도 많은 사이트들이 두 서버를 같이 사용한다.

           
 2) 실제 서버 구조

현재 Node.js와 더불어 가장 핫한 웹 프레임워크 중 하나인 Django의 실제 서버 구조는 다음과 같이 구성되어 있다.

-웹 서버 Nginx는 정적 데이터 반환과 함께 리버스 프록시, 캐시 기능 등을 제공하며, 동적 데이터 처리 시에는 웹 어플리케이션에 브라우저 요청을 전달한다.
-웹 어플리케이션 서버에서 실행중인 웹 어플리케이션 Django는 MariaDB와 연동하여 데이터를 처리한 뒤, 템플릿을 렌더링해 생성한 HTML 파일을 브라우저에 반환한다.
-WSGI 미들웨어의 한 종류인 Gunicorn은 Nginx와 Django가 통신하기 위한 인터페이스 역할을 한다.


'데이터통신 & 네트워크' 카테고리의 다른 글

이더넷과 토큰링  (0) 2019.01.07
데이터통신 시스템&데이터 흐름 방향  (0) 2018.09.28

 
 데이터 통신 시스템


  • 메시지 - 메시지(Message)는 통신의 대상이 되는 정보,즉 데이터. 텍스트, 숫자, 그림, 소리, 화상 등.
  • 송신자 - 송신자(Sender)는 데이터 메시지를 보내는 장치. 컴퓨터, 전화기, 비디오 카메라 등.
  • 수신자 - 수신자(Receiver)는 메시지를 수신하는 장치. 컴퓨터, 전화기, TV 등.
  • 전송매체 - 전송매체(Medium)는 메시지가 전송자로부터 수신자에게까지 이동하는 물리적 경로. 꼬임상선(twisted pair wire), 동축 케이블, 광섬유 케이블, 레이저, 무선파 등.
  • 프로토콜 - 프로토콜(Protocol)은 데이터통신을 통제하는 규칙의 집합이다. 프로토콜은 통신하고 있는 장치들 사이의 상호합의를 나타낸다. 프로토콜이 없다면 통신장비가 연결되어 있어도 서로 통신할 수 없게 된다.


데이터 흐름 방향

  • 단방향 (Simplex)
    • 단방향 방식(simplex mode)에서 통신은 한쪽 방향으로만 일어난다.
    • 하나의 링크에 연결되어 있는 두 기지국에서 한쪽은 전송만 할 수 있고, 다른쪽은 수신만 할 수 있다.
    • ex) 자판과 모니터.




  • 반이중(Half-duplex)
    • 반이중 방식(half-duplex mode)에서 각 기지국은 송신과 수신이 가능하지만, 동시에 할 수는 없다.
    • 한 장치가 송신하면 다른장치는 수신만 할 수 있게 된다.
    • 양방향으로 통행이 가능한 외길과 같다. 
    • ex) 워키토키와 민간방송용 라디오(CB radio)




  • 전이중(full-duplex, duplex)
    • 전이중 방식(mode)은 두 대의 단말기가 데이터를 송수신하기 위해 동시에 각각 독립된 회선을 사용하는 통신 방식.
    • 전이중 방식은 양방향으로 통행이 가능한 2차선 도로와 같다.
    • 전이중 방식에서 신호는 링크의 용량을 공유해서 양방향으로 전달된다.
    • ex) 전화망, 고속 데이터 통신




'데이터통신 & 네트워크' 카테고리의 다른 글

이더넷과 토큰링  (0) 2019.01.07
클라이언트와 서버  (0) 2018.12.31

+ Recent posts