7、应用层原理

应用层的协议是最多的
网络核心中最高的层次:网络层
一、创建一个网络应用
1、编程
2、形式:在不同端上运行,通过网络基础设施提供的服务,应用进程彼此通信
如:web:web服务器软件和浏览器软件通信

二、网络应用的体系架构
1、客户-服务器模式(C/S:client/server)
(1)服务器:一直运行,固定的IP和周知的端口号(约定)
(2)扩展性差、只能对服务器本身以及周边进行扩展,不可能向客户端周边扩展;性能在随着用户数量的增加到一定数量,是断崖式下降
(3)客户端主动与服务器通信;与互联网由间接性的连接(间接性的请求);可能有动态IP地址(不同的网络),不直接与其他客户端通信(中间经过服务器)

2、对等模式(P2P:Peer To Peer)
(1)每个节点即是客户端又是服务器
(2)几乎没有一直运行的服务器,客户端即服务器,基本没有客户端会一直运行
(3)任意端系统之间可以通信
(4)参与的主机间歇性连接且可以改变IP地址(缺点:难管理)
如:迅雷、Gnutella

3、混合体:客户端-服务端和对等体系架构
上面两种模式的混合体,一般是下载文件时使用P2P模式,而服务器在其中做到一个中介的作用,用来告诉用户所需内容在哪里,然后用户再去请求
(1)Napster:文件搜索:集中;文件传输:P2P,在任意Peer节点之间
(2)即时通信:在线检测:集中,当用户上线时,向服务器注册其IP地址,通信时用户与中心服务器联系,以找到其在线服务器的位置
两个用户通信:P2P

三、进程通信
进程:在主机上运行的应用进程
客户端进程:发起通信的进程
服务器进程:等待连接的进程
1、在不同的主机内,通过交换报文(Message)来通信
(1)使用OS提供的通信服务
(2)按照应用协议交换报文(借助传输层提供的服务)
(3)P2P架构应用也有客户机和服务器进程之分

四、分布式进程通信应该注意?
1、进程标识和寻址问题(服务用户)
(1)进程为了能接受报文,需要有个标识(SAP):IP地址+端口(端节点
(2)本质上,一对主机之间的通信由两个端节点构成

2、传输层-应用层提供服务是如何服务的
位置:层间界面的SAP(TCP/IP:Socket)
形式:应用程序接口API(TCP/IP:Socket API)
在传输的过程,传输层提供的服务、信息需要穿过层间接口,信息就是传输的报文、我的IP地址+端口号、对方的IP地址+端口号,而每次传输的时候都需要提供这些数据,太繁琐,引出了Socket,Socket是一个整数,可代表通信的双方(TCP)或者单方(UDP)
套接字Socket:进程向套接字发送报文或接收报文
好处:便于管理,使穿过层间的信息量最少
(1)TCP socket
包含:源IP、源Port、对方IP、对方Port(四元组)。
指定了唯一的会话
(2)UDP socket
包含:本端口、本IP(二元组),但是传输的时候需要提供对端口和IP,因为UDP前后报文可能给的不同进程,所以Socket自然不包括对方端口及IP

3、如何使用传输层提供的服务,实现应用进程之间的报文交换,实现应用?
定义应用协议:报文格式、解释、时序等
编制程序,使用OS提供的API,调用网络基础设施提供 通信服务传报文,实现应用时序等
(1)应用协议:分布式应用进程在通信的过程当中应该遵守的规则集合,是应用中的一部分。协议规范了报文类型(请求和应答报文)、语法(报文的各个字段描述)、语义(字段取值的含义)、规则(进程发送时间、方式,以及对报文的响应方式)
如web应用:HTTP协议、web客户端、web服务器、HTML
(2)公有协议与私有协议
公有协议是在RFC文档定义,可以随时查阅,允许互操作的,如HTTP、SMTP
私有协议:专有的协议,协议是不公开的,如Skype
(3)协议的性能指标:数据丢失率吞吐延迟安全性,当然每个协议所能容忍的这四个指标是不一样的

五、TCP与UDP
在这里插入图片描述
(1)为啥要有UDP?
在这里插入图片描述
(2)TCP与UDP的安全性
都是没有加密的,如网址前缀Http,有的是Https,正是在TCP上面加了SSL,提高了安全性
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值