Hi there!

I am a student studying computer science.

컴퓨터 네트워크

컴퓨터 네트워크 Week 4-1 : Principles of network applications

만능성구 2020. 9. 22. 14:43
728x90

Layering in the IP Protocols

Not all Network Elements “Speak” All Layers

모든 요소가 5계층 layer를 다 가지고 있지 않다.

Application layer: overview

  • 네트워크 애플리케이션의 원리
  • Web 및 HTTP
  • E-mail, SMTP, IMAP
  • 도메인 이름 시스템, DNS
  • P2P 애플리케이션
  • 비디오 스트리밍 및 콘텐츠 배포 네트워크
  • UDP 및 TCP를 사용한 소켓 프로그래밍

 

  • 우리의 목표 :
    • 애플리케이션 계층 프로토콜의 개념 및 구현 측면
      • 전송 계층 서비스 모델
      • 클라이언트-서버 패러다임
      • P2P 패러다임
    • 자주 사용되는 application layer 프로토콜을 검사하여 프로토콜에 대해 알아본다.
      • HTTP
      • SMTP, IMAP
      • DNS
    • 네트워크 애플리케이션 프로그래밍
      • 소켓 API

Some network apps

  • 소셜 네트워킹
  • 문자 메시지
  • 이메일
  • 다중 사용자 네트워크 게임
  • 저장된 비디오 스트리밍 (YouTube, Hulu, Netflix)
  • P2P 파일 공유
  • Voice over IP (예 : Skype)
  • 실시간 화상 회의
  • 인터넷 검색
  • 원격 로그인
  • .... 

Creating a network app

다음과 같은 프로그램을 작성:

  • 다른) 최종 시스템에서 실행
  • 네트워크를 통해 통신
  • 예 : 웹 서버 소프트웨어는 브라우저 소프트웨어와 통신합니다.

네트워크 코어 장치 용 소프트웨어를 작성할 필요가 없다

  • 네트워크 코어 장치는 사용자 응용 프로그램을 실행하지 않습니다.
  • 최종 시스템의 애플리케이션은 신속한 애플리케이션 개발, 전파를 허용합니다.

Client-server paradigm

server:

  • 상시 작동 호스트
  • 영구 IP 주소
  • 종종 데이터 센터에서 확장

client

  • 연락, 서버와 통신
  • 간헐적으로 연결될 수 있습니다.
  • 동적 IP 주소가있을 수 있습니다.
  • 서로 직접 소통하지 마십시오.
  • 예 : HTTP, IMAP, FTP

Peer-peer architecture

  • 상시 가동 서버 없음
  • 임의의 최종 시스템이 직접 통신
  • peer는 다른 peer에게 서비스를 요청하고 다른 peer에게 서비스를 제공합니다.
  • 자체 확장성 scalability – 새로운 peer는 새로운 서비스 용량과 새로운 서비스 요구를 가져옵니다.
  • peer가 간헐적으로 연결되고 IP 주소 변경
  • 복잡한 관리
  • 예 : P2P 파일 공유

Processes communicating

process : 호스트 내에서 실행되는 프로그램

  • 동일 호스트 내에서 두 개의 프로세스가 프로세스 간 통신을 사용하여 통신 (OS에서 정의)
  • 다른 호스트의 프로세스는 메시지를 교환하여 통신합니다.

client, server
클라이언트 프로세스 : 통신을 시작하는 프로세스
서버 프로세스 : 연락을 기다리는 프로세스

참고 : P2P 아키텍처를 사용하는 애플리케이션에는 클라이언트 프로세스와 서버 프로세스가 있습니다.

 

Sockets

  • 프로세스는 소켓과 메시지를주고받습니다.
  • 문과 유사한 소켓
  • 송신 프로세스는 메시지를 밖으로 밀어냅니다.
  • 송신 프로세스는 수신 프로세스에서 소켓으로 메시지를 전달하기 위해 도어의 다른쪽에있는 전송 인프라에 의존합니다.
  • 관련 소켓 2 개 : 양쪽에 하나씩

Sockets API

네트워크에 액세스하기위한 API (Application Programmer Interface)

  • 함수 프로토 타입, 데이터 구조 및 상수 세트
  • 프로그래머가 한 번 배우고 어디서나 쓸 수 있습니다.
  • 응용 프로그램 프로그래머의 작업을 크게 단순화                                                      

