wireshark分析应用层及应用笔记

wireshark分析http里面的get请求包

Hypertext Transfer Protocol
GET / HTTP/1.1\r\n #请求行信息#
[Expert Info (Chat/Sequence): GET / HTTP/1.1\r\n] #专家信息#
Request Method: GET #请求的方法#
Request URI: / #请求的URI#
Request Version: HTTP/1.1 #请求的版本#
Host: www.boomgg.cn\r\n #请求主机#//就是域名
Connection: keep-alive\r\n #使用持久链接#
Upgrade-Insecure-Requests: 1\r\n #升级不安全请求#
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36\r\n #浏览器类型#
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8\r\n #请求的类型#
Accept-Encoding: gzip, deflate, sdch\r\n #请求的编码格式#
Accept-Language: zh-CN,zh;q=0.8\r\n #请求语言#
Cookie: CNZZDATA155540=cnzz_eid%3D2093723420-1483596271-%26ntime%3D1483596271\r\n #Cookie信息#
Cookie pair: CNZZDATA155540=cnzz_eid%3D2093723420-1483596271-%26ntime%3D1483596271\r\n #Cookie对#
[Full request URI: http://www.boomgg.cn/] #请求的URI全称#
[HTTP request 1/3] #HTTP请求进度#
[Response in frame: 12] #响应帧#
[Next request in frame: 15] #下一个请求帧#

Hypertext Transfer Protocol
HTTP/1.1 200 OK\r\n #响应行信息#
[Expert Info (Chat/Sequence): HTTP/1.1 200 OK\r\n] #专家信息#
Request Version: HTTP/1.1 #请求版本#
Status Code: 200 #状态码#
Response Phrase: OK #响应短语#
Date: Tue, 31 Jan 2017 07:34:36 GMT\r\n #响应时间#
Server: Apache/2.4.6 (CentOS) PHP/5.4.16\r\n #服务器信息#
Last-Modified: Tue, 17 Jun 2014 16:00:47 GMT\r\n #上一次修改#
ETag: "4b8d-4fc0a3f32a9c0"\r\n #上一次修改标识#
Accept-Ranges: bytes\r\n #接收范围#
Content-Length: 19341\r\n #内容长度#
Keep-Alive: timeout=5, max=99\r\n #保持响应时间,以及最大值#
Connection: Keep-Alive\r\n #使用持久链接#
Content-Type: text/css\r\n #响应的内容类型#
[HTTP response 2/3] #HTTP响应#
[Time since request: 0.423110000 seconds] #响应使用时长#
[Prev request in frame: 5] #上一个请求的帧#
[Prev response in frame: 12] #上一个响应的帧#
[Request in frame: 15] #请求的帧#
[Next request in frame: 47] #下一个请求的帧#
[Next response in frame: 59] #下一个响应的帧#
File Data: 19341 bytes #文件数据大小#
Line-based text data: text/css #数据#

状态码都是三位数字,分为5大类。

1xx :表示通知信息,如请求收到了或正在进行处理。

2xx:表示成功了,如接受或知道了

3xx:表示重定位,如要完成请求还必须采取进一步的行动

4xx:表示客户的差错 如请求中有错误的语法或不能完成、

5xx:表示服务器的差错,如服务器失效无法完成请求

DNS(域名系统)----从域名解析出IP地址

      便于人们使用的机器名字转化为IP地址。用户在互联网上通信的时候,必须知道对方的IP地址,而计算机用户很难记得很长的二进制地址,故使用域名,DNS的功能就是把互联网上的主机名字转化为ip地址。

   机器在处理ip数据报时使用IP地址二为啥不使用域名呢;这是因为域名的长度不固定,机器处理起来比较费劲。

   DNS是大多数名字都在本地解析,仅少量解析需要在互联网上通信。因此效率很高。

  域名到IP地址的解析过程如下:当一个应用进程需要把主机名解析为IP地址时,该应用程序就调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器。本地域名服务器在查找到域名后,把对应的IP地址放在回答报文中返回。应用进程获得目的主机的ip地址后即可进行通信。

互联网的域名结构

DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写字母。级别最低的写在最左边,

而级别最高的顶级域名则写在最右边。例如  n级域名.n-1级域名....3级域名.2级域名.顶级域名

域名服务器

一个服务器所负责管辖的范围叫做区。各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到IP地址的映射。

1)根域名服务器

 根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和ip地址。根域名服务器是最重要的域名服务器。不管是哪一个本地域名服务器,若要对互联网上任何一个域名进行解析,只要自己无法解析的,就首先要求助于根域名服务器。

