精华内容
下载资源
问答
  • 使用 IP 地址访问 Web 服务器 首先打开 Wireshark,选择 ”HTTP TCP port(80)“ 过滤器,再鼠标双击 ”Npcap ... ...如下: 抓包分析 在 Wireshark 里可以看到,一共抓取 11 个包,耗时约 0.65 秒,接着看按下回车后数

    使用 IP 地址访问 Web 服务器

    首先打开 Wireshark,选择 ”HTTP TCP port(80)“ 过滤器,再鼠标双击 ”Npcap loopback A dapter“,开始抓取本机 127.0.0.1 地址上的网络数据。

    接着在 Chrome 浏览器地址栏输入”http://127.0.0.1/“,再按下回车键,等欢迎页面显示出来后 Wireshark 就会有铺获的数据包。如下:
    在这里插入图片描述

    抓包分析

    在 Wireshark 里可以看到,一共抓取 11 个包,耗时约 0.65 秒,接着看按下回车后数据传输的全过程:

    HTTP 协议是依靠 TCP/IP 实现数据的可靠传输。所以浏览器要用 HTTP 协议收发数据,首先就是建立 TCP 连接

    在地址栏里直接输入了IP地址“127.0.0.1”,Web服务器的默认端口是80,浏览器就依照 TCP 协议的规范,使用 ”三次握手“ 建立与 Web 服务器的连接。对应到 Wireshark 里,就是最开始的三个包,浏览器的端口是 52085,服务器使用的端口是 80,经过 SYN、SYN/ACK,ACK 的三个包之后,浏览器与服务器的 TCP 连接就完成

    在这里插入图片描述
    有了可靠的 TCP 连接通道后,HTTP协议就可以开始工作。于是,浏览器按照HTTP协议规定的格式,通过 TCP 发送了一个“GET / HTTP/1.1”请求报文,也就是Wireshark里的第四个包

    在这里插入图片描述
    收到请求包后,Web 服务器回复了第五个包,在TCP协议层面确认:“刚才的报文我已经收到了”,不过这个 TCP 包 HTTP 协议是看不见的

    在这里插入图片描述
    回复收到后Web服务器就在内部处理这个请求。同样也是依据HTTP协议的规定,解析报文,看看浏览器发送这个请求想要干什么,原来是要求获取根目录下的默认文件,好吧,那我就从磁盘上把那个文件全读出来,再拼成符合 HTTP 格式的报文,发回去吧。这就是Wireshark里的第六个包“HTTP/1.1 200 OK”,底层走的还是TCP协议

    在这里插入图片描述
    同样的,浏览器也要给服务器回复一个 TCP 的 ACK 确认,“你的响应报文收到了,多谢”,即第七个包。但里面是什么呢?所以也要解析报文。一看,服务器给我的是个HTML文件,好,那我就调用排版引擎、JavaScript引擎等等处理一下,然后在浏览器窗口里展现出了欢迎页面。

    在这里插入图片描述
    这之后还有两个来回,共四个包,是浏览器自动请求了作为网站图标的“favicon.ico”文件,与我们输入的网址无关。但因为我们的实验环境没有这个文件,所以服务器在硬盘上找不到,返回了一个“404 Not Found”

    在这里插入图片描述
    至此,“键入网址再按下回车”的全过程就结束了。详细过程可以看下面的交互图,但图里TCP关闭连接的“四次挥手”在抓包里没有出现,因为HTTP/1.1长连接特性,默认不会立即关闭连接
    在这里插入图片描述

    使用域名访问 Web 服务器

    把地址栏的输入改成“http://www.chrono.com”,重复Wireshark抓包过程,会发现,好像没有什么不同,浏览器上同样显示出了欢迎界面,抓到的包也同样是11个:先是三次握手,然后是两次HTTP传输。

    那么浏览器是如何从网址里知道“www.chrono.com”的IP是“127.0.0.1”?

    当发现网址不是数字形式的 IP ,那就肯定是域名了,于是就会发起域名解析动作,通过访问一系列的域名解析服务器,试图把这个域名翻译成 TCP/IP 协议里的IP地址

    不过因为域名解析的全过程实在是太复杂了,如果每一个域名都要大费周折地去网上查一下,那我们上网肯定会慢得受不了。所以,在域名解析的过程中会有多级的缓存

    浏览器首先看一下自己的缓存,如果没有就向操作系统的缓存要,还没有就检查本机域名解析文件 hosts,也就是 “C:\WINDOWS\system32\drivers\etc\hosts”。刚好,里面有一行映射关系“127.0.0.1 www.chrono.com”,于是浏览器就知道了域名对应的IP地址,就可以愉快地建立TCP连接发送HTTP请求了

    我把这个过程如下图,但省略了TCP/IP协议的交互部分,里面的浏览器多出了一个访问hosts文件的动作,也就是本机的DNS解析。
    在这里插入图片描述

    网络世界

    真实的互联网世界要比这两个场景要复杂的多,用下面的这张图来做一个详细的说明。
    在这里插入图片描述
    如果用的是电脑台式机,那么可能会使用带水晶头的双绞线连上网口,由交换机接入固定网络。如果用的是手机、平板电脑,可能会通过蜂窝网络、WiFi,由电信基站、无线热点接入移动网络

    接入网络的同时,网络运行商会给你的设备分配一个IP地址,这个地址可能是静态分配的,也可能是动态分配的。静态IP就始终不变,而动态IP可能你下次上网就变了

    假设你要访问的是Apple网站,显然你是不知道它的真实 IP 地址的,在浏览器里只能使用域名“www.apple.com”访问,那么接下来要做的必然是域名解析。这就要用DNS协议开始从操作系统、本地DNS、根DNS、顶级DNS、权威DNS的层层解析,当然这中间有缓存,可能不会费太多时间就能拿到结果

    另外,互联网上还有另外一个重要角色CDN,它也会在DNS的解析过程中“插上一脚”。DNS解析可能会给出CDN服务器的IP地址,这样你拿到的就会是CDN服务器而不是目标网站的实际地址

    因为CDN会缓存网站的大部分资源,比如图片、CSS样式表,所以有的HTTP请求就不需要再发到Apple,CDN就可以直接响应你的请求,把数据发给你

    由PHP、Java等后台服务动态生成的页面属于“动态资源”,CDN无法缓存,只能从目标网站获取。于是你发出的HTTP请求就要开始在互联网上的“漫长跋涉”,经过无数的路由器、网关、代理,最后到达目的地

    目标网站的服务器对外表现的是一个IP地址,但为了能够扛住高并发,在内部也是一套复杂的架构。通常在入口是负载均衡设备,例如四层的LVS或者七层的Nginx,在后面是许多的服务器,构成一个更强更稳定的集群

    负载均衡设备会先访问系统里的缓存服务器,通常有memory级缓存Redis和disk级缓存Varnish,它们的作用与CDN类似,不过是工作在内部网络里,把最频繁访问的数据缓存几秒钟或几分钟,减轻后端应用服务器的压力

    如果缓存服务器里也没有,那么负载均衡设备就要把请求转发给应用服务器了。这里就是各种开发框架大显神通的地方了,例如Java的Tomcat/Netty/Jetty,Python的Django,还有PHP、Node.js、Golang等。它们又会再访问后面的MySQL、PostgreSQL、MongoDB等数据库服务,实现用户登录、商品查询、购物下单、扣款支付等业务操作,然后把执行的结果返回给负载均衡设备,同时也可能给缓存服务器里也放一份

    应用服务器的输出到了负载均衡设备这里,请求的处理就算是完成了,就要按照原路再走回去,还是要经过许多的路由器、网关、代理。如果这个资源允许缓存,那么经过CDN的时候它也会做缓存,这样下次同样的请求就不会到达源站了。

    最后网站的响应数据回到了你的设备,它可能是HTML、JSON、图片或者其他格式的数据,需要由浏览器解析处理才能显示出来,如果数据里面还有超链接,指向别的资源,那么就又要重走一遍整个流程,直到所有的资源都下载完

    小结

    浏览器访问服务器 HTTP 请求过程

    • 浏览器从地址栏的输入中获取服务器的 IP 地址和端口号
    • 浏览器用 TCP 的三次握手与服务器建立连接
    • 浏览器向服务器发送拼好的报文
    • 服务器收到报文后处理请求,同样拼好报文再发给浏览器
    • 浏览器解析报文,渲染出页面

    EOF
    《透视 HTTP》学习笔记

    展开全文
  • A10 负载均衡抓包方法

    千次阅读 2016-08-01 20:19:08
    1,登录方式 (1)Console方式设置说明 ...将PC的IP地址配置为与AX的MGMT接口同网段的地址(如:172.31.31.33/24)。...1) 当通过SSH客户端... (3)分析抓包输出结果  (4)结束抓包输入:  No debug all
    原网址:http://www.vants.org/?post=178
    1,登录方式
    (1)Console方式设置说明
    COM的参数设置如下图所示:
    点击查看原图
    AX的默认用户名为:admin,默认密码为:a10。
    (2)SSH/Telnet方式登录说明
    AX的MGMT接口的默认IP地址为:172.31.31.31/24。将PC的IP地址配置为与AX的MGMT接口同网段的地址(如:172.31.31.33/24)。采用SSH客户端软件(如:PuTTY)等访问AX的MGMT接口地址。
    CLI命令行模式说明
    AX采用类似Cisco的命令行模式,便于工程师操作和维护。
    1) 当通过SSH客户端软件或远程终端软件登录AX时,并输入用户认证信息后,则进入AX的用户模式:
    2) 
    jjwxc-2>
    3) 在用户模式下,AX只允许使用一些基本的命令,查询状态基本信息。具体可使用的命令列表可通过“?”来查询。
    jjwxc-2>?
      axdebug     AX Debug Commands
      enable      Turn on privileged commands
      exit        Exit from exec
      help        Description of the Interactive Help System
      no          Negate a command or set its defaults
      ping        Send ICMP echo messages
      show        Show Running System Information
      ssh         Open an ssh connection
      telnet      Open a telnet connection
      traceroute  Trace route to destination
    Debug抓包分析命令
    抓包命令设置如下:
    (1)首先设置过滤条件:
    Debug packet [ l3 ip <clientip vip or serverip> ] [ l4 TCP/UDP  port  端口号 ]
    (2)启用抓包输入
                 Debug monitor
     (3)分析抓包输出结果
     (4)结束抓包输入:
                No debug all
    展开全文
  • 笔者在研究四层负载均衡的时候,有读到这么一篇博客: ...文中提到的一点笔者存在一些困惑,我把原文截图出来: 对于文章中的描述,笔者不是太...所以下面笔者做了实验并抓包分析。 首先第一次使用的是haproxy,实验...

    笔者在研究四层负载均衡的时候,有读到这么一篇博客:

    https://blog.csdn.net/friends99/article/details/79803638

    文中提到的一点笔者存在一些困惑,我把原文截图出来:
    在这里插入图片描述

    对于文章中的描述,笔者不是太理解为什么服务器会和客户端直接建立连接,负载均衡会修改数据包源地址又是什么意思?所以下面笔者做了实验并抓包分析。

    首先第一次使用的是haproxy,实验拓扑如下
    在这里插入图片描述

    笔者将环境部署好后,用client去访问负载均衡以请求web内容,同时分别在haproxy的内网口和client的网口上抓包进行查看,下面的截图是抓到的包中笔者认为比较重要的部分:

    haproxy内网口

    在这里插入图片描述

    client网口
    在这里插入图片描述

    从抓到的数据包中可以分析TCP三次握手与四次挥手,负载均衡以源IP为自己,目的IP为后端的web,将数据包进行了转发,可证实博客中我划了红线的部分

    下面是对蓝线部分的抓包分析,拓扑类似,仅将haproxy换成了lvs

    以同样的方法进行抓包,得到:

    client网口,lvs起转发作用

    在这里插入图片描述

    lvs内网口,可以看到web是直接将数据包回给client的

    在这里插入图片描述

    这里我的理解是,lvs将client的请求进行转发,转发的时候将包的源地址(本来应该是lvs)改成了client,web根据接收请求数据包的源地址,在回包的时候直接将数据包路由给client。我想到的这么做的理由是,client来自外网,那web向client回数据必定需要路由,若负载均衡不是网关且不修改转发的包的源地址(这样的话源地址是负载均衡),那么web将会把包回给负载均衡设备,负载均衡再经过网关将数据路由给client……这么做相当于回包的时候还要从负载均衡走一趟,浪费资源。

    通过上面两次观察,笔者大致能理解博客中所说的意思,只是不知道有没有理解偏差。欢迎广大读者留下建议,若文章中有什么不对的地方也请批评指出。感谢!!

    展开全文
  • 无意中发现了一个巨牛的人工智能...两台UDP SERVER,通过F5实现硬件的UDP负载均衡,发现UDP SERVER上会定期收到F5的UDP探测,但是UDP SERVER并没有对这些探测做过任何响应,所以不明白F5是如何知道UDP SERVER...

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程。

    项目背景

    两台UDP SERVER,通过F5实现硬件的UDP负载均衡,发现UDP SERVER上会定期收到F5的UDP探测包,但是UDP SERVER并没有对这些探测包做过任何响应,所以不明白F5是如何知道UDP SERVER是活的还是死的?

     

    两台UDP SERVER

    172.28.17.52

    172.28.17.54

    VIP

    172.28.26.13

     

    主备F5

    172.28.26.251

    172.28.26.252  

     

    当把两台UDP SERVER都停掉之后,F5显示如下:

    红色代表不可达

    当单独启动52的UDP SERVER后,F5显示如下:

     

    52的服务器上日志显示一直在收包,ip是F5的

    但是就程序而言,本身是并没有对探测包做出任何响应的,所以抓包看看

    52的机器上只发现有F5来的探测包,并没有发现有52回过去的响应包

     

    54上再抓包,54进程停掉了

    54进程不在,F5依然是在持续的发探测包的,UDP,同时可以看出54给F5回了ICMP的包,destination unreachable,搞之F5设备,当前机器不可达,此时F5就知道了54不可达,随即更自己维护的节点状态信息

    那么ICMP报文的作用是什么呢?

    ICMP协议主要用来检测网络通信故障和实现链路追踪,最典型的应用就是PING和tracerooute。

    PING:

        通过发送回送请求报文和回送回答报文来检测源主机到目的主机的链路是否有问题,目的地是否可达,以及通信的延迟情况。

    traceroute:

        通过发送探测报文来获取链路地址信息。第一个探测报文TTL为1,到达第一个路由器时,TTL减1为0所以丢掉这个探测包,同时向源主机发回ICMP时间超过报文,这时源主机就获得了第一个路由器的IP地址;接着源主机发送第二个探测报文,TTL增1为2,到达第一个路由器TTL减1为1并转发探测包到第二个路由器,这时TTL减1为0,丢掉这个探测包并向源主机发回ICMP时间超过报文,源主机就获得了第二个路由器的IP地址;以此类推,直到探测报文到达traceroute的目的地,这时源主机就获得了到目的地的每一跳路由的IP地址。

    由此不难看出为什么F5能知道后端real server的节点状态了

    展开全文
  • 平常的工作中,在衡量服务器的性能时,经常会涉及到几个指标,load、cpu、mem、qps、rt等。每个指标都有其独特的意义,很多时候在线上出现问题时,往往会伴随着某些指标的异常。大部分情况下,在问题发生之前,某些...
  • LVS 是 Linux Virtual Server 的简写,即 Linux 虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。(百科) kube-proxy 的ipvs模式是 2015年由...
  • 负载均衡服务器

    2020-11-10 12:03:17
    所以就需要负载均衡对用户请求进行调度,把请求分配给web集群中的各台web服务器。这样每台web服务器处理的请求就少了,就可以快速响应客户的请求。 什么是集群 简单的说就是完成相同任务或工作的一组服务器。比如web...
  • 搭建一个简单的lvs nat 模式的负载均衡环境,用来验证一下整个访问请求过程的数据包走向流程。 2. LVS的nat模式的服务器架构图 注意在架构图中的说明。 客户端和realserver不能再同一个网段,不然直接响应,不走...
  • 理论概述 创建ECS实例 负载均衡服务是ECS面向多机方案的一个配套服务,需要同ECS结合使用。本教程中,创建两台ECS实例处理负载均衡监听转发的流量。 搭建应用 ... 添加监听和后端服务器 ...
  • 这一节介绍抓包工作原理,以及在现代企业中要实现7*24小时实时数据包采集该如何的部署相关产品的概要信息。 抓包工作原理 数据包采集过程涉及软件和硬件之间的协作过程,主要分为3个过程。 第一, 采集。数据包在...
  • 网页抓包 首先对于网页爬虫来说怎么抓包呢?很简单,我们直接在网页上右键点击检查或者快捷键 F12 就可以进入开发者调试工具。如果页面是经过请求接口而返回的数据的话,在 Network 中,它就会产生请求的数据,我们...
  • 2.抓包分析 2.1准备工作: (1)在window系统cmd输入 ping www.baidu.com; (2)开启wirshark找到正在访问互联网的网卡,筛选DNS包,开始抓包; (3)然后在命令行输入回车确定ping,等待过程完毕,停止抓包; ...
  • 因为 集线器是一种物理层的设备 他不会识别数据包 只会将接受到的数据包进行防洪法发送出去 抓包软件可以可以通过 网络监视数据包 进行抓包分析 交换机环境 (1)端口镜像方式 交换机的转发数据的模式 是根据它的...
  • Postman提供了轻松查看和捕获应用程序中发送和接收的实际HTTP请求流量的工具, 可以在Postman本机应用程序中使用内置代理进行抓包。 1、postman内置代理 postman有一个可以捕获HTTP请求的代理。 postman应用...
  • Wireshark抓包实验

    2020-11-18 17:11:43
    本文是通过Wireshark的抓包实验来学习数据链路层、网络层、传输层、应用层,了解帧、IP包、段等的结构,对网络有更深的认识。 文章目录摘要数据链路层实作一 熟悉 Ethernet 帧结构实作二 了解子网内/外通信时的 MAC...
  • 内容包括DHCP 服务器搭建与管理、DNS服务器搭建与管理、IIS服务器的搭建与管理、PKI与SSL网站搭建与管理、FTP服务器的搭建与管理、打印服务器的...群集服务器的搭建与管理、网络负载平衡群集(NLBC)服务器的搭建与管理...
  • 基于服务器负载均衡(SLB) 注意:SLB已经集成NAT功能,因此不需要额外配置基于服务器的NAT 定义真实服务器 <SRG>SY [SRG]slb enable [SRG]slb [SRG-slb]rserver 1 ? rip Indicate real server IP ...
  • 网络抓包学MQTT物联网协议

    万次阅读 2017-09-15 08:17:54
    笔者提供了一种深入浅出的方法,通过使用 WireShark 进行网络抓包,结合真实存在网络字节,深入其中,来一场栩栩如生的学习体验。另作者为了照顾没有基础背景的读者,将会安装下面的顺序循序渐进的进行说明和分享。
  • 计算机网络Wireshark抓包实操

    千次阅读 2020-12-23 13:01:54
    计算机网络分层Wireshark抓包分析实操一、Wireshark简介二、实操内容(一)数据链路层 一、Wireshark简介 Wireshark常用于网络通信的抓包分析,通过抓取通信过程中的数据包,分析其中所携带的信息,进一步了解网络...
  • 海康rtsp抓包分析

    千次阅读 2019-08-05 14:23:04
    海康h264 rtp/rtsp/rtcp分析1、DESCRIBE rtsp://192.168.0.186:554/mpeg4/ch01/main/av_stream RTSP/1.0 CSeq:0 Acc...
  • Wireshark学习

    千次阅读 多人点赞 2020-01-31 14:00:32
    负载共享抓包模式下抓包,若进出服务器流量过高,采用方法1,将会把两块网卡京享值Wireshark主机单网卡。这种流量已经超过了网卡接包的最大流量上限,Wireshark主机不可能抓全所有服务器流量,某数据包势必会被...
  • python:抓包利器fiddler常识(一)

    千次阅读 2018-10-30 08:38:24
    web代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代理服务器也会将数据拦截,...
  • 抓包.png 这是一个完整的请求抓包。这样看,不是很清晰,我来画个图来表达下这个过程发生了什么。 请求流程 三次握手和四次挥手我们就不说了,这个才讲TCP的时候有详细介绍。 我们一步一步的看 第一步 Client Hello...
  • 网络性能测试及抓包

    2021-04-07 11:28:31
    webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。 Webbench最多可以模拟3万个并发连接去测试网站的负载能力。官方主页:http://home.tiscali.cz/~cz210552/webbench....
  • tcp协议抓包详解

    千次阅读 2020-07-15 21:35:05
    三次握手 握手的目标 抓包 序列号client 和server 是不一样的,也没从0开始 网络报文中报文可能会延迟,会重发,丢失。 为了不影响其他链接,所以是不同的而且是随机的
  • tcpdump抓包命令

    千次阅读 2019-06-29 21:03:15
    有时分析客户端和服务器网络交互的问题时,为了查找问题,需要分别在客户端和服务器抓包,我们的客户端一般是windows上的,抓包比较简单,直接使用wireshark抓取即可。而服务器则是Linux,需要使用ssh远程登陆到...
  • 网络:抓包分析dns的原理

    千次阅读 2020-10-23 11:48:03
    DNS是什么 在互联网上有多达到上亿的设备,而...DNS 是互联网上重要的基础应用程序,它作为一个分布式数据库,域名服务器分布在世界各地,储存着域名与 IP 地址的映射关系,每个域名服务器上值存储了部分域名信息。因此
  • 计算机网络-Wireshark 实验 Wireshark 计算机网络-Wireshark 实验Wireshark 实验一、数据链路层1.实作一熟悉 Ethernet 帧结构2.实作二 了解子网内/外通信时的 ...实作一 熟悉 IP 结构2.实作二 IP 的分段与重组3.
  • tcpdump抓包分析详解

    万次阅读 2017-01-12 15:05:22
    tcpdump能帮助我们捕捉并保存网络包,保存下来...1.针对特定网口抓包(-i选项) 当我们不加任何选项执行tcpdump时,tcpdump将抓取通过所有网口的包;使用-i选项,我们可以在某个指定的网口抓包: linux:/tmp/lx # tcpd
  • ubuntu中抓包工具tcpdump使用详解

    千次阅读 2020-03-06 11:30:35
    用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的分析工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,679
精华内容 5,871
关键字:

服务器抓包负载