加油!寒假偷博人
一、网络应用层内容概述。
1本篇内容:(原理、实例、编程)
网络应用体系结构 客户机/服务器 P2P 混合结构
网络应用的服务需求 可靠性 带宽 时延
Internet传输层服务模型 TCP UDP
特定网络应用及协议 HTTP SMTP, POP, IMAP DNS P2P应用
Socket编程 TCP UDP
2课后讨论
假如你要创业,你会开发什么互联网应用/服务?
互联网/Internet为全世界无数人提供了创造财富、实现梦想的机会,也成就了Google、阿里巴巴、腾讯等许多企业和扎克伯格、马云、马化腾等英雄式的人物.
今天仍然是互联网创业的繁荣阶段,每天都有很多个创业公司冒出来,通过众筹平台、天使投资等获得支持,研发新的互联网应用和服务。
那么,假如你现在要创业,你打算研发什么互联网应用和/或服务?服务于哪些用户?为用户带来/创造什么价值?如何实现盈利和可持续发展?
二、网络应用基本原理
一些网络应用的例子
这些都叫Internet Application
1.创建一个新的网络应用
- 编程
在不同的端系统上运行
通过网络基础设施提供的服务,应用进程彼此通信
如Web: Web 服务器软件与浏览器软件通信 - 网络核心中没有应用层软件
网络核心没有应用层功能
网络应用只在端系统上存在,快速网络应用开发和部署
2.网络应用的体系结构.(如下有3点)
2.1 客户机/服务器结构(Client-Server, C/S)
该结构扩展性差。
当所有人都访问一台服务器,性能(服务能力、数据输入输出)断崖式下降(就像抢课的时候,抢课网站必然崩了)
- 服务器
7*24小时提供服务
永久性访问地址/域名
利用大量服务器实现可扩展性 - 客户机
主动与服务器通信,使用服务器提供的服务
间歇性接入网络
可能使用动态IP地址
不与其他客户机直接通信 - 例如Web应用:
2.2 点对点结构(Peer-to-peer, P2P)
缺点:难于管理
优点:自扩展性-新peer节点带来新的服务能力,当然也带来新的服务请求
- 没有永远在线的服务器
- 任意端系统/节点之间可以直接通讯
- 节点间歇性接入网络
- 每一个节点既是客户端又是服务器
- 参与的主机间歇性连接且可以改变IP 地址- 优点:高度可伸缩
- 例子: Gnutella,迅雷
P2P应用:
P2P已经统治了当今的互联网总流量的70-90%。网络的各种技术围绕在我们周围,每天在互联网中进行的活动几乎没有不沾P2P技术的。如QQ、YY、Skype、MSN都的是P2P应用。P2P允许用户之间互相沟通、交换信息、交换文件。用户之间的信息交流不是直接的,需要服务器来协调转发。直接将人们联系了起来,让人们通过互联网直接交流。它使得网络上的沟通变得更容易、更直接,真正地消除中间环节。
----来自
2.2.3混合结构(Hybrid)
- 如Napster应用
- 文件传输使用——P2P结构
- 文件的搜索采用C/S结构——集中式
每个节点向中央服务器登记自己的内容
每个节点向中央服务器提交查询请求,
查找感兴趣的内容
即时通信
在线检测:集中
当用户上线时,向中心服务器注册其IP地址
用户与中心服务器联系,以找到其在线好友的位置
两个用户之间聊天:P2P
3.网络应用进程通信
进程: 在主机上运行的应用程序
3.1网络应用的基础:进程间通信
-
进程:
主机上运行的程序 -
同一主机上运行的进程之间通信
进程间通信机制
操作系统提供 -
不同主机上运的进程间通信
消息交换
通过交换报文(Message)来通信
使用OS提供的通信服务
按照应用协议交换报文
借助传输层提供的服务
3.2分布式进程通信需要解决的问题
p2p型结构的网络应用也有客户端进程和服务器进程之分
3.3如何寻址进程(对进程进行编址(addressing))
- 不同主机上的进程间通信,那么每