计算机网络之应用层

应用层概述:

网络应用原理

Web和HTTP

E-mail, SMTP, IMAP

域名系统DNS

P2P应用程序

视频流媒体和内容分发网络

使用套接字编程:UDP和TCP

我们的目标:

应用层协议的概念和实现方面

•传输层服务模型
•客户端-服务器范式
•点对点范式

通过检查流行的应用层协议和基础设施来了解协议

• HTTP

• SMTP, IMAP

• DNS

• video streaming systems, CDNs

网络应用程序编程

• 套接字编程接口

2.1网络应用原理

2.1.1 网络应用体系结构

一些网络应用

社交网络
网络
短信
电子邮件
多用户网络游戏
流媒体存储视频(r如:YouTube, Hulu, Netflix)
P2P文件共享

IP语音(如:Skype)
实时视频会议(如:Zoom)
互联网搜索
远程登录

问:你的最爱?

创建网络应用程序

编写这样的程序:
在(不同的)端系统上运行
通过网络通信
例如,web服务器软件与浏览器软件通信,无需为网络核心设备编写软件
网络核心设备不运行用户应用程序
终端系统上的应用程序允许快速的应用程序开发和传播

应用架构

应用程序的可能结构:
客户机-服务器
点对点(P2P)

顾客-服务器模式

服务器:
永远在线的主机
永久IP地址
通常在数据中心,用于扩展

客户:
联络、沟通服务器
可能间歇性地连接
可能有动态IP地址
不要直接与对方沟通
举例:HTTP、IMAP、FTP

 

对等架构

没有永远在线的服务器
任意端系统直接通信
对等体向其他对等体请求服务,并向其他对等体提供服务
•自扩展性——新的对等点带来新的业务容量,以及新的业务需求
·对等体断续连接,且IP地址发生变化
•复杂管理
举例:P2P文件共享[BitTorrent]

客户机-服务器和P2P体系结构的混合

即时消息应用程序
•集中服务:客户存在检测/定位
•用户在线时向中央服务器注册其IP地址
•用户联系中心服务器查找伙伴的IP地址
Skype
•ip语音(VoIP) P2P应用
•集中服务器:查找远端地址:
客户-客户连接:直接(不通过服务器)

 2.1.2进程通信

进程通信

进程:在主机上运行的程序
在同一主机内,两个进程使用进程间通信(由OS定义)进行通信
不同主机上的进程通过交换消息进行通信
•发送过程:创建消息并将消息发送到网络
•接收过程:接收这些消息,并可能通过发回消息进行响应

客户端进程:  发起通信的进程。服务器进程:  等待被联系的进程

在Web应用程序中,客户机浏览器进程与Web服务器进程交换消息
题外话:P2P架构的应用程序有客户端进程和服务器进程
对等体A请求对等体B发送一个文件,对等体A是这个特定通信会话上下文中的客户端,对等体B是服务器。

套接字

进程向套接字发送/接收消息
类似门的插座
•发送过程将消息推送出去
•发送过程依赖于门另一侧的传输基础设施在接收过程中将消息传递到socket
•涉及两个套接字:  两边各一个

寻址过程

要接收消息,进程必须有标识符
●主机设备有唯一的32位IP地址
问:  进程所在主机的IP地址是否足以识别该进程?

答:  不,同一台主机上可以运行多个进程


标识符包括与主机上进程相关联的IP地址和端口号。
示例端口号:
•HTTP服务器:80
•邮件服务器:25个


向gaia.cs.umass.edu web服务器发送HTTP消息:
•IP地址:128.119.245.12
端口号:80

2.1.3应用程序可用的传输服务

应用程序需要什么样的传输服务?

数据完整性
一些应用程序(例如,文件传输,网络交易)需要100%可靠的数据传输
其他应用程序(例如音频)可以容忍一些丢失时间
一些应用程序(例如,互联网电话、交互式游戏)需要低延迟才能达到“有效”吞吐量
一些应用程序(例如多媒体)需要最小的吞吐量才能“有效”。
其他应用程序(“弹性应用程序”)利用它们所获得的任何吞吐量

安全性:
加密、数据完整性、
...

运输服务需求:常用应用

2.1.4互联网提供的传输服务

互联网传输协议服务

TCP服务:
发送和接收过程之间可靠的传输
流量控制:发送方不会压倒接收方(大小可变的滑动窗口)
拥塞控制:在网络过载时限制发送方
面向连接:客户端和服务器进程之间需要设置
不提供:定时、最低吞吐量保证、安全性
UDP服务:
发送和接收过程之间不可靠的数据传输
不提供:可靠性、流量控制、拥塞控制、定时、吞吐量保证、安全性或连接设置。
问:为什么要麻烦?为什么会有UDP?

Internet应用程序和传输协议

TCP安全

普通TCP和UDP套接字:
●无加密
●明文密码发送到套接字遍历互联网明文(!)
传输层安全(TLS)
●提供加密的TCP连接
●数据完整性
●终端认证
在应用层实现TSL
●应用程序使用TSL库,而TSL库反过来使用TCP
●明文发送到“socket”遍历互联网加密
●详细内容:第8章

 应用层协议定义:

交换的消息类型,
•例如,请求,响应
消息语法:
•消息中的字段以及字段是如何描述的
消息语义
•字段中信息的含义
进程何时以及如何发送和响应消息的规则

开放协议
•在rfc中定义,每个人都可以访问协议定义
•允许互操作性
•例如,HTTP、SMTP专有协议:

私有协议
•例如:Skype, Zoom

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值