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
'컴퓨터 네트워크' 카테고리의 다른 글
컴퓨터 네트워크 Week 5-1 : (0) | 2020.10.04 |
---|---|
컴퓨터 네트워크 Week 4-2 : Web and HTTP, Non-persistent, Persistent (1) | 2020.10.04 |
컴퓨터 네트워크 Week 3-2 : Performance, Security, Protocol layers, service models (0) | 2020.09.21 |
컴퓨터 네트워크 Week 3-1 : packet/circuit switching, internet structure (0) | 2020.09.21 |
컴퓨터 네트워크 Week 2-2 : Protocol, Network Edge (0) | 2020.09.19 |