ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12. 응용 계층과 웹 응용 기법
    전공공부/컴퓨터 네트워크 2020. 2. 29. 23:40
    728x90
    반응형

    목차

    1. 응용 계층과 이메일 시스템

    2. DHCP 기술

    3. 웹과 웹 프로그래밍 기법

    4. 자바와 웹 응용 기법

    5. HTML5 기술

     

    12.1 응용 계층과 이메일 시스템

    - 최종 사용자가 직접 사용할 수 있는 여러가지 프로토콜과 서비스를 정의
    - TCP나 UDP가 제공하는 프로세스-프로세스 통신 서비스를 이용하여 유용한 기능을 수행
    - 보통 사용자는 TCP/UDP에 직접 접속하지 않고 응용 계층을 이용하여 통신 서비스를 사용하며, 응용 계층 프로그램은 시스템 SW가 아닌 응용 프로그램으로 제공

     

    응용 계층 프로토콜 및 서비스

    파일전송 프로토콜(FTP), 이메일 전달 프로토콜(SMTP), 동적 호스트 구성 프로토콜(DHCP), 하이퍼텍스트 전달 프로토콜(HTTP), 네트워크 관리  프로토콜(SNMP), 도메인명 서비스(DNS), 원격 로그인(Telnet), 네트워크 파일시스템(NFS)

     

    12.1.1 이메일 시스템

    이메일 서비스

    - 정보전송의 신속성과 편의를 위해 생겨났으며 활용도가 매우 높다. 최근에는 웹서비스를 기반으로 동작하는 웹메일의 형태로 주로 이용한다.

     

    다른네트워크 응용 서비스와 구별되는 점

    - 메시지 전달의 지연(delayed delivery)을 허용한다. 이 뜻은 전화의 음성메시지처럼 실시간으로 전달될 필요가 없다는 의미이다. 그렇지만 메시지 전달이 다소 지연된다 하더라도 보내진 메시지는 반드시 정상적으로 수신 측에 도달하도록 한다.

     

    12.1.2 동시처리(Spool) 기법

    메시지 전달에 있어서 지녕을 허용하기 위해 처리속도가 서로 다른 장치 간에 데이터를 처리하는 기법이다. 동시처리 기법은 고속 장치로부터 나오는 출력 데이터를 저속 장치의 입력으로 수용할 수 없는 경우, 보조기억장치를 사용하여 그 데이터를 임시적으로 보관한다.

     

    12.1.3 이메일 시스템의 구성

    구성요소

    사용자 에이전트(UA), 우편함과 동시처리(spool)영역, 메시지전달 에이전트(MTA), 가명확장(alias expansion), 데이터베이스 등

     

    사용자 A가 사용자 B에게로 이메일을 보내는 경우

    사용자 A는 인터페이스를 통해 UA에 접근하고, UA를 이용하여 이메일을 작성

    가명 확장 기술과 MTA 클라이언트를 이용하여 작성된 메일을 전송

    인터넷을 경유하여 사용자 A의 메시지는 사용자 BMTA 서버로 전달

    MTA 서버는 가명확장기술과 동시처리 기술을 연계하여 우편함에 메시지를 전달

    사용자 BUA를 이용하여 우편함에 접근해서 보관되어 있는 메시지를 읽음

     

    사용자 B가 사용자 A에게로 이메일을 보내는 경우

    사용자 B가 인터페이스를 통해 UA에 접근하여 UA를 이용해 이메일을 작성

    가명확장 기술과 MTA 클라이언트를 이용하여 이메일을 전송

    사용자 B의 메시지는 인터넷을 경유하여 사용자 AMTA 서버로 전달

    MTA 서버는 가명확장 기술과 동시처리 기술을 연계하여 우편함에 메시지를 보냄

    사용자 AUA를 이용하여 우편함에 접근해서 보관되어있는 메시지를 읽음

     

    12.1.4 사용자 에이전트(UA)

    UA는 사용자에게 이메일 메시지의 전송과 수신을 보다 원활하게 해주는 소프트웨어 패키지(또는 프로그램)이다.

    메시지 작성, 읽기, 응답, 전방위 전송, 우편함 처리 등의 기능을 수행하고, mail,pine,elm등의 명령어 기반으로 수행된다.

     

    12.1.5 SMTP와 메시지 전달 에이전트 (MTA)

    SMTP(Simple Mail Transfer Protocol)

    - 메시지 전달 에이전트(MTA) 클라이언트와 MTA 서버를 정의하는 프로토콜

     

    MTA

    - 메시지를 전달하는 소프트웨어 프로그램

     

    이메일 전송 시스템의 전송 과정

    SMTP는 하나의 SMTP 클라이언트를 구성하고, 목적지의 장치 이름과 IP 주소를 일치시키고, 목적지 장치와 메일 서버까지의 TCP 연결 시도

    ➋ 전송 프로세스는 메시지의 복사본을 원격지의 SMTP 서버까지 전송하고, 이를 원격시스템의 동시처리 영역에 저장

    수신 측 SMTP 서버가 메시지 수신 -> 동시처리 영역에 저장하였다는 것이 확인되면 전송 측 SMTP 클라이언트는 복사본 삭제

     

     

    12.1.6우편함과 가명확장

    메일 전송 시 사용되는 이름은 장치에 할당되는 이름과는 독립적이다. 우편함 주소는 사용자의 ID와 동일하고 목적지 장치 이름은 일반적으로 도메인 이름과 동일하게 구성된다.

     

    12.1.7 이메일 주소

    이메일 전송 시스템에서 사용하는 주소로, 간단하고 기억하기 쉽도록 구성된다. 도메인 이름 + 지역 영역으로 구성

     

    12.2 DHCP 기술

    12.2.1 DHCP란? 

    인터넷 사용의 급증으로 IPv4를 기반으로 하는 인터넷 구조로는 호스트 주소의 부족 등 사용자의 요구를 충분히 충족시키기가 어렵다. 이에 대한 해결책으로 IPv6로 대체중이지만 IPv6가 완전하게 IPv4를 대체하지는 못했다. 따라서 한정된 IP주소를 보다 효율적으로 사용하는 방안으로 동적 IP기법인 DHCP 기술이 개발되었다.

     

    DHCP (Dynamic Host Configuration Protocol)

    정적 혹은 동적으로 IP 주소를 할당하는 기능을 정의하는 프로토콜이다.

    DHCP 규격은 RFC 1533,1534,1541,1542 등에 의해 규정된다.

    일반적으로 DHCP 클라이언트가 IP 대여를 요청하며, DHCP 서버는 IP 대여서비스를 제공한다는 메시지를 보낸다. 이때 클라이언트는 broad cast방식으로 전송하기때문에 여러 DHCP 서버 중 하나의 서버를 선택하여 IP 대여서비스를 받고 서버는 IP 대여를 했음을 확인하고 동작을 종료한다. 그리고 요청을 받지 않았던 다른 DHCP 서버들은 다른 클라이언트의 IP요청을 위해 임시로 IP를 보관한다.

     

    좀 더 자세히 살펴보자.

    12.2.2 DHCP 의 동작

    DHCP의 첫 단계 (대여요청 및 제공)

    DHCP 클라이언트는 부팅 시, IP 주소를 할당받기 위해 네트워크 IP주소 요청 패킷인 DHCPDISCOVER를 보낸다.

    DHCPDISCOVER 패킷 내용은 다음과 같이 발신지 IP 주소, 수신지 IP 주소, 자신의 하드웨어 주소(MAC)로 구분되어 있다.

    이를 DHCP 서버에 요청하게 되면 발신지 IP,수신지 IP등이 채워져서 받게 된다.

     

    두 번째 (서버의 응답)

    라우터가 중간에 있는 경우 라우터는 RFC 1542를 따라 'DHCP 클라이언트가' 어떤 서브 네트워크에 연결되어 있는지DHCP 서버가 판별할 수 있도록 하고 서브 네트워크에 적절한 IP 주소를 할당한다.

    만약 다수의 DHCP 서버를 가정해보자.

    DHCP 서버은 클라이언트로부터 이런 요청을 받으면 클라이언트에게 DHCPPOFFER 패킷을보낸다.

     

    DHCPPOFFER 패킷

     

    만일 모든 DHCP 서버에서 응답이 없다면, 9, 13 ,16초 간격마다 (0~1000msec)에 해당하는 임의 시간 추가하여 재시도한다.

    4회의 시도에도 응답이 없다면 포기하고 이후 5분마다 다시 DHCP 서버에 접속을 시도한다.

    클라이언트로부터 요청을 받은 모든 DHCP 서버는 클라이언트에게 응답을 보내고, 클라이언트는 그 중에서 한가지를 선택한다.

     

    세 번째 (서버 선택 후 IP주소 대여)

    클라이언트가 어떤 특정한 하나의 서버에서 IP주소를 대여하겠다고 선택한다면 다른 서버에도 이러한 사실을 알릴 필요가 있다. 즉 이 과정은 클라이언트가 자신이 선택한 DHCP서버에 DHCPREQUEST 패킷을 전송하고 서버가 받으면 DHCPACK 패킷을 클라이언트에게 전송한다. 즉 이러한 패킷을 보내는 서버는 클라이언트가 선택한 IP를 대여하겠다는 서버 뿐이다! 나머지 서버들은 자신의 대여가 선택되지 않음을 알고 다른 클라이언트에게 대여하기 위해 IP를 보관한다.

     

    네 번째 (IP 대여 재경신)

    IP주소의 대여 기간이 종료되기 전에 IP주소를 갱신하여 기간을 연장하는 메커니즘이다. 만약 대여기간이 1/2이 지났다면 IP주소를 대여했던 서버에 DHCPREQUEST 요청 패킷을 전송한다. 이때 클라이언트는 자신의 IP주소를 갖고 있고, 어느 서버가 대여했는지를 인지하고 있어서 , 정확한 IP주소를 패킷에 기입할 수 있다. 어쨌든 DHCPREQUESTDHCP를 받은 서버는 IP 주소의 대여기간을 다시 갱신하게 된다.

     

    12.3 웹과 웹 프로그래밍 기법

    12.3.1 웹과 웹 브라우저의 기능

    웹(WWW)과 웹 프로젝트

    정보의 저장소라고 할 수 있는 웹은, 수많은 서버로 사용자가 손쉽게 접근하여 다양한 정보를 얻을 수 있도록 하기 위해 하이퍼텍스트 구조 형식을 취한다.

     

    웹 브라우저

    웹 정보를 검색하기 위한 프로그램으로써 하이퍼텍스트의 구조뿐만 아니라 각종 언어의 문서들을 검색할 수 있다.

    microsoft사의 익스플로어, 구글의 크롬, 파이어폭스 등이 웹 브라우저의 대표적인 예이다.

     

    12.3.2 웹 브라우저의 구조

    구성요소: 제어기, 클라이언트 프로토콜, 해석기로 구분

    제어기 : 입력장치부터 입력을 받아 클라이언트 프로그램을 사용하여 웹 문서에 접근

    클라이언트 프로토콜 : FTP, TELNET, HTTP 등이 있음

    해석기 : HTML, 자바(java), 혹은 자바스크립트 등이 사용됨

     

    12.3.3 URL이란?

    URL (Uniform Resource Locator)

    웹 문서가 있는 위치, 사용하는 프로토콜, 특정 웹 페이지를 지정하는 파일명 등에 대한 구체적인 정보를 나타낸다.

    여기에 쓰이는 

    프로토콜: 웹 문서를 검색하는 FTP, HTTP, News, TELNET과 같은 클라이언트 서버 프로그램

    호스트: 정보가 위치하고 있는 호스트 컴퓨터

     

    12.3.4 하이퍼텍스트 전달 프로토콜 (HTTP)

    하이퍼텍스트: 인터넷 사용자(클라이언트)가 필요한 정보의 자유로운 검색을 가능하도록 해주는 텍스트의 전개방식

     

    HTTP: 하이퍼텍스트 방식의 정보를 교환하기 위한 하나의 규칙

    -> 웹 서버와 클라이언트가 상호 데이터통신을 하기 위해 사용하는 하이퍼텍스트 전송 규약이다.

     

    HTTP 처리과정: '요구(request)'메시지와 '응답(response)' 메시지로 이루어진다.

    -> 웹 클라이언트가 요구 메시지를 보내면 HTTP 처리과정이 개시되고, 이에 대한 응답으로 서버가 응답 메시지를 보낸다.

     

    12.3.5 요청 메시지와 응답 메시지의 구성 형식

    요청 메시지의 요청라인과 응답 메시지의 상태라인을 통해 어떤 상태 라인(URL, HTTP)으로 전송했는지 알 수 있다.

    또한 요청 유형으로는 사용하는 메소드가 무엇인가에 따라 구분한다. 메소드로는 다음과 같이 여러 메소드가 있다.

    GET : 서버로부터 웹 문서를 요청할 때 사용

    HEAD : 문서 자체가 아니라 문서와 관련된 정보를 요청할 때 사용

    POST : 클라이언트에서 웹 서버로 정보를 전송하고자 할 때 사용

    PUT : 서버가 클라이언트로문서를 보낼 때 사용하는 메소드

     

    12.3.6 하이퍼텍스트 (hypertext)

    문서를 보다 쉽게 검색이 가능하도록 문서의 일부를 다른 문서와 연결(hyperlink)시킨 텍스트이다.

    사용자가 하이퍼링크로 작성된 임의의 그림이나 글자를 클릭하면 곧바로 그 글자나 그림이 연결된 부분으로 연계되도록 한다. 일반적으로 홈페이지는 하이퍼링크로 연결된 문서들의 집합으로 작성된다.

     

     

    12.3 웹과 웹 프로그래밍 기법

    12.3.1 HTML (HyperText Markup Language)

    웹 문서를 작성하는 데 사용되는 일종의 프로그램 언어

    HTML 문서는 다른 언어와 달리 마크업 언어로 구성되어 있어서, 운영체제의 종류와 상관없이 웹 브라우저만으로도 프로그램을 실행할 수 있다.

     

    마크업이란? 문서작성 시 태그(tag)를 중심으로 하여 명령을 내리거나 지시를 하는 것

    마크업의 기본적인 태그 명령어

     

    12.3.2 HTML을 이용한 웹 페이지 작성과 동작

    HTML을 이용하여 웹 페이지를 작성하려면 -> HTML 문서를 제작할 수 있는 편집기와 HTML 문서를 볼 수 있는 웹 브라우저만 있으면 된다.

     

    12.3.3 웹 프로그램의 동작

    사용자(클라이언트)가 HTTP를 이용하여 웹 서버로 요구 메시지를 보내면, 서버는 HTTP를 이용하여 '홈페이지.html'을 포함하는 응답 메시지를 전송한다.

     

    사용자의 브라우저는 HTML 해석기를 동작시켜 '홈페이지.html'의 내용을 화면상에 나타낸다.

     

     

    12.4 자바와 웹 응용 기법

    12.4.1 자바

    자바(java) 프로그래밍 기법

    - 적극적으로 웹을 사용하여 사용자 상호 간의 대화형 서비스를 가능하게 해주는 기술

    - 1991년 선 마이크로 시스템(Sun Microsystems)에서 개발 시작

    - 제임스 고슬링 :  당시 단순하고 버그가 없는 가전 전자 제품을 만드는 것을 목적으로 소프트웨어 개발에 착수

    - 초기에는 C++의 컴파일러를 확장하는 방법을 사용하려 했으나, C++가 특정 CPU에 따라 컴파일

        작업이 실행되어야 하는 속성 때문에 서로 다른 장치들을 연결해야 하는 환경에서는 적합하지 못함 -> 여러 환경에서 작업할 수 있는 호환성이 좋지 못함

    - 다양한 가전제품에 독립적으로 적용될 수 있는 새로운 프로그래밍 언어가 개발 필요  à 결과로 오크(Oak)라는 프로그래밍 언어가 탄생 -> 이후 오크(Oak) 자바(java)로 이름 변경

     

    12.4.2 애플리케이션과 자바 애플릿

    자바 프로그램

    CC++ 프로그램처럼 에디터를 이용하여 소스 파일을 작성하고, 자바 컴파일러를 이용하여 실행 파일을 생성

     

    자바 실행 파일

    - ‘바이트코드(bytecode)’라는 형식을 사용

    - 이유? 하드웨어나 운영체제와 관계없이 프로그램이 실행되도록 하기 위해

    자바로 작성된 응용 프로그램은 다양한 하드웨어와 운영체제에서 변경 없이 실행 가능

     

    자바 ‘애플릿’

    - 웹 브라우저를 통해서 곧바로 실행 가능한 프로그램

     

    자바 ‘응용프로그램’

     

    - 웹 브라우저가 없어도 독립적으로 실행 가능한 프로그램

     

    자바 소스 파일의 생성과 컴파일, 실행 과정

    -> [그림 12-20]

    - Name.java’라는 자바 소스 파일 작성

    - ‘Name.java’ 파일을 컴파일하면Name.class파일 생성

    - 이렇게 생성된 Name.class 파일을 HTML 파일로

        변경하고 웹 브라우저를 이용해 실행시켜 결과 확인

     

     

    12.4.3 자바 프로그램의 특징

    ➊ 자바 프로그램은 비교적 단순한 구조를 취하므로 손쉽게 프로그램을 작성할 수 있음

    - 자바는 널리 사용되는 객체지향 언어인 C++와 매우 유사한 구조를 가짐

     

    ➋ 자바는 모든 것이 객체로 취급되는 객체지향 언어이지만, C++에서와 같이 전역변수와 독립함수를 사용하지 않고 객체들 간의 상호작용 방식이 적용됨

    - 하나의 객체는 객체의 상태를 나타내는 데이터 변수와 객체의 동작을 정의하기 위한 함수로 구성

    - 데이터와 함수를 객체라는 단위로 묶음으로써 코드 관리 및 유지가 용이

    - 중요한 데이터를 객체 내에서 처리되도록 하여 필요한 경우에만 데이터에 접근이 가능

     

      자바는 특정 플랫폼(platform)이 아님. 그래서 다양한 네트워크 환경과 하드웨어에서 동작이

        가능하도록 설계됨

    - 다양한 운영체제와 언어 환경에서도 실행이 가능

    - 자바 컴파일러는 ‘바이트 코드’라는 중립적인 코드를 사용하여 플랫폼에 대한 독립성을 유지

     

    ➍ 높은 신뢰성과 안정성을 고려하여 설계됨

    - 컴파일을 수행할 때에 엄격한 데이터 형을 검사함으로써 프로그램 실행 시 발생할 수 있는 비정상적인 동작 최소화

     

    ➎ 자바는 멀티스레드(multi-thread) 기능을 제공함

    - 멀티스레드:하나의 프로그램 안에서 여러 작업을 동시에 처리할 수 있는 기능

     -> () 웹 브라우저를 통해 파일을 다운받으면서 동시에 다른 사이트를 검색이 가능하도록 하는 기능

     

     

    728x90
    반응형

    댓글

Designed by Tistory.