首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

记一次完整的网络通信过程

全文概要 写完前面几篇对网络硬件设备以及对应工作机制的介绍之后,我觉得有必要再多有一篇博文对网络中的端到端通信过程进行完整的解析,本文对同一网段内、跨网段主机通信两种情形分别列举两个简单示例,分别描述了通信过程中各硬件设备和网络协议的协同工作流程...具体分析过程参见此篇 网际通信 ---- 网际通信,即通信双方分处不同网段,数据传输需经过路由器(或三层交换机)才能完成不同网段的通信。 以下图拓扑为例: ?...ARP表中并无默认网关对应的表项,则进行上一节中相同的ARP过程以获知默认网关MAC地址,之后根据此MAC地址,本机将数据包封装成帧后发送给默认网关。...值得注意的是,此数据包的目的MAC地址为默认网关的MAC地址,而目的IP地址仍为目的主机的IP地址,即:源、目的MAC地址在帧转发过程中会被修改为本跳和下一跳的MAC地址,而源、目的IP地址则始终不变;...具体分析过程参见此篇

4.6K20

程序启动的完整过程

程序启动的完整过程 int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain...>.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard) 创建UIWindow 创建和设置UIWindow的rootViewController...显示窗口 窗口(UIWindow) 一种特殊的UIView,一个app中至少有一个UIWindow iOS启动完毕后创建的第一个视图就是UIWindow 接着创建控制器,再把控制器的View加到UIWindow...若加载xib文件传入name参数,则按参数描述的加载 若未传入参数 先加载与控制器名字的View.xib 若控制器命名为YLViewController,则首先加载YLView.xib 而后加载与控制名字一样的...) 销毁view,首先不在视野中得view viewDidUnload(view销毁完毕) 处理应用程序的一些生命周期方法 // 程序启动完成的时候调用 // __func__:表示当前的方法在哪个类里面调用