在许多情况下,根域名服务器并不直接把待查询的域名直接转换成ip地址(根域名服务器也没有存放这样的信息),而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。

2)顶级域名服务器

这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时,就给出相应的回答

3)权限域名服务器

负责一个区的域名服务器。当一个权限域名服务器还不能给出最后的查询回答时,就会告诉查询请求的DNS客户,下一步应当找哪一个权限域名服务器。

4)本地域名服务器

简单讨论一下域名的解析过程 

第一:主机向本地域名服务器的查询一般都是采取递归查询。递归查询就是如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其他根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。即本地域名服务器不会给主机另外一个本地域名服务器的地址,让主机去查找另外一个本地服务器,而是本地域名服务器替主机去查找。

 

基于TCP文件传送协议FTP

他们都是文件共享协议中的一大类,即复制整个文件,其特点是:若要存取一个文件,就必须先获得一个本地的文件副本,如果要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回到原结点。

文件共享协议中的另一大类是联机访问。联机访问意味着允许多个程序同时对一个文件进行存取。

文件传送协议FTP只提供文件传送的一些基本的服务,它使用TCP可靠的运输服务。FTP的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。

FTP使用客户服务器方式。一个FTP服务器进程可同时为多个客户端进程提供服务。FTP的服务器进程有两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

主进程的工作步骤如下:

1)打开熟知端口(端口号为21),使客户进程能够连接上

2)等待客户进程发出连接请求

3)启动从事进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。

4)回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的。

服务器端有两个从属进程:控制进程和数据传送进程。

客户端除了有这两个从属进程以外,还有一个用户界面进程用来和用户接口。

在进行文件传输时,FTP的客户端和服务器之间要建立两个并行的TCP连接:控制连接与数据连接。FTP客户端所发出的传送请求,通过控制连接发送给服务器的控制端,但控制连接并不用来传送文件。实际上用于传输文件的是“数据连接”。

NFS:允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。

万维网WWW:

万维网是一个大规模的,联机式的信息储藏所,万维网用链接的方法能非常方便地从互联网上的一个站点访问另一站点。

万维网是一个分布式的超媒体系统,他是超文本系统的扩充。所谓的超文本是指包含指向其他文档的链接的文本。

万维网以客户服务器方式工作。上面所说的浏览器就是在用户主机上的万维网客户端程序。万维网文档所驻留的主机这运行服务器程序,因此这台主机也被成为万维网服务器。客户端向服务器发现请求,服务器程序向客户程序送回客户所要的万维网文档。

万维网必须解决几个问题:

1.怎么标志分布在整个互联网上的万维网文档:

万维网使用统一资源定位符URL来标记万维网上的各种文档,具有唯一的标志符URL.

2.用什么样的协议来实现万维网上的各种链接

万维网的客户端和服务器之间的交互遵守严格的协议,就是超文本传送协议HTTP.HTTP是一个应用层协议,它使用TCP连接进行可靠的传送。

3)怎样使不同作者创作的不同风格的万维网文档,都能在互联网上的各种主机上显示出来,同时使用户知道在什么位置存在连接。

万维网使用超文本标记语言HTML,使得万维网页面的设计者可以很方便地用链接从本页面的某处链接到互联网上的任何一个万维网页面。

4)怎样使用户能够很方便地找到所需的信息

用户可使用搜索工具在万维网上方便查找所需的信息。

URL的格式:

统一资源定位符URL是用来表示从互联网上得到的资源位置和访问这些资源的方法。

URL的一般形式由以上四个部分组成:

<协议>://<主机>:<端口>/<路径>

URL的第一部分是最左边的<协议> 。这里的<协议>就是指出使用什么协议来获取万维网文档。现在最常用的协议就是http ,其次是ftp

 在协议后面的“://”是规定的格式,它的右边是第二部分<主机> 它指出这个万维网文档是在哪一台主机上,这里的<主机>就是指该主机在互联网上的域名。第三第四部分,有时候是可以省略。

使用HTTP的URL

HTTP的默认端口号是80 通常可以省略 若在省略文件的<路径>项  则URL就指到互联网上的某个主页。主页是一个很重要的概念,它可以是以下几种情况之一:

1)一个www服务器的最高级别的页面

2)某一个组织或部门的一个定制的页面或目录。从这样的页面可链接到互联网上的与本组织或部门有关的其他站点。

3)由某一个人自己设计的描述他本人情况的www页面

进去以后,就可以通过许多不同的链接找到所要查找的各种更加具体的信息。

