计算机网络(自顶向下)第二章读书笔记

2.1应用层协议原理

网络应用的核心:
写出能够运行在不同的端系统和通过网络彼此通信的程序。

2.1.1网络应用程序体系结构

.客户-服务器体系结构对等体系结构

客户-服务器体系结构:有一个总是打开的主机,经典的Web应用程序。
对等体系结构:自扩展性很好。

进程通信
两个不同端系统上的进程,通过跨越计算机网络交换报文而相互通信。
进程与计算机网络之间的接口是IP和端口

2.1.5应用层协议

定义了运行在不同端系统上的应用程序进程如何相互传递报文。

2.2 Web与HTTP

web的应用层协议是超文本传输协议,它是web的核心。

web页面是由对象组成的。一个对象只是一个文件,诸如一个HTML文件、JPEG图形。
HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式。它是基于TCP的。一旦建立连接,该浏览器和服务器进程就可以通过套接字接口访问TCP HTTP是一个无状态协议,因为HTTP服务器并不保存关于客户的任何信息。

2.2.2非持续连接和持续连接

每个请求/响应对是经过一个单独的TCP连接发送,则是非持续连接
所有的请求/响应经过相同的TCP连接发送则是持续连接

非持续连接

请求一个网页含有10个JPG,需要11个TCP连接。

RTT:一个短分组从客户到服务器然后再返回客户所花费的时间。

对于Web服务器而言,总的响应时间就是两个RTT(前两次握手是一个RTT)加上服务器传输HTML文件的时间。

持续连接

服务器在发送响应后保持TCP连接打开,一个完整的Web页面可以用单个持续TCP连接进行传送。

2.2.3 HTTP报文格式

请求报文
请求行+首部行
首部行内容比较多,比如Connection:close表示希望不适用持续连接。
User-agent表示用户代理,即浏览器的类型。
响应报文
状态行+首部行+实体
状态行包括3个字段:协议版本字段、状态码、响应状态信息。
实体就是所请求的对象本身。

常见的状态码如下:
200 请求成功
301 对象永久转移
404 文本不存在

2.2.4用户与服务器的交互:cookie

cookie的四个组件:
1.HTTP响应报文中有一个cookie首部行
2.HTTP请求报文中有一个cookie首部行
3.在用户端系统中保留有一个cookie文件,并由用户的浏览器管理
4.web站点的一个后端数据库

cookie可以在无状态的HTTP之上建立一个用户会话层

2.2.5Web缓存

Web缓存器也叫代理服务器。Web缓存器有自己的磁盘存储空间,并在存储空间中保存最近请求过的对象的副本。
举例:
局域网流量强度为0.15
接入链路的流量强度为1
这样会导致接入链路时延巨大。
两种解决方案
1.增大接入链路的带宽(价格昂贵)
2.安装一个Web缓存器,假设命中率为0.4,那么接入链路流量强度会降低到0.6.
通过使用内容分发网络CDN,Web缓存器正在因特网中发挥着越来越重要的作用。

2.2.6条件GET方法

为了解决Web缓存器里缓存的是陈旧的对象副本,所以允许缓存器证实它的对象是最新的,这种机制就是条件GET。

当GET执行后,该缓存器在将对象转发到浏览器的同时,也在本地缓存了该对象。

过一段时间后,再次发送一个GET请求。这时候Web缓存器就会给Web服务器发送一个请求报文,确定是否更新,如果没有更新,Web服务器会发送一个不包含所请求对象的响应报文
这样GET就能获得最新的数据了。

2.3文件传输协议:FTP

FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。
在这里插入图片描述
FTP和HTTP有很多共同点,比如都是运行在TCP上的。
FTP使用两个并行的TCP连接来传输文件,一个是控制连接,一个是数据连接。
控制连接:两主机传输控制信息,如用户标识、口令、改变远程目录的命令以及存放和获取文件的命令。
数据连接:用于实际发送一个文件。

因此FTP的控制信息是带外传送的,而HTTP是带内传送的。

注意点:

  1. 开始一个FTP会话时,FTP的客户端首先在服务器21号端口与服务器发起一个用于控制的TCP连接。当FTP服务器端收到一个文件传输的命令后,就会发起一个到客户端的TCP数据连接。
  2. 这个TCP连接是非持续的,每一个文件传输都要建立一个新的数据连接。
  3. FTP服务器必须在整个会话期间保留用户的状态,服务器必须把特定的用户账户与控制连接联系起来,追踪用户在远程目录树的当前位置。而HTTP是无状态的

2.4电子邮件:SMTP

电子邮件系统的组成部分:用户代理、邮件服务器(核心)、简单邮件传输协议
简介:
每个接收方在其中的某个邮件服务器上有一个邮箱,这个邮箱管理和维护着发送给他的报文。
过程:
从发送方的用户代理开始,传输到发送方的邮件服务器,再传输到接受方的邮件服务器,然后再这里被分发到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。
如果发送方的服务器不能将邮件交付给Bob的服务器,该服务器在一个报文队列中保持该报文并在以后尝试再次发送。超过一定时间后还不成功就丢弃并且通知发送方。

