计网|应用层笔记以及wireshark实验

复习计网应用层相关知识点

参考:自顶向下和TCP/IP卷1

主要关注的网络应用包括:web、目录服务、流式视频、P2P。

web

Web的应用层协议是HTTP,HTTP协议定义了HTTP报文的结构以及客户和服务器进行报文交换的方式。

HTTP

在这里插入图片描述
客户向它的套接字接口发送HTTP请求报文并从它的套接字接口接收HTTP响应报文,服务器端也类似。

TCP为HTTP提供可靠数据传输服务,因此,客户端进程发送的每个HTTP请求报文都能完整地到达服务器。

另外,HTTP是无状态协议,HTTP服务器并不保存关于客户的任何信息。

持续连接和非持续连接

非持续连接:
说白了就是每请求一个对象都创建一个新的TCP连接,并且该连接不为其他的对象而持续下来。
持续连接:
服务器在发送相应后保持该TCP连接打开,在相同的客户和服务器之间,后续的请求和相应报文能够通过相同的连接进行传送。

HTTP报文格式

HTTP请求报文的通用格式:
在这里插入图片描述
方法字段的值有GET\POST\HEAD\PUT\DELETE。

wireshark截图:
首部字段有那些:

HTTP相应报文的通用格式:
在这里插入图片描述

cookie

cookie允许站点对用户进行跟踪。cookie可以用于标识一个用户。用户首次访问一个站点时,可能需要提供一个用户标识(比如名字)。在后继会话中,浏览器向服务器传递一个cookie首部,从而向服务器标识了用户。因此cookie可以在无状态的HTTP之上建立一个用户会话层。(session与cookie)。通过cookie站点可以知道用户按照什么顺序、在什么时间、访问了那些页面,更进一步可以与已有的注册信息关联,向用户提供个性化推荐(淘宝、google也是这么)

cookie技术有4个组件:1)HTTP响应报文中的一个cookie首部行 2)HTTP请求报文中的一个cookie首部行 3)用户端系统保留一个cookie文件(chrome中是sqlite3文件),由用户浏览器进行管理 4)web站点的一个后端数据库。
在这里插入图片描述
ubuntu 查看chrome cookie文件
cookie文件的位置:~/.config/google-chrome/Default/Cookies
此文件为sqlite3文件,可以通过以下命令打开查看

sqlitebrowser ~/.config/google-chrome/Default/Cookies
条件GET

存放在高速缓存中的对象的副本可能是旧的。
HTTP协议有一种机制,允许缓存器证实它的对象是最新的。这就是条件GET方法。

如果:1)请求报文使用GET方法;2)请求报文中包含一个“If-Modified-Since”首部行。那么这个HTTP请求报文就是一个条件GET请求报文。

If-Modified-since告诉服务器,仅当自指定日期之后该对象被修改过,才发送该对象。如果对象没有被修改,服务器仍然发送一个响应报文,但不包含请求对象,状态行中为304 Not Modified,告诉缓存器可以使用该对象。

目录服务

域名系统(DNS)的主要任务是提供主机名到IP地址的转换的目录服务。所有的DNS请求和回答报文使用UDP数据报经端口53发送。

DNS使用了大量DNS服务器,它们以层次方式组织,并且分布在全世界范围(分布式、层次数据库)。有三种类型的DNS服务器:root DNS servers, top-level domain(TLD) DNS servers, and authoritative DNS servers。还用另一类重要的DNS服务器,叫做local DNS server。
当主机发送DNS请求时, 该请求被发往local DNS server,它起到代理的作用,并将该请求转发到DNS服务器层次结构中。

在这里插入图片描述

DNS缓存

为了改善时延性能并减少在因特网上到处传输的DNS报文数量,DNS广泛使用了缓存技术。比如local DNS server在收到一个回答后可以将映射缓存在本地存储器。
DNS在一段时间后将丢弃缓存信息。

DNS记录和报文

共同实现DNS分布式数据库的所有DNS服务器存储了资源记录(RR),RR提供了主机名到IP地址的映射。
RR是包含下列字段的四元组:(name, value, type, ttl)。ttl是该记录的生存时间,决定了资源记录从缓存删除的时间。name和value的值取决于type,type有A,NS,CNAME,MX

更具体的内容请查阅相关资料

DNS查询报文和回答报文有相同的格式,如下所示:
在这里插入图片描述

在DNS数据库插入记录

当向注册登记机构注册域名networkutopia.com时,需要向该机构提供你的primary and secondary authoritative DNS server的名字和IP地址。假设名字和IP地址为dns1.networkutopia.com和dns2.networkutopia.com及212.212.212.1和212.212.212.2。对于这两个authoritative DNS server 的每一个,注册登记机构确保将一个类型NS和一个类型A的记录输入TLD com服务器。注册机构将下列两条资源记录插入到DNS系统中:
在这里插入图片描述

视频流和内容分发网

流式视频应用接收到视频就进行播放,同时缓存该视频后面部分的帧。鉴于HTTP流的流式视频的缺陷(所有的客户接收到相同编码的视频),出现了一种新的基于HTTP的流,叫做Dynamic Adaptive Streaming over HTTP(DASH)。在DASH中,视频编码为几个不同的版本,其中每个版本具有不同的比特率,对应不同的质量水平。客户动态请求来自不同版本且长度为几秒的视频段数据块。
使用DASH后,每个视频版本存储在HTTP服务器中,每个版本都有不同的URL。HTTP服务器也有一个告示文件,为每个版本提供一个URL及其比特率。客户首先请求该告示文件并且得知各种各样的版本。然后客户通过在HTTP GET请求报文中对每块指定一个URL和一个字节范围,一次选择一块。

内容分发网

内容分发网 Content Distribution Network(CDN)。

CDN管理分布在多个地理位置上的服务器,在它的服务器中存储视频的副本,并且试图将每个用户请求定向到一个将提供最好的用户体验的CDN位置 。

CDN通常采用两种不同的服务器安置原则:

  • 深入。(Enter Deep)通过在遍及全球的接入ISP中部署服务器集群来深入到ISP的接入网中。
  • 邀请做客。(Bring Home) 通过在少量关键位置建造大集群来邀请到ISP做客。通常放置在因特网交换点(IXP)

在这里插入图片描述
大多数CDN利用DNS来截获和重定向请求
在这里插入图片描述

P2P文件分发

每个对等方能够帮助服务器分发该文件。特别是,当一个对等方接受到某些文件数据,它能够使用自己的上载能力重新将数据分发给其他对等方。

激励机制。

wireshark实验

官方实验地址

wireshark:HTTP

In this lab, we’ll explore several aspects of the HTTP protocol: the basic GET/response interaction, HTTP message formats, retrieving large HTML files, retrieving HTML files with embedded objects, and HTTP authentication and security.

基本HTTP GET/response交互
1
HTTP条件Get/response交互
在这里插入图片描述
在这里插入图片描述
检索长文件
在这里插入图片描述
具有嵌入对象的HTML文档
在这里插入图片描述
HTTP认证
在这里插入图片描述

wireshark:DNS

1.nslookup

可以从指定DNS服务器查询某条DNS记录。
在这里插入图片描述
2. ipconfig
ipconfig是windows上的命令,对应到linux是ifconfig + cat /etc/resolv.conf
其中cat /etc/resolv.conf可以用来显示DNS server IP
在这里插入图片描述
3.wireshark
ubuntu清除DNS缓存:sudo systemd-resolve --flush-caches
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值