本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、应用层协议
1、应用层概念、作用
※:网络核心设备并不在应用层上起作用,而仅在较低层起作用,特别是在网络层及下面层次起作用
2、网络应用程序体系结构
1)客户机/服务器体系结构:
2)P2P体系结构(peer-to-peer):
3)客户机/服务器与P2P的混合:
3、进程通信:在两个不同端系统上的进程,通过跨越计算机网络交换报文进而相互通信
1)客户机和服务器进程
※:对于P2P文件共享,下载文件的对等方标识为客户,上载文件的对等方标识为服务器,一个进程能够既是客户又是服务器!
2)进程与计算机网络之间的接口:套接字(socket)
进程通过一个称为套接字的软件接口向网络发送报文和从网络接收报文。
※:进程与套接字关系:
3)进程寻址
主机上的进程可以有多个,网络中有多个主机,每个主机上有多个进程,如何识别进程???
先确定主机进而确定进程!
进程识别信息(两部分):
应用程序所需要的服务:
应用程序需要什么样的运输服务?:
因特网运输层运输协议提供的服务:
1)TCP服务:面向连接的服务、可靠的传输服务
通信进程可以无差错、按适当顺序交付发送的数据。
没有数据丢失和重复。
拥塞控制: 当发送方和接收方之间的网络出现拥塞时,会抑制发送进程速率,对整个网络有益。
未提供的服务:
1、不确保最小传输速率:发送进程受拥塞控制机制制约;
2、不提供时延保证:数据传输的时间不确定。
2)UDP服务:
二、Web应用和HTTP协议
HTTP协议概况:
Web相关术语:
客户机和服务器之间交互过程:
说明:
HTTP连接:
非持久连接过程:
RTT:往返时间,指一个短分组从客户到服务器然后再返回客户所花费的时间,包含分组传播时延、排队时延、处理时延。
持久连接:
HTTP请求报文格式: 客户机向服务器发送:ASCII文本形式,易读
HTTP响应报文格式: 服务器到客户机的回答
HTTP响应状态码:响应报文中的首行(上图中第一行的200)
用户与服务器交互:Cookie
1)Web缓冲:也叫代理服务器,能够代替原始服务器满足HTTP请求
具体操作过程:
说明:
Web缓存优点:
2)条件GET方法:
使用方法:即保证缓存中放的对象是最新的
三、电子邮件、DNS(域名服务器)、P2P文件共享
1、电子邮件系统
1)总体结构:
①用户代理:user agent
即:邮件阅读器,允许用户阅读、回复、发送、保存、撰写报文
②邮件服务器:mail server:形成了电子邮件体系结构的核心,每个接收方在其中的某个邮件服务器上有一个邮箱,小明的邮箱管理和维护着发送给他的报文。
一个典型的邮件发送过程: 从发送方的用户代理开始,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。接收方要在邮箱中读取该报文时,包含它邮箱的邮件服务器(用用户名和口令)来鉴别接收方。 ※:如果发送方的服务器不能将该邮件交付给接收方的服务器,发送方则会将该报文保存在邮件服务器的报文队列中,之后再次尝试,如果几天后仍未成功,服务器就删除该报文,并通知发送方。
③简单邮件传输协议:SMTP,电子邮件中主要的应用层协议,使用TCP可靠数据传输服务,是因特网电子邮件的核心
说明:
端口号25:标识主机中的邮件服务进程
※:易错!!!!
SMTP与HTTP的比较:
共同点:
区别: 一个推、一个拉!!!
邮件访问协议:不是SMTP! !!SMTP是邮件传输协议!
1)PO3:
工作步骤:
2)IMAP:
3)基于Web的电子邮件(用户使用浏览器收发电子邮件)
四、DNS:因特网的目录服务
使用主机名的目的:方便记忆,但路由器处理困难
IP地址:不易记忆,但路由器容易处理
说明:用户只是间接使用DNS!!!DNS通常是由其他应用层协议所使用的(HTTP、SMTP),将用户提供的主机名解析为IP地址
说明:
1)有着复杂主机名的主机能够拥有一个或多个别名。
2)邮件服务器别名,bob@iyahoo.com,电子邮件应用程序可以调用DNS,对提供的主机名别名进行解析,以获得该主机的规范主机名及其IP地址。
(允许一个公司的邮件服务器和Web服务器使用相同的主机名)
3)负载分配, 把繁忙的站点分布到多台服务器上,每台服务器均运行在不同的端系统上,每个都有着不同的IP地址。
注意:本地域名服务器不属于该层次结构!!!!
※:每一套装置有多个机器!!!
注意:两个不同的查询方式!!任何DNS查询既可以是迭代的也能是递归的!
五、P2P文件共享
说明:如果某个文件被很多人下载,则下载它的速度会很快
六、基于多线程的Socket编程
1)UDP套接字编程
2)TCP套接字编程
①建立TCP连接:
②传送数据:
具体的三次握手将会在运输层详细说明!