用户使用URL并非仅仅能够访问万维网的页面,而且还能够通过URL使用其他的互联网应用程序中。用户在使用这些应用程序时,只使用一个程序,即浏览器。

超文件传输协议HTTP

HTTP协议定义了浏览器怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。从层次的角度上说,HTTP是面向事务的应用层协议。HTTP不仅传送完成超文本跳转所必需的信息,而且也传送任何可从互联网上得到的信息,如文本,超文本,声音和图像。

每个万维网网点都有一个服务器进程,不断地监听TCP的端口80,以便发现是否有浏览器向它发出建立请求。

一旦监听到连接建立请求并建立TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应,最后,TCP连接就被释放了。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式,这些格式和规则就是超文本传送协议HTTP.

HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢弃后又怎么被重传。但是,HTTP协议本身是无连接。

HTTP:HTTP的报文结构

请求报文---------从客户向服务器发送请求报文

响应报文--------从服务器到客户的回答

CR代表回车 LF代表换行

由于HTTP是面向文本的,因此在报文中的每一个字段都是一些ASCII码串,因而各个字段的长度都是不一样的

开始行:用于区分是请求报文还是响应报文,在请求报文中的开始行叫成请求行,而在响应报文中的开始行叫成状态行。

在请求行中:方法是指OPTION GET HEAD POST PUT .....

首部行,是用来说明浏览器,服务器,或报文主体的一些信息

响应报文中 

状态码:1XX 表示通知信息,如请求收到了或正在进行处理

              2XX 表示成功 如接受或知道了

              3XX 表示重定向 如要完成请求还必须采取进一步的行动

              4xx 表示客户的差错 如请求中有错误的语法或不能完成

              5xx 表示服务器的差错 如服务器失效无法完成请求

Cookie是这样工作的。当用户A浏览某个使用Cookie的网站时,该网站的服务器就为A产生一个唯一的识别码。

例如这个首部行是这样的:

Set-cookie:31d4d96e407aad42

 

电子邮件

 电子邮件系统:用户代理,邮件服务器,以及邮件发送协议(SMTP)和邮件读取协议(pop2)

 

                                                          邮件传送过程

用户代理:又称为电子邮件客户端邮件

SMTP和POP3都是使用TCP连接来传送邮件的,使用TCP的目的是为了可靠地传送邮件。

TCP/IP体系的电子邮件系统规定电子邮件的地址的格式如下:

用户名@邮件服务器的域名

简单邮件传送协议SMIP:

SMIP不使用中间的邮件服务器。不管发送方和接收方的邮件服务器相隔有多远,不管在邮件传送过程中要经过多少个路由器,TCP连接总在发送方和接收方这两个邮件服务器建立。

动态主机配置协议DHIP:
DHCP对运行客户软件和服务器软件的计算机都适用。当运行客户软件的计算机移至一个新的网络时,就可使用DHCP获取其配置信息而不需要手工干预。

DHCP使用客户服务器方式。需要IP地址的主机在启动时就向DHCP服务器广播发现报文(目的地址全是1 即255.255.255.255)。因为这台主机目前还没有自己的ip地址,因此它将Ip数据报的源ip地址设为全0。

应用进程跨越网络的通信

只要应用进程需要从操作系统中获得服务,就把控制权传递给操作系统,操作系统在执行必要的操作以后把控制权返回给应用进程。因此,系统调用接口就是应用进程的控制权和操作系统的控制权进行转换的一个接口。这种系统调用的接口又称为应用编程接口API。

网络编程时常常把套接字作为应用进程和传输层协议的之间的接口。

当应用进程(客户或服务器)需要使用网络进行通信时,首先发出socket系统调用,请求操作系统为其创建一个“套接字”。操作系统为这些资源的总和用一个叫做“套接字描述符”的号码(整数)来表示,然后把这个套接字描述符返回给应用进程。

主服务器进程一调用accept,就为每一个新的连接请求创建一个新的套接字,并把这个新创建的套接字的标志符返回给发起连接的客户方。主服务器进程还要创建一个从属服务器进程来处理新建立的连接。这样,从属服务器进程用这个新创建的套接字和客户进程建立连接,而主服务器进程用原来的套接字重新调用accept,继续接受下一个连接请求。

总之,在任一时刻,服务器总有一个主服务器进程和零个或多个从属服务器进程,主服务器进程用原来的套接字接受连接请求,而从属服务器进程用新创建的套接字。

P2P应用:

p2p应用就是指具有p2p体系结构的网路应用。所谓P2P体系结构就是在这样的网络应用中,没有(或只有极少数的)固定的服务器,而绝大多数的交互都是使用对等方式进行的。

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值