Computer Network(Top-down) - Application Layer

in #network7 years ago

It is just my opinion, so don't you attack me. please!

But if this posting has some incorrect informations, you comment about that

Please!!

Application Layer


  • TCP vs. UDP
    · TCP
    ✔︎ TCP는 reliable data transfer를 보장함.
    ✔︎ Flow control(sender가 데이터를 너무 빨리 보내는 것을 제어)
    ✔︎ Congestion control을 해줌.
    ✔︎ timing, throughput, 보안을 보장해주지는 않는다.
    ✔︎ 연결 지향적이다.
    ✔︎ 알아서 순서를 맞춰줌.
    · UDP
    ✔︎ 위의 어떤 것도 보장해주지 않는다.
    ✔︎ 그렇다면 UDP는 언제 사용하는가? 동영상이나 VoIP를 생각해보자. 이야기를 하다가 잡음이 들리면 우리는 깨끗한 음성으로 다시 들어야하는가? 아니다. 이런 경우에 UDP를 사용한다.즉, 재전송이 필요 없는 경우에 사용한다.

  • WEB & HTTP
    · HTTP
    서버로부터 html 파일을 받아서 client에게 제공해주는 프로토콜로 특징은 Client의 요청을 기억하지 않는다.
    · Non-Persistent HTTP - 한 번에 하나의 Object를 전송함.
    · Persistent HTTP - 여러 개의 Objects를 한 번의 연결로 전송할 할 수 있음. 대략 2배정도 빠름
    · cookies - 웹 브라우저에 저장되며, Server가 가지는 것이 아니라 support를 할 뿐이다. 또한 HTTP response의 Cookie header line이 존재한다.

    ✔︎ 처음 어떤 사이트에 들어가면 HTTP requst를 요청하게 된다. 이후 server에서는 response를 통해 데이터를 전송하고 필요한 정보를 client측 웹 브라우저에 저장하게 됨.
    ✔︎ 그리고 나중에 Client가 다시 접속을 하면 request에 cookie header line이 존재하게 된다.
    · Web caches - proxy server라고도 하며, client와 물리적거리가 짧은 곳에 server를 두어 캐시로서의 역할을 하도록 함. 일반적으로 ISP에서 설치한다.
    ✔︎ 99%의 이용률을 가지고 있다면? 아주 심각한 상태임, bursty traffic 상황이 발생한다면 터질 수 있음.
    ✔︎ 해결 방법1 - Access link capacity를 100배 상승 시킨다면? 이용률이 9.9%까지 떨어지지만 경제적인 문제가 발생한다.
    ✔︎ 해결 방법2 - local에 web cache를 둔다. server를 한 번 사기만 하면 되므로 경제적으로 저렴하고 이용률도 상당히 줄일 수 있다.

  • Electronic mail
    · SMTP(메일 전송 프로토콜)
    HTTP가 Pull 방식이었다고 한다면, SMTP는 Push 방식이다.
    Mail server는 User에게서 오는 메일를 저장한다.

    ✔︎ A는 mail server1에 메일을 전송한다.
    ✔︎ mail server1은 mail server2와 TCP로 3hand-shaking을 하고 세션을 생성하고 메일을 Push한다.
    ✔︎ B는 mail access protocol를 통해서 mail server2로부터 메일을 Push 받는다.
    ✔︎ 세션의 유효성이 확인되면 mail server2가 B에게 메일함에 있는 메일을 전송한다.

  • DNS(Domain Name System)
    ✔︎ DNS가 필요한 이유는 IP와 인간 친화적인 주소를 매핑하기 위해서이다.
    ✔︎ DNS server의 종류로는 root, TLD(org, com, edu), authoritative name server들이 있다.
    ✔︎ Root의 역할은 authoritative name server에 접근하여 적절한 매핑을 얻는 것이고, 매핑을 local name server에 반환 해준다.(보통은 보안적인 문제로 하지 않는다)
    ✔︎ local name server(보통 residential ISP, 회사, 대학들이 가지고 있고, default name server라고 불린다)의 역할은 end-host들이 요청한 DNS query를 받고 해석하여 해당 매핑을 찾는다. 없으면 TLD로 가는 것이 보통이고, TLD에도 없으면 root로 root에도 없는 경우는 root에서 authoritative DNS server의 IP를 알려준다.

    ✔︎ 위와 식으로 iterated하게 하는 것이 일반적이고 recursive적인 방법도 있지만 overhead가 크다.
    ✔︎ 업데이트를 위한 TTL이 존재 함. DNS는 application layer에 속하고, 또 Best effort인 특징을 갖는다. 즉, 최선은 다하지만 보장은 할 수 없음.

  • Client - Server 구조
    · Server는 항상 켜져 있고, 고정 IP를 갖는다.
    · 많은 경우 데이터 센터에 Server들을 설치한다.
    · Client끼리 직접소통은 할 수 없고, Server를 통해 통신해야 한다.

  • P2P 구조
    · 직접 end-host끼리 통신을 할 수 있다.
    · P2P를 사용하는 컴퓨터가 켜지면 Server capacity가 증가하며, client로서의 수요또한 증가한다.
    · 동적 IP를 사용한다.
    · 제공과 수요를 동시에 한다. Server, Client 두 가지 역할을 동시에 수행한다.
    · P2P를 사용할 경우, Client process와 Server process 둘 다 설정해야한다.

  • File sharing in environment of Client-Server OR P2P
    · Client-Server
    ✔︎ Server가 각 Client에게 따로 N번의 업로드를 하여 전송해야 한다.
    ✔︎ N개의 파일 카피가 지나가야하기 때문에 NF / Us의 시간이 걸림
    ✔︎ Client는 다운로드만 하면 됨. F/d(min)의 시간이 걸림.


    Dc-s >= max{NF / Us, F/d(min)}

    · Client-Server
    ✔︎ 최소 하나의 카피만 있으면 된다.
    ✔︎ 다운로드 속도는 F/d(i), N명이 전부 받아야 함.
    ✔︎ 최대 업로드 속도는 Us + sigma(1~i) {Ui}, 이런 업로드 속도로 NF의 양을 다운 받으면 최소로 전부 받는 시간이 정해진다.

    DP2P > max{F/us, F/dmin, NF/(us + Sui)}


  • Video Streaming and CDNs
    · Video & CDNs
    ✔︎ 비디오는 html 요청보다 용량이 크며, 지속성을 요구한다. 하나의 서버로는 절대로 감당할 수 없다. 따라서 분산을 시키고 용량을 줄여서 보낼 수 있는 방안들을 찾아 적용시킨 뒤 전송하는 방식을 사용하고 있다.
    ✔︎ 용량을 줄이기 위한 노력으로 Encoding을 하는 방식이 있다. 예를 들면 같은 공간에서 같은 값을 갖는 pixel을 압축하는 방법과 프레임간의 차이만 보내는 방식이 있다.
    ✔︎ 또한 reliable을 위해서 server에 3가지의 resolution을 갖는 각 파일을 저장한다. 이후 네트웍 환경에 맞게 resolution을 선택하여 reliable을 유지한다.
    ✔︎ 영상을 여러 서버에 분할 저장한 뒤, menifest를 이용하여 각 청크를 마치 P2P처럼 불러와 성능을 높이는 방법도 있다. (이런 것을 CDNs)

  • Socket Programming
    · Socket - app단에서 transport layer와 연결될 때의 매개체 역할, app의 특성에 따라 transport layer를 결정해야 한다.(TCP, UDP)

Coin Marketplace

STEEM 0.16
TRX 0.25
JST 0.034
BTC 95656.37
ETH 2680.80
SBD 0.68