热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

2.1应用层协议原理网络应用的核心:写出能够运行在不同的端系统和通过网络彼此通信的程序。2.1.1网络应用程序体系结构.客户-服务器体系结构和对等体系结构客户
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


推荐阅读
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • 开发笔记:对称加密详解,以及JAVA简单实现
     (原)常用的加密有3种1、正向加密,如MD5,加密后密文固定,目前还没办法破解,但是可以能过数据库撞库有一定概率找到,不过现 ... [详细]
  • 一.常见基于身份识别进行反爬1通过headers字段来反爬headers中有很多字段,这些字段都有可能会被对方服务器拿过来进行判断是否为爬虫1.1通过headers中的User-A ... [详细]
  • Java大文件HTTP断点续传到服务器该怎么做?
    最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传。这里在简要归纳一下,方便记忆 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 网络安全是一个非常重要的课题,基本上你运行的服务后台越多,你就可能打开更多的安全漏洞.如果配置的恰当的话,Linux本身是非常安全可靠的,假使在Linux系统中有某个安全缺陷,由于Linu ... [详细]
  • 0x00端口渗透端口扫描端口的指纹信息(版本信息)端口所对应运行的服务常见的默认端口号.尝试弱口令端口爆破hydra端口弱口令NTScanHs ... [详细]
  • 本人新手,用Unity3D想做一个简单的赛车游戏,现在的问题是转弯的时候很容易出现翻车的情况,求解决思路比如说你的中心是在(0,0,0),你把他设置成(0,-1.0,0)之类的就可 ... [详细]
  • javaftp上传,javaftp下载文件
    本文目录一览:1、javaftp上传5G以上大文件,怎么做 ... [详细]
author-avatar
手机用户2502878095
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有