application layer

박진은·2022년 5월 16일
0

컴퓨터 네트워크

목록 보기
11/12

application layer

application layer

protocol stack의 가장 위에 존재한다

사용자가 직접 접하는 protocol

다양하며 시대에 따른 변화가 크다

overview of application layer

  • portocol 과점에서서의 application
    • socketd을 통해 transport layer와 소통한다
  • application layer가 존재하는 end system끼리 소통
    • socket의 건너편은 상대방 end system 끼리 소통
  • application architecture
    • client server vs peer to peer(P2P)

process and socket

  • process: end system의 os상에서 동작하는 프로그램객체
    • 서로다른 process끼리 message를 주고 받으면서 동작
    • socket 을 통한 통신을 주도하는 주체
  • socket interface between process and netowrk(인터 페이스, 네트워크과 프로세스 사이의)
    • process에게 있어서 network로 나가는 문과 같은 존재

    • ip address port number 로 identify가 됨. 소켓이 지정된다.

    • 소켓하나가 프로세스 하나에 연결된다.

    • 애플리케이션 안에 멀티 프로세스가 존재하고 각 프로세스에 하나의 소켓이 배정되는것

    • 따라서 애플리케이션에는 여러개의 소켓이 배정된다.

      transport service

      전송 L4 이하 계층 관점에서의 요구사항

    • transport layer에게 바라는 점

      스크린샷 2022-05-15 오후 3.45.44.png

      elastic - 탄력저긴 여기서는 데이터 통신량이 탄력적이여도 된다는 의미로 사용된거 같은느낌

      실시간이 중요한 서비스는 pdu loss를 허락하고 time sensitve하지만 그렇지 않는 경우에는 이를 보완하기 이위해서 pdu loss를 허용하지 않는다 예를 들어서 email같은 경우엔 정확한 정보를 원하고 실시간 지원이 아니기 때문에 pdu loss를 혀용하지 않는다

      Web and HTTP

    • 1990년대 초 world wide web 이 시초가됨

      • 이전의 internet 은 host간 파일 등의 전문 부냐의 정보교환에 국한되어 활용되옴
      • web을 통해 시각적으로 정보를 표현하기 시작하면서 대중적으러 internet이 활용되기 시작
    • hyperText Transfer Protocol(HTTP)
      - web을 실현해주는 전송 프로토콜
      - on demand기반 동작

      HTTP overview

    • RFC1945, 2616

      • client server program 들이 서로 http messageㄹㄹ 교환하면서 동작하는 부분 정의
    • http관련개념

      • hypertext: 단순한 text차원을 넘어선 문서
        • hyperlink로 네트워크를 통한 다른 문서접근
      • web page: web - browser로 보는 page전체를 뜻하는 것으로 여러개의 object로 구성됨
      • object : 한가지 file(.html...voideo등)
      • 하나의 web page는 base HTML file 과 다수의 referenced object 들로 구성됨
      • url: 웹사이트 주소(hostname 과 경로로 구성됨)
    • web broser: http 내용을 시각적으로 보여주는 application

    • web server: SERVER 측 http 수행 개체이며 url의 host name에 존재

    • TCP 연결을 기반으로 동작

      • port 80
    • simpe stateless protocol

      • client 측에서 그때그때 필요한 것을 요구

      • server는 요구에 대한 단순응답

        http request / response

    • http 는 기본적으로 client 가 sever에게 hypertext의 구성요소를 하나씩 요청해서 받아가는 형채

      • client가 일일이 챙기고 ,server는 수동적으로 제공하는 역할
      • 한 object당 http request/ response 를 주고 받음
      • 여러 object는 주로 back to back으로 (연달아 전송)