1.5K150
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    127.0.0.1 之本机网络通信过程知多少 ?!

    我们拆解完了 Linux 网络包的接收过程,也搞定了网络包的发送过程。内核收发网络包整体流程就算是摸清楚了。...和外网网络通信相比,在内核收发流程上有啥差别? 铺垫完毕,拆解正式开始!! 一、跨机网路通信过程 在开始讲述本机通信过程之前,我们还是先回顾一下跨机网络通信。...1.3 跨机网络通信汇总 二、本机发送过程 在第一节中,我们看到了跨机时整个网络发送过程(嫌第一节流程图不过瘾,想继续看源码了解细节的同学可以参考 拆解 Linux 网络包发送过程) 。...三、本机接收过程 在跨机的网络包的接收过程中,需要经过硬中断,然后才能触发软中断。而在本机的网络 IO 过程中,由于并不真的过网卡,所以网卡实际传输,硬中断就都省去了。...这样和前面发送过程的结尾处就对上了。发送过程是把包放到了 input_pkt_queue 队列里,接收过程是在从这个队列里取出 skb。

    1.4K30

    一次完整的HTTP请求过程

    ,那么浏览器会搜索系统自身的DNS缓存 c)如果还没有找到,那么尝试从 hosts文件里面去找 d)在前面三个过程都没获取到的情况下,就递归地去域名服务器去查找,具体过程如下 [图1] DNS优化两个方面...GET: 完整请求一个资源 (常用)   HEAD: 仅请求响应首部   POST:提交表单  (常用)   PUT: (webdav) 上传文件(但是浏览器不支持该方法)   DELETE:(webdav...浏览器对页面进行渲染呈现给用户 最后,浏览器利用自己内部的工作机制,把请求的静态资源和html代码进行渲染,渲染之后呈现给用户,浏览器是一个边解析边渲染的过程。...DOM节点中的各个元素都是以盒模型的形式存在,这些都需要浏览器去计算其位置和大小等,这个过程称为relow;当盒模型的位置,大小以及其他属性,如颜色,字体,等确定下来之后,浏览器便开始绘制内容,这个过程称为...保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。 自此一次完整的HTTP事务宣告完成.

    8.8K31

    Tomcat 一个请求的完整过程

    Tomcat 是一个广泛使用的开源 Java Servlet 容器,它处理客户端请求并返回响应。...一个请求从客户端发送到 Tomcat 服务器,再到应用程序处理,最后返回响应的完整过程可以分为以下几个步骤:1. 客户端发起请求客户端(如浏览器)通过 HTTP 协议向 Tomcat 服务器发送请求。...请求到达 Tomcat 服务器请求首先到达 Tomcat 服务器的连接器(Connector)。连接器负责监听特定端口(如 8080)上的 HTTP 请求,并将请求传递给处理线程。3....请求分发Tomcat 的核心组件之一是容器(Container),它负责将请求分发到相应的 Servlet 或 JSP 页面。容器包括多个层次:Engine:代表整个 Tomcat 服务器。...调用 Servlet 或 JSP一旦请求被路由到特定的 Servlet 或 JSP,Tomcat 会调用相应的 service 方法(对于 Servlet)或 jspService 方法(对于 JSP)

    4700

    详细完整的说说对象实例化过程

    对象的实例化过程需要做哪些工作呢?...其次,对象大多存储在堆内存中,这就涉及到内存的分配。除此之外,还有变量的初始化零值,对象头的设置,在栈中创建对象的引用等等,本文我们来一起详细的分析一下对象的完整实例化过程。...整体流程 从整天上来看对象的整个实例化过程如下图所示: Java类实例化过程 为了故事的顺利发展,这里我们定义一个 Demo,并据此详细讨论一下 dc 对象是如何创建并实例化出来的。...类加载过程 类加载过程总的可分为7个步骤:加载、验证、准备、解析、初始化、使用、卸载。这里我们看一下前六个阶段。 加载 加载阶段主要干了三件事: 根据类的全限定名获取类的二进制字节流。...在这里就是讲对象的引入入栈,并返回赋值给 dc,至此,一个对象被创建完成。 对象实例化的完整流程 根据上面的讨论,我们再来回顾一下对象实例化的整个流程:

    72120

    一次完整的源码阅读过程

    前言 我觉得每个人可能都有过看源码的想法吧,也包括我。因为看源码不光能使自己对这个库更加熟悉,还能学习到作者强大的思想,久而久之,自己的水平和思想也会有明显的提升的。...即先会熟练使用这个库的各个方法(尽管你并不知道为何这么使用),再在阅读源码的过程中看到相应的代码时联想到那个方法的使用,两者相互结合,对于源码的理解就变得容易许多了 这里放上 Vuex 官方文档的链接,...「问答环节」 ❞ 源码解析 对于源码的所有注释和理解我都收录在我 github 的 Vuex-Analysis 仓库里了,想要看更详细的注释的,可以 fork 下来参考一下(点击文末的 「阅读原文」...为了保证 Vuex 的源码阅读进度,就先舍弃阅读 dev-tools 插件的内容了 3.6 其它方法 整个 Store 实例生成的全过程差不多就是这样了,另外还会发现,其实有很多方法都没有被用到,但是却被定义出来了...,等之后回头来看之前看不懂的代码时,就会明白了 阅读源码的过程中,看到某些变量或函数时,先看命名,因为这些命名的字面意思基本上就代表了它的作用,然后要学会联想到这个正常的调用是什么样的,这样更便于理解

    2.9K10

    【Java】图书管理系统的完整实现过程

    的对象 normalUser ,名字为上面接收姓名的 name 程序入口,main函数 实例化一个书架 BookList 的对象 bookList 实例化一个 User 的对象 user ,调用 login...ioPeration 数组中,方便后续通过下标进行访问操作 重写菜单 menu() 的实现方法 创建一个 choice 成员变量 用来接收用户输入的数字 返回接收的数字 代码(user.User.AdminUser...ioPeration 数组中,方便后续通过下标进行访问操作 重写菜单 menu() 的实现方法 创建一个 choice 成员变量 用来接收用户输入的数字 返回接收的数字 代码(user.User.NormalUser...对象 book 用来接收当前通过 getBook() 方法取到的书籍的信息 分别对取到的书名与目标书名进行相等判断 找到,return 找不到 代码(operation.FindOperation...实例化一个 Book 类对象 book,用来接收 bookList 通过下标依次调用 getBook() 方法所得到的书籍的信息 打印出每一个 book 的信息 代码(operation.ShowOperation

    17710

    OFDM完整仿真过程及解释(MATLAB)

    因为是复制过来,如果出现图片显示不完整以及需要源程序请点击下面链接查看原文: OFDM完整仿真过程及解释(MATLAB) – 子木的文章 – 知乎 点击这里访问原文 后面的更新没有同步,点上面链接可以看更新部分...,这篇代码的目的只是希望能对ofdm整个过程有一个理解; 1.看书上ofdm介绍挺简单的,自己来仿真才发现很多知识点都不知道; 2.花了很长时间才理清整个ofdm过程,网上的程序都是一段一段的,不能直接理解整个过程...所以想着自己来做一个完整过程的仿真,加深理解; 3.基带信号能完成整个过程,但是想加进频带传输这一部分,就完整了; 4.信道部分想用瑞利信道的,程序写出来了,但是误差和信道估计这一块还不是很明白,所以就先用的高斯信道...频域调制信号X[k]的频率为:fk=k/Tsym,子载波数量为N,则k=0,1,2…..N-1。(由DFT原理推导) 四、过程中涉及的技术 为什么要用?怎么用?...4.2交织 交织的作用是将突发错误转换为随机错误,有利于前向纠错码的译码,提高了整个通信系统的可靠性。交织由两个变换过程组成。第一次变换保证了相邻的编码比特被映射到不相邻的子载波上。

    2.6K20

    从输入URL到渲染的完整过程1

    浏览器有一个重要的安全策略,称之为「同源策略」其中,源=协议+主机+端口,**两个源相同,称之为同源,两个源不同,称之为跨源或跨域同源策略是指,若页面的源和页面运行过程中加载的源不一致时,出于安全考虑,...浏览器会对跨域的资源访问进行一些限制图片同源策略对 ajax 的跨域限制的最为凶狠,默认情况下,它不允许 ajax 访问跨域资源图片所以,我们通常所说的跨域问题,就是同源策略对 ajax 产生的影响有多种方式解决跨域问题...它的总体思路是:如果浏览器要跨域访问服务器的资源,需要获得服务器的允许图片而要知道,一个请求可以附带很多信息,从而会对服务器造成不同程度的影响比如有的请求只是获取一些新闻,有的请求会改动服务器的数据针对不同的请求...,高兴的像一个两百斤的孩子,于是,它就把响应顺利的交给 js,以完成后续的操作下图简述了整个交互过程图片需要预检的请求简单的请求对服务器的威胁不大,所以允许使用上述的简单交互即可完成。...: Tue, 21 Apr 2020 08:03:35 GMT...Access-Control-Allow-Origin: http://my.com...添加用户成功可以看出,当完成预检之后,后续的处理与简单请求相同下图简述了整个交互过程图片附带身份凭证的请求默认情况下

    66840

    完整的一次 HTTP 请求响应过程(一)

    至此,我们简单描述了一个域名解析的大致过程,还有一些细节之处并未提及,我们等会会通过一个实例来完整的看一下,下面描述一个非常重要的概念。...整个 DNS 解析过程中,有一个非常核心的人物我们一直没介绍它,它就像主机的『助理』一样,帮助主机查询域名的 IP 地址。它叫做『本地 DNS 服务器』。 ?...除此之外,本地 DNS 服务器往往是具有缓存功能的,通常两天内的记录都会被缓存,所以大部分时候你是感觉不到域名解析过程的,因为往往就是从缓存里拿的,非常快。...TCP 和 UDP 是运输层的两个协议,前者是基于连接的可靠传输协议,后者是无连接的不可靠传输协议,所以前者更适合于一些对数据完整性要求高的场合,后者则适合于那种可以允许数据丢失但对传输速率要求特别高的场景...例如:如果服务端发送多个对分组 5 的 ACK 确认,那说明什么?说明目前我服务端完整的向上交付的序号是 5 号,后续的报文我没收到,你最好重新发一下别等待超时了。 这也是『快速重传』的核心原理。

    96100

    一个完整系统的测试过程

    2、 需求不明确   对于青少年足球系统而言,需求全来自教育厅,里面同样有很多需求不明确,全过程尽量与教育厅的需求进行延伸,然后结合开发人员实际开发的效果,进行测试过程!  ...c)删除源文件内容   我们在赛事测试的过程中,设计上传参赛表明表,在测试过程中,我将部分信息删除,进行测试!   ...评审:在提交缺陷报告之前,最好有一个有经验的测试人员阅读一遍。   缺陷报告编写的过程:   B.缺陷报告的提交   缺陷报告的提交,在测试过程中,我们采用了两种方式   1、提交给我们的指导老师!...E.并描述与开发人员的交互过程   在我们与开放人员交互的时候:交互过程中存在的问题,当部分子功能模块做出来的时候,我们测试人员开始测试子功能模块的时候,测出问题的时候,我们便直接与开发人员提出此问题,...G.最后对测试缺陷报告的综述(好方法,注意事项,怎样才能够做好测试缺陷报告)   测试执行过程注意事项:   注意前提条件和特殊说明   测试用例要全部执行   不要忽视任何偶然现象   加强测试过程的记录

    62031

    完整的一次 HTTP 请求响应过程(二)

    网络层 链路层 ---- 上篇文章 我们完整的描述了计算机五层模型中的『应用层』和『运输层』,阐述了较为复杂的 TCP 协议的相关原理,相信大家一定也有所收获,那么本篇将继续五层模型的学习。...而完整的 DHCP 请求与响应的过程则是这样的: 第一步: DHCP 服务器发现。...路由器 路由器是网络层的一个核心设备,它完成了从「目的 IP 地址」到「目的 IP 所在的子网络」的完整路径转发过程。它的内部结构如下: ?...第二步是一个不断进行的过程,相邻的路由器之间每隔 30 秒就相互交换信息,告知对方自己的转发表内容。...关于整个 OSI 五层模型,我们从上至下也已经完成了学习,下一篇将完整的看看 「www.baidu.com」之后,整个计算机网络发生的故事,其实有点标题党了,最后一篇才介绍完整的 HTTP 请求过程,见谅

    58720

    一次完整的http请求处理过程

    一次完整的http请求处理过程 1、建立连接:接收或拒绝连接请求 2、接收请求:接收客户端请求报文中对某资源的一次请求的过程 3、处理请求:服务器对请求报文进行解析,并获取请求的资源及请求方法等相关信息...HEAD、PUT、DELETE、TRACE、OPTIONS 4、访问资源:服务器获取请求报文中请求的资源web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源...响应报文中通常包括:描述了响应主体MIME类型的Content-Type首部描述了响应主体长度的Content-Length实际报文的主体内容 2)URL重定向:web服务构建的响应并非客户端请求的资源...多种配置服务器的方法可将MIME类型与资源管理起来魔法分类:Apache web服务器可以扫描每个资源的内容,并将其与一个已知模式表(被称为魔法文件)进行匹配,以决定每个文件的MIME类型。...服务器可能有很多条到各个客户端的连接,有些是空闲的,有些在向服务器发送数据,还有一些在向客户端回送响应数据。服务器要记录连接的状态,还要特别注意对持久连接的处理。

    59830

    完整的一次 HTTP 请求响应过程(二)

    上篇文章 我们完整的描述了计算机五层模型中的『应用层』和『运输层』,阐述了较为复杂的 TCP 协议的相关原理,相信大家一定也有所收获,那么本篇将继续五层模型的学习。...而完整的 DHCP 请求与响应的过程则是这样的: 第一步: DHCP 服务器发现。...路由器 路由器是网络层的一个核心设备,它完成了从「目的 IP 地址」到「目的 IP 所在的子网络」的完整路径转发过程。它的内部结构如下: ?...第二步是一个不断进行的过程,相邻的路由器之间每隔 30 秒就相互交换信息,告知对方自己的转发表内容。...关于整个 OSI 五层模型,我们从上至下也已经完成了学习,下一篇将完整的看看 「www.baidu.com」之后,整个计算机网络发生的故事,其实有点标题党了,最后一篇才介绍完整的 HTTP 请求过程,见谅

    89200

    完整的一次 HTTP 请求响应过程(一)

    至此,我们简单描述了一个域名解析的大致过程,还有一些细节之处并未提及,我们等会会通过一个实例来完整的看一下,下面描述一个非常重要的概念。...整个 DNS 解析过程中,有一个非常核心的人物我们一直没介绍它,它就像主机的『助理』一样,帮助主机查询域名的 IP 地址。它叫做『本地 DNS 服务器』。 ?...除此之外,本地 DNS 服务器往往是具有缓存功能的,通常两天内的记录都会被缓存,所以大部分时候你是感觉不到域名解析过程的,因为往往就是从缓存里拿的,非常快。...TCP 和 UDP 是运输层的两个协议,前者是基于连接的可靠传输协议,后者是无连接的不可靠传输协议,所以前者更适合于一些对数据完整性要求高的场合,后者则适合于那种可以允许数据丢失但对传输速率要求特别高的场景...例如:如果服务端发送多个对分组 5 的 ACK 确认,那说明什么?说明目前我服务端完整的向上交付的序号是 5 号,后续的报文我没收到,你最好重新发一下别等待超时了。 这也是『快速重传』的核心原理。

    59220

    破译黑客加密:场景模拟还原数据的完整过程

    严正声明:本博文所讨论的技术仅用于研究学习,旨在增强读者的信息安全意识,提高信息安全防护技能,严禁用于非法活动。任何个人、团体、组织不得用于非法目的,违法犯罪必将受到法律的严厉制裁。...背景请选⼿获取当前的系统的权限后分析⽂件共享服务器,还原被⿊客加密的客⼾实名信息数据,并将还原数据中⽣⽇为:11⽉2号,姓名为:严旭的身份证号码作为答案提交。通过弱口令登录到文件共享服务器的后台。...\out\ 指令后,发现 in 目录下多出了两个加密过程文件:hacker.jpghacker.jpg.tmp1hacker.jpg.tmp2同时,out 目录下会生成一个加密后的文件 hacker.jpg...executor.submit(process_image, file, progress_bar)运行结果:最终根据图片 ID 找到这张身份证(注意识别身份信息为模拟数据):后记以上就是 破译黑客加密:场景模拟还原数据的完整过程...欢迎大家持续关注我的博客,一起分享学习和成长的乐趣!✨严正声明:本博文所讨论的技术仅用于研究学习,旨在增强读者的信息安全意识,提高信息安全防护技能,严禁用于非法活动。

    13210

    针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例

    本文实例讲述了针对thinkPHP5框架存储过程bug重写的存储过程扩展类。...分享给大家供大家参考,具体如下: 近期用tp5框架调取存储过程发现有bug,借鉴了一些官方的函数、以及找了个mysqli的类把存储过程重新写了个扩展类,下面两个类直接放置项目extend目录的stored...1、mysqli类,此类直接在网上找的,新增一个getAllData()的函数来获取存储过程多条数据集 3、最终项目中使用demo: use storedprocs; / / $this->procs = new procs("mysqli"); / / //$data为给存储过程占位符传递的参数必须为...array|[ ] $this->procs->data($data)->demo(); ok是不是调用很简单、多条存储过程的数据集就此拿到!

    44300
    领券