首页
学习
活动
专区
工具
TVP
发布

记一次完整网络通信过程

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

4.3K20

程序启动完整过程

程序启动完整过程 int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain...>.根据Info.plist获得最主要storyboard文件名,加载最主要storyboard(有storyboard) 创建UIWindow 创建和设置UIWindowrootViewController...显示窗口 窗口(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.1K30

一次完整HTTP请求过程

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

7.7K31

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

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

62320

一次完整源码阅读过程

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

2.7K10

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交织 交织作用是将突发错误转换为随机错误,有利于前向纠错码译码,提高了整个通信系统可靠性。交织由两个变换过程组成。第一次变换保证了相邻编码比特被映射到不相邻子载波上。

1.7K20

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

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

85900

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

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

62540

一个完整系统测试过程

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

48430

一次完整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类型。...服务器可能有很多条到各个客户端连接,有些是空闲,有些在向服务器发送数据,还有一些在向客户端回送响应数据。服务器要记录连接状态,还要特别注意对持久连接处理。

54630

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

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

55720

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

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

83000

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

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

53620

针对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是不是调用很简单、多条存储过程数据集就此拿到!

39700

记一次问题分析解决完整过程

把获取到 html 打印出来一看,竟然是登陆页,晕,这就是想象和实践区别呀,我自己手动操作时都是登陆过账号,但是程序操作是全新 session,所以跳转到登录页了,我一开始竟然没想到,该死。...先说一下哈,我没有用标准 html 解析库,因为看起来很简单很有规律,而且是一次性活,所以直接使用全文字符串解析,嗯,后面说都是基于这个实现方式哈。...本来找很准确规律,在很有信心输出后,竟然出现了意想不到错位,如下图: ?...我自己手动查看几个页面,龙叔发内容都是不带换行符,所以所有帖子内容是一个完整整体,这时候使用'\n'刚好可以把 html 头和尾去掉,一旦龙叔帖子中出现换行,去球,上面的方法直接入坑,唉,偷懒使用山寨土方法...以上,我完整记录了自己一次分析和解决问题经历,描述了过程中自己是如何思考以及如何应对,不知道你工作过程中是否有碰到类似的问题,你当时是如何处理呢?欢迎给我留言,说说你经历。

40030

游戏开发中网络通信

游戏开发中网络通信设计 上节讨论了游戏引擎选择,这次我们来讨论游戏网络通信需要考虑哪些问题。在项目最开始阶段主要需要考虑还有网络通信模块,当然如果你做是单机游戏就可以跳过这部分了。...这里主要讲长短连接选择,这个也是根据游戏项目来选择。长连接和短链接分别也有不同处理。...这里说一下其实如果没有玩法上限制,能用短链接来实现就尽量用短链接来实现,因为短链接无论是对服务器还是对客户端,短连接对消息处理会简单很多,而且最重要是占用系统资源相对于长连接来说非常少。...通俗说长连接就是与服务器长时间保持连接。保持连接一个好处就是,不需要客户端主动发起请求,服务器就可以随时推送数据给客户端。...这里还有一篇文章也不错,分享给大家看看:手游开发中网络通信使用长连接还是短连接比较好?(https://www.zhihu.com/question/21093821)

1.7K40

Oracle创建表空间、创建用户完整过程「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 我在工作学习过程中经常用到Oracle,由于经验欠缺,熟练度不足,每次都要百度一下。现在总结一下Oracle创建用户过程,分享给大家。...create user qiuchangjin IDENTIFIED BY root --用户密码 default tablespace TABLESPACE_QCJ-- 表空间是上面创建...,系统会提示你重新输入新密码,不然会拒绝你登陆,重设新密码后就可以登录,该用户密码就是你新设密码,相当于首次登录修改密码这样选项。...resource to qiuchangjin with admin option; /*查询所有表空间物理位置*/ select name from v$datafile; /*查询当前用户表空间...NEXT 5M MAXSIZE UNLIMITED; ---- 查看当前用户信息: 1、查看当前用户拥有的角色权限信息: select * from role_sys_privs; 2、查看当前用户详细信息

2.2K20
领券