non - perisistent vs persistent connection

  • non - persisitent : 하나의 object 전송 별로 tcp connection을 새로 생성
    • TCP con. 맺기 - http req. - http res. - TCP release
    • TCP연결이 3-way handshake임을 감안할 때, object마다 2 round trip time(RTT) 시간 소요
    • RTT(왕복 시간)는 네트워크 요청이 시작점에서 목적지로 갔다가 다시 시작점으로 돌아오는 데 걸리는 시간(밀리초)입니다.
    • server 에서 TCP연결 관리에 대한 부담이큼
  • persistent connection
    • 한번 TCP connection을 맺고 모든 object들을 전송
    • 다른 http file에 대해서도 같은 TCP connection으로
    • 일정 시간동안 tcp connection을 사용하지 않으면 release
  • pipeliniing
    • 동일 TCP connection 상에서 여러 http request를 동시에 보낸다.

http message format

  • http response message
    • status line: protocol version, status code, status message
    • 6 header lines : poersistent 여부, 전송 날짜 서버 프로그램, 생성날짜, 길이 , 내용형태
    • entity body: 실제 hypertext의 내용이며 object에 해당
    • entity body: 실제 hypertext의 내용이며 , object에 해당한다

HTML5

  • 차세대 웹 표준으로, 기존의 문서 보여주기에 차중한 http프로토콜 기능을 확장
    • 다양한 웹서비스를 외부 plug- in에 의존하지 않고 실현가능
    • java 기반으로 복잡한 기능을 가진 applicatio program과 연동된 웹 서비스 구동가능
  • 호환된/ 보안성 측면에서 웹 서비스를 한단계 업그레이드가 됨

cookies

  • http도 갈수록 더 복잡한 기능을 요구 받음
    • http는 기본적으로 stateless로 동작하며, 이로 인해 protocol 이 simple함
    • user identification등 state기반의 동작이 점차 필요함
  • http 에게 state를 가지게 해주는 것이 cookies(RFC 6265)
    • back - end database: web site 측에서 복잡한 state관리를 해줌
    • cookie header line in msgs: 번호 부여
    • cookie file in web brower: 번호저장
  • 초기 접속 시 1678 cookie 번호 부여
  • 추후 접속 시 cookie 1678을 명시하면 기존 저장된 state에 맞게 http response가 오고 web page가 뜸

web caching

  • web cache(proxy serve) : web server를 대신해서 http response msg를 전달해줌
    • 자신의 disk storage에 최근 request받은 object 복제 ㅓ장
  • web browser에서 proxy를 설정하면
    • http접속시 우선 web cache에 접속
    • 복제본이 있으면 곧바로 받고
    • 없으면 web cache 가 원래 server로 부터 받아옴
  • web cache는 보통 ISP에서 설치
    • 나의 network 내에 존재하는 proxy server에서 곧바로 받으므로 respose time 이 작음

    • 나의 network 내의 bottleneck 부분의 traffic양을 줄일 수 있음
      - 적은 용량으로 많은 http 요청 커버가능

      File Transfer Protocol

    • binary file등을 전송하기 위한 프로토콜

      • server에 접속해서 file system에 접근하는 방식
    • ㅅTCP or UDP

    • 오늘날은 보안 상의 문제로 잘 사용하지 않음

elecetronic mail

  • 가장 고정적이면서 여전히 많이 쓰는 internet의 steady seller app.
    • asynchronous communication medium
    • 기능 측면에서는 최근의 메신저 앱들과 유사
  • protocol 관점에서는 전세계적으로 공통된 모델이다
    • user agent/ mail server, simple mail transfer protocol(SMTP)

      SMTP

  • RFC5331: mail server 간 mail 을 주고받기 위한 프로토콜
  • mail serve는 SMTP를 통해 TCP연결을 통해 상대방 mail server에게 직접적으로 전달
    • 보통 long distance로 전달되며, 상대방 mail server에게 제대로 전달도기까지 한쪽 mail server가 mail내용을 보유
  • SMTP를 통한 세부 mail 전달과정
    • client SMTP(local mail server) → server SMTP(remote mail server)
      - TCP port 25연결 시도
      - handshaking 으로 mail 전송에 대한 사전 정보 교환
      - email address of sender and recipient
      - reliable data transfer through TCP

      Web based email

  • web browser를 통해 mail server에 접속하여 mail 내용확인
    • http 를 통해 message access를 함
    • 포털싸이트
  • 각 mail service provider의 특화된 기능 사용이 가능하다 mail 확인까지 추가적인 동작이 필요하며 mobile에는 부적합하다.