SMTP——因特网电子邮件应用的核心
SMTP传输前需要将二进制多媒体数据编码为ASCII码,SMTP传输后要求将相应的ASCII码邮件解码还原为多媒体数据。
SMTP不使用中间邮件服务器发送邮件。
A给B发送一封简单的ASCII报文

  1. A调用她的邮件代理程序并提供B的邮件地址比如1727193459@qq.com,撰写报文,然后指示用户代理发送该报文。
  2. 用户代理把报文发给她的邮件服务器,在那里该报文被放在报文队列里。
  3. A的邮件服务器上的SMTP客户端发现了报文队列中的这个报文,就创建一个到运行在B的邮件服务器上的SMTP服务器的TCP连接。
  4. 经过一些初始SMTP握手后,SMTP客户通过该TCP连接发送A的报文。
  5. B的邮件服务器上,SMTP的服务器端接收该报文。B的邮件服务器然后将该报文放入B的邮箱中。
  6. B方便的时候,调用用户代理阅读该报文。

客户端SMTP在25号端口建立一个到服务器SMTP的TCP连接,如果服务器没开机,客户会等一会再尝试连接。
SMTP依赖TCP提供的可靠数据传输无差错地将邮件投递到接受服务器。
该客户如果有另外的报文要发送到该服务器,就在该相同的TCP连接上重复这种处理,否则,提示TCP关闭连接。(持续连接

SMTP和HTTP的对比

相同点:都是基于TCP连接,都是从一台主机向另一台主机传送文件,都是持续连接。
不同点:
7. HTTP是拉协议,SMTP是推协议
8. SMTP要求每个报文使用7bit的ASCII字符或二进制数据,HTTP不受限制。
9. 对于既包含文本也包含图像的文档,HTTP把每个对象封装到它自己的HTTP响应报文中,而SMTP则把所有报文对象放在一个报文里。

2.4.4邮件访问协议POP3或IMAP

POP3
打开一个到邮件服务器端口110上的TCP连接后,
POP3按照三个阶段进行工作:

  1. 特许
  2. 事务处理
  3. 更新

特许:用户代理发送用户名和口令鉴别用户。
事务处理:用户代理取回报文,同时可以标记报文是否删除,以及获取邮件的统计信息。(OK和-ERR代表正常和差错)
更新:结束该POP3会话,还会删除那些标记过的邮箱。

IMAP
可以把每个报文与一个文件夹联系一起,它维护了IMAP会话的用户状态信息,它具有允许用户代理获取报文组件的命令。
基于web的电子邮件
用户代理就是普通的浏览器,用户和他远程邮箱之间的通信则通过HTTP进行的。当B想从他的邮箱中访问一个报文时,该电子邮件报文从B的邮件服务器发送到他的浏览器,使用的是HTTP。
当A要发送一封电子邮件报文时,该电子邮件报文从A的浏览器发送到她的邮件服务器,使用的是HTTP。然而A的邮件服务器与其他的邮件服务器之间发送和接收邮件时,仍然使用的是SMTP。

2.5DNS:因特网的目录服务

域名系统
一个能进行主机名导到地址转换的目录服务。

  1. 一个由分层的DNS服务器实现的分布式数据库
  2. 一个使主机能够查询分布式数据库的应用层协议

重要的服务
主机别名
有复杂主机名的主机能够拥有一个或者多个别名。
邮件服务器别名
电子邮件应用程序可以调用DNS,对提供的邮件服务器名进行解析
负载均衡
DNS也用于在冗余的服务器之间进行负载分配。

工作原理:
应用程序调用DNS的客户端,指明需要被转换的主机名,用户主机上的DNS接受到后,向网络发送一个DNS查询报文,所有的DNS请求和回答报文使用UDP数据报经端口53发送。过一段延迟时间后,DNS接受到一个提供所希望映射的DNS回答报文,这个映射结果被传递给调用DNS的应用程序。
集中式的问题
单点故障:该DNS服务器崩溃,整个瘫痪。
通信容量:一台电脑放不了多少东西。
远距离的集中式数据库:太远了,时延巨大。
维护:不利于维护。
分布式
根DNS服务器、顶级域DNS服务器,权威DNS服务器,本地DNS服务器。
从请求主机到本地DNS服务器的查询是递归的,其余的查询是迭代的。
DNS资源记录:TTL是该记录的生存时间。
Type为A:
Name是主机名,Value是主机名对应的IP地址。
Type为NS:
Name是个域,Value是权威DNS服务器的主机名。
Type为CNAME:
Value是别名为Name的主机对应的规范主机名。
Type为MX:
Value是个别名为Name的邮件服务器的规范主机名。

2.6 P2P应用

特点:

  1. 没有服务器
  2. 任意端系统之间直接通信
  3. 节点阶段性接入Internet
  4. 节点可能更换IP地址

分发文件系统
CS架构:延迟线性增长。
P2P架构:随着节点增大,延迟会基本保持不变。
协议BitTorrent
参与一个特定文件发送的所有对等方的集合被称为一个洪流。
在任意给定的时间,每个对等方将具有来自该文件的块子集,并且不同的对等方具有不同的子集。
稀缺优先:首先请求那些在她的邻居中副本数量最少的块。
发送chunk:向4个邻居发送chunk:正在给自己发送Chunk,速率最快的4个
每10秒重新评估top4。
每30秒随机选择一个其他节点,向其发送chunk,新选择节点可能加入top4.
在这里插入图片描述
索引技术
索引:信息到节点位置(IP+port)的映射

2.7TCP套接自编程

UDP & TCP(详见实验)

链接https://blog.csdn.net/qq_36206070/article/details/88855394

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值