Addressing Socket

  • 서버 호스트는 각각 하나 이상의 소켓이있는 여러 동시 애플리케이션 프로세스를 지원할 수 있습니다.
    • 예를 들어 웹 서버는 각 연결 클라이언트에 대해 다른 소켓을 사용합니다.
  • 패킷이 도착하면 커널은 이를 전달할 소켓을 어떻게 알 수 있습니까?
    • 호스트의 고유 한 32 비트 IP 주소로?
    • IP 주소가 소켓을 식별하기에 충분합니까?

Addressing processes

  • 메시지를 받으려면 프로세스에 식별자가 있어야합니다.
  • 호스트 장치에는 고유 한 32 비트 IP 주소가 있습니다.
  • Q : 프로세스가 실행되는 호스트의 IP 주소가 프로세스를 식별하는 데 충분합니까?
  • A : 아니요, 동일한 host에서 여러 processes를 실행할 수 있다.
  • 식별자에는 호스트의 프로세스와 관련된 IP 주소와 포트 번호가 모두 포함됩니다.
  • 예제 포트 번호 :
    • HTTP 서버 : 80
    • 메일 서버 : 25
  • aia.cs.umass.edu 웹 서버에 HTTP 메시지 보내기 :
    • IP 주소 : 128.119.245.12
    • 포트 번호 : 80

An application-layer protocol defines:

교환되는 메시지 유형,

  • 예 : 요청, 응답

메시지 구문 syntax:

  • 메시지의 필드 및 필드 설명 방법 

메시지 의미 semantics

  • 분야에서 정보의 의미
  • source ip, destination ip, pripority

프로세스가 메시지를 보내고 응답하는시기와 방법에 대한 규칙

 

개방형 프로토콜 :

  • RFC에 정의되어 모든 사람이 프로토콜 정의에 액세스 할 수 있습니다.
  • 상호 운용성 허용
  • 예 : HTTP, SMTP

독점 프로토콜 proprietary :

  • 예 : Skype

 What transport service does an app need?

데이터 무결성 data integrity

  • 일부 앱 (예 : 파일 전송, 웹 트랜잭션)은 100 % 안정적인 데이터 전송이 필요합니다.
  • 다른 앱 (예 : 오디오)은 일부 손실을 허용 할 수 있습니다.

 타이밍

  • 일부 앱 (예 : 인터넷 전화, 대화 형 게임)은 "효과적"을 얻기 위해 짧은 지연이 필요합니다.

 처리량

  • 일부 앱 (예 : 멀티미디어)의 "효과적"을 위해서는 최소 처리량이 필요합니다.
  • 다른 앱 ( "탄력적 앱")은 그들이 얻는 처리량을 활용합니다.

 보안

  • 암호화, 데이터 무결성,

Internet transport protocols services

TCP 서비스 :

  • 송수신 프로세스 간의 안정적인 전송
  • 흐름 제어 : 발신자가 수신자를 압도하지 않습니다.
  • 혼잡 제어 : 네트워크 과부하시 발신자 조절
  • 제공하지 않음 : 타이밍, 최소 처리량 보장, 보안
  • 연결 지향 : 클라이언트와 서버 프로세스간에 필요한 설정

UDP 서비스 :

  • 전송 및 수신 프로세스 간의 신뢰할 수없는 데이터 전송
  • 제공하지 않는 항목 : 안정성, 흐름 제어, 혼잡 제어, 타이밍, 처리량 보장, 보안 또는 연결 설정.

Q : 왜 귀찮게? UDP가있는 이유는 무엇입니까?

 

Securing TCP

Vanilla TCP 및 UDP 소켓 :

  • 암호화 없음
  • 일반 텍스트로 소켓 traverse 인터넷으로 전송된 일반 텍스트 암호

Transport Layer Security (TLS)

  • 암호화된 TCP 연결 제공
  • 데이터 무결성
  • 끝점 인증

애플리케이션 계층에 구현된 TSL

  • 앱은 TCP를 차례로 사용하는 TSL 라이브러리를 사용합니다.

TLS 소켓 API

  • 암호화된 소켓 통과 인터넷으로 전송되는 일반 텍스트
  • 8장 참조
728x90