message access protocols

  • mail server에서 user agent 로 mail이 전달되기 위한 프로토콜
    • 상시 동작하는 mail server로부터 필요한 시점에 동작하는 agent host 가 mail을 받아가는 형태
      • vs. always-on방식과는 다름
      • inreachable destination상황에서도 전달가능
    • post office protocol version 3(POP3), internet mail access protocol(IMAP)

pop3

  • RFC 1939에 정의 되었으며, 매우 간단하면서도 제한된 기능을 가진다
    • user agent(client)가 TCP port110으로 연결 맺음
    • authorization : 사용자 인증(로그인)
    • transaction: 메세지 수신 및 삭제 처리 표시
      • client issuses cmd → server responds to each cmd
      • “download and delete vs download and keep
    • update : pop3연결 종료 시 수행하며, 삭제 처리 표시한 것을 실제 지움

IMAP

  • pop3는 기본적으로 mail server 와 local pc가 독립적으로 mail 정보를 관리하는 것을 전제로함
    • local pc의 mail내용이 자워지면 mail server에서 복고할 수 없음
  • IMAP protocol (RFC3501): pop3에 비해 더 복잡한 역할 수행
    • lMAP session간 user state information 이 연동

    • local pc와 mail server가 저장한 mail data가 동일하도록 동기화 되며, 마치 하나인것처럼 동작함

    • 서로 다른 host에서도 mail data 과리가 동기화 되어 이루어질 수 있음

      HTTP vs SMTP

  • HTTP: pull protocol - 내 queue에 당겨오는 방식
    • 어떤 형태의 data든 전송가능

      • encapsulation 형태로 각 object를 각각의 http response message에 전송
    • SMTP: push protocol - 상대방 quueu에 밀어넣는 방식

    • 7bit ASCII 형태로 송수신 되어야함(필요시 원래 문자 혹은 binary data를 encoding해야함)
      - 하나의 메세지에 메시지 object를 모두 포함
      -

      DNS domain Name System

  • host name 과 internet 상에서의 숫자 상의 주소(IP address)를 mapping해주는 시스템
    • 사람에게 더 친숙한 이름으로 internet 주소를 사용할 수 있게 해주는 존재
  • host name: 알파벳 기반의 internet host주소
    • www.naver
    • 국강와 기관 셩격을 유추할 수잇음
  • DNS 구조
    • hostname - IP address에 대한 mapping data를 다수 ㅜ 보유하고 있어야함
    • 하나의 DNS server가 모든 mapping data를 가지는 centralized구조는 issue가 많음
      • sigle point of failure: 망가지면 전체 internet이 안됨
      • traffic volume: 모든host가 DNS에 접속하면 부담이 큼
      • distant centralized database: 거리가 먼 host는 query reply가 오래걸림
    • 따라서DNS 분산구조 형태로 data base가 운영이 되고
      • 즉DNS가 여러개가 있고 계층 구조를 이룬다.
  • DNS server들은 크게 3단계로 계층구조를 이룸
    • root DNS server: 전세계 10여개
    • top - level domain DNS server*TLD:com,orgmuk, fr등을 다룬다
    • authoritativeDNS servers: 실제 IP 주소 회신
    • local DNS server: 각 기관별로 하나씩 보유
      • 최초에 subnet 내에서 접속하는 DNS server

Socket programming

  • Socket: application layer에서 통신 서비스를 위한 객체
    • transport layer와의 interface
    • layer 4 udp/tcp 로 부터 segment 를 수신 받거나 segment 를 보내도록 sdu를 내림
  • socket programming : socket을 생성하고 socket을 통해서 data를 보내는 프로그래밍.
profile
코딩

0개의 댓글