2021-05-08

本文详细介绍了应用层在网络协议栈中的作用,涵盖了TCP和UDP服务模型,HTTP协议的工作原理,包括请求和响应报文的格式。还讨论了电子邮件系统、DNS域名系统以及P2P文件分发协议如BitTorrent。此外,讲解了套接字编程的基础,包括UDP和TCP套接字的使用。
摘要由CSDN通过智能技术生成

计网——chapter 2 应用层

协议栈(从上至下):
application-layer message
transport-layer segment
network-layer datagram
link-layer frame
结构:首部字段+payload field
协议栈应用层的2种结构(application architecture):client-server architecture, P2P architecture
客户服务器进程:即使是P2P architecture,也能认为其中一个是服务进程另一个是客户进程
套接字(socket):也称应用程序编程接口(application programming interface)

套接字的另一侧是运输层,运输层协议负责接收进程的套接字得到该报文。我们可以从四个方面对应用程序服务要求进行分类:可靠数据传输(reliable data transfer),吞吐量,定时和安全性
因特网提供的运输服务有TCP和UDP两种。
1.TCP服务
TCP服务模型包括面向连接服务和可靠数据传输服务
2.UDP服务
UDP是无连接的,因此在两个进程通信之前没有握手过程。UDP是不可靠的,不能保证报文段会到达接收进程,也不能保证按需到达。

应用层协议(appilcation-layer protocol)定义了:
1.交换的报文类型,例如请求报文和响应报文;
2.各种报文的语法,如报文中的各个字段以及这些字段是如何描述的;
3.字段的语义,即这些字段中的信息的含义;
4.确定一个进程何时以及如何发送报文,对报文的响应规则。

Web是一个因特网应用,HTTP是它的应用层协议,HTTP全程HyperText Transfer Protocol.HTTP使用TCP作为它的运输层支撑应用。
HTTP是无状态协议(stateless protocol)
非持续连接和持续连接:每个请求/响应对如果是经一个单独的TCP发送方就是非持续连接,经相同的TCP发送就是持续连接。
往返时间RTT(Round-Trip Time)
HTTP请求报文的通用格式:请求行+首部行+空行+实体行
HTTP响应报文的通用格式:状态行+首部行+空行+实体行
cookie技术有4个组件:
1.HTTP响应报文中的一个cookie首部行;
2.HTTP请求报文中的一个cookie首部行;
3.在用户端系统中保留一个cookie文件,并用用户浏览器进行管理;
4.位于Web站点的一个后端数据库。
热知识:cookie是一个文本而非程序
Web缓存
Web缓存器(Web cache)也叫代理服务器(proxy server)。客户端向缓存器发送HTTP请求,如果缓存器里面有该请求对象则通过HTTP响应发给客户端,否则向初始服务器发送HTTP请求,服务器再想缓存器发HTTP响应,Web缓存器收到以后,在本地存储器存一个副本,并向客户发送该副本。

因特网的电子邮件
电子邮件系统的组成:用户代理user agent,邮件服务器mail server, 简单邮件传输协议 Simple Mail Transfer Protocol
SMTP:当邮件服务器发邮件时就是SMTP的客户,当邮件服务器收邮件时就是SMTP的服务器
第三版邮局协议(Post Office Protocol-Version 3)POP3
因特网邮件访问协议(Internet Mail Access Protocol)IMAP
SMTP负责将邮件从用户代理发送到用户的邮件服务器,从用户的邮件服务器传送到接收方的邮件服务器
POP3这样的邮件访问协议用来将邮件从接收方的邮件服务器传送到接收方的用户代理
POP3:极为简单的邮件访问协议,三个阶段:1.特许——用户代理发送用户名和口令以鉴别用户;2.事务处理阶段——用户代理取回报文;3.第三个阶段是更新阶段,结束该POP3会话。
IMAP:IMAP服务器把每个报文与远程文件夹相关联,IMAP服务维护了会话的用户状态信息。
基于Web的电子邮件:用户代理就是普通的浏览器,用户与远程信箱之间是HTTP协议,但是信箱之间是SMTP。

DNS:因特网的目录服务
主机名提供的关于主机的位置信息非常有限,因此需要引入IP address的概念。
主机名到IP地址转换的目录服务——域名系统(Domain Name System)DNS
DNS是:1.一个由分层的DNS服务器实现的分布式数据库;
2.一个使得主机能够查询分布式数据库的应用层协议。
DNS是一个在因特网上实现分布式数据库的精彩范例:
1.分布式、层次数据库。DNS服务器有3种类型:根DNS服务器,顶级域(Top-Level Domain)DNS服务器,权威DNS服务器。
DNS有递归查询和迭代查询

P2P文件分发
BitTorrent是一种关于文件分发的流行P2P协议 tit-for-tat
一个新的对等方Alice加入洪流时向追踪器注册自己,tracker给Alice对等方列表并试图创建TCP连接。Alice根据rarest first原则向邻居请求块。Alice同时unlock4的对等方,并每过30秒,另选一个邻居并向其发送块。

套接字编程:生成网络应用
UDP套接字编程
目的地址由目的主机的IP地址和目的套接字的端口号组成的。发送方的源地址也是由源主机的IP地址和源套接字的端口号组成。然而将源地址附在分组上并不是UDP应用程序所为,而是由底层操作系统自动完成的。
TCP套接字编程
TCP与UDP不同,发送数据前要握手,TCP连接的一端与服务器套接字相关联,另一端与客户端套接字相关联,使用时只需要将数据直接丢进TCP连接。
欢迎套接字和连接套接字不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值