应用层
创建一个网络的应用层的应用
需要写一个程序这个程序需要满足如下要求:
1.能够在不同的终端系统上面运行。
2.可以通过网络实现通信。
3.例如:Web Server
在网络核心部分没有应用应用层的软件
1.网络核心不在应用层上起作用。
2.这样的设计有助于网络应用在终端设备上的快速传播。
客户端--服务器 体系结构
服务器:
1.总是处于开启状态
2.拥有固定的ip
3.可能需要大规模部署服务器
客户端:
1.和一个server通信
2.可能建立端连接
3.可能拥有一个动态ip
4.客户端之间不能直接通信
纯的p2p结构
1.没有总是开启的服务器。
2.任意的终端系统直接相互连接
3.终端之间断站的链接并交换ip
4.例如:Gnutella
5.可扩展性高
6.难以管理
进程收发信息通过socket(套接字)
socket相当于是一个门
1.发送进程将信息从门里面推出去
2.发送进程依赖于下层传输系统(如传输层为其提供tcp服务), 在门的另一边将由接收进程带到socket
API : 1)选择传输协议。 2)有配置一些参数的能力
标识一个进程
由于一台主机上面运行着许多的进程 所以为了唯一标志一个进程还需要一个端口号。
一个网络应用的传输服务需要的性能指标
1.Data loss (丢包)
1)一些网络应用,比如视频、语音等 可以容忍少量丢包。
2)其它应用,比如 文件传输,web等,需要传输数据的100%可靠
2.Timing (时延)
一些应用(例如 网络电话 在线游戏)需要低的网络时延
3.带宽
一些应用需要保证最小的带宽,比如看视频,如果带宽不够会卡顿
其它的一些应用对带宽不敏感 比如下载视频
网络传输协议服务
TCP服务:
面向连接的服务:
1)在客户端和服务器之间建立连接
2)收发进程之间建立可靠连接
3)流控制:发送端不能使得接收端溢出
4)拥塞控制:当网络出现拥塞时控制发送速度
5)没有提供的功能:时延和最小带宽的保证
UDP server:
1)收发进程之间的不可靠传输
2)没有提供的功能:建立连接、可靠性、流控制、拥塞控制、时延和最小带宽保证

浙公网安备 33010602011771号