最后更新:2022-01-02 23:10:03 手机定位技术交流文章
B站点@Major Huco、Risby小姐、yyds,
笔记整理如下:
进程之间的通信


进程之间通信流程

“逻辑通信”一词是指运输层之间的通信,似乎沿水平线传输数据,但这两个数据在水平方向上没有物理联系,所要传送的数据沿着图中上下各条虚线。
Ap1和Ap4网络通信以及Ap2和Ap3网络通信
为了匹配不同的应用程序,使用不同的运输层港口,单独使用不同的应用程序,使用不同的运输层港口。
然后通过网络级别和较低级别发送信息。
接收方的运输层通过不同的港口提供给申请层的匹配申请程序,并通过多个港口接收。
在这方面,港口不是一个可见的、触摸到实际港口,而是一个用于区分不同应用过程的识别码。




当许多流程(此处的一个端口表示一个流程)使用运输层协议(或运输层界面)交付数据时,它被称为再利用。
当许多流程(在此情况下,一个港口代表一个流程)使用运输层协议(或所谓的运输层界面)接收时,这些流程被称为拆分。

IP协议在TCP或UDP运输楼层的网络一级使用,IP数据报告初始部分的协议字段值显示IP数据报告数据负载部分,并附上协议数据单位。
举例

返回汽车,然后输入一个域名到浏览器中。
用户计算机上的 DNS 客户端程序, 然后发送 DNS 查询请求 。
DNS要求的UDP协议要求必须使用运输层。
第一部分的源字段价值从短端码49151 65535中选取一个未占用的,以代表 DNS 客户程序。
第一部分的目标港口价值:53是DNS服务器终端操作中使用的众所周知的港口号。

然后,UDP用户数据报纸以IP数据形式包装,通过Ethernet传送到DNS服务器。

当 DNS 服务器收到 IP 数据报告时, 删除 UDP 用户数据报告 。
第一个 UDP 中的目标端口编号53 具体规定, UDP 用户数据报告或 DNS 查询请求中的数据负荷部分应提供给此服务器的 DNS 服务器进程 。
DNS 服务器操作分析 DNS 查询请求的文本,然后搜索指定的 IP 地址 。
然后向用户 PC 发出DNS 响应信息,需要将 UDP 协议密封为UDP 运输水平用户数据报告。
在源字段的前半部分,数值被设定为第53号港口。它表示,这是由DNS服务器活动传输的UDP用户数据报告。目标港口价值定为49152。这是 DNS 客户程序所用的短端口号, 以前的用户 PC 通过该程序提交了 DNS 查询请求 。

在IP数据报纸上环绕UDP用户数据报纸,然后通过Tainet传送给用户 PC。

在用户 PC 收到 UDP 用户数据报告后,打开它。
UDP的第一个目标端口号是49152,表示UDP用户数据报告的数据载荷部分,即DNS回复,应传送到用户PC上的DNS客户程序。
通过了解您先前请求的网络服务器域名的 IP 地址, DNS 客户端程序将解构 DNS 响应信息的内容 。
用户计算机上的 HTTP 客户程序现在可以将 HTTP 请求信息发送到网络服务器(类似于 DNS 发送和接收信息的方式)。



可见和不可信。

运输协定数据单元TPDU(运输议定书数据股)是两个同等运输实体在通信期间交换的数据单位。
TCP报告部分(部分)是商定的TCP传输数据单位。
AUDP电文或用户数据报告是通过UDP传送的数据单位协议。

UDP 连接断开, 不需要使用 Socket 。
TCP是相互联系的,TCP必须在两个Sockets之间建立联系。
可以发送广播

更多可以发送到多频道。

还可以发送单播

UDP 单一、多播和广播支持
换句话说,UDP能够进行一对一、一对一和一对一的通信。
运输过程

联合民主党关于申请程序的报告没有合并或分开,但保留报告界限。
换句话说,民进联的重点是该文件的适用性。
联合民主党提供最高层,提供断开和不稳定的传输服务。

UDP结构

为了在数据传输之前建立TCP连接,执行TCP协议的缔约方必须利用三通信息握手。

在成功建立TCP连接后,双方似乎有一个可靠的通信渠道,他们利用这一渠道利用基于TCP连接的可靠渠道进行通信。

TCP似乎只允许一对一的收音机,这意味着一对一的对话。
运输过程

发送方
TCP将应用过程提供的数据区块视为无结构字节的顺序,TCP不知道这些字节打算发送什么。
他们也被编号 并保存在他们自己的送入缓存。
TCP 根据发送政策确定的一系列字节构建并发送 TCP 信息 。
接收方
- 从接受的TCP报告提取数据载荷部分并将其存储在接收缓存中;另一方面,将接收缓存的某些字节从接收缓存传送到申请过程。
- TCP并不确保接收器将使用程序收到的数据区块和发送者提供的数据区块。基于大小的关系(例如,发送者申请程序共向TCP发送10个数据区块。另一方面,接受方的TCP可能只使用了四个数据区块。归根结底 申请顶级职位为时已晚 只是时间问题然而,接收人收到的字节流必须与发件人申请过程的字节流相同)。
- 接收方的申请过程必须能够检测收到的字节流,并将其转换为有意义的应用水平数据。
TCP是一种字节流,是TCP可靠传输、流动控制和凝聚控制的基础。
该图只显示一个数据流,其中两个基于TCP连接的终点可以在TCP部分同时传输和接收。
在最高一级,TCP提供可靠、以连接为导向的传输服务。

TCP结构



举例
具体流程的视频
下图中的 " ACK " 表示TCP报告第一节中的标识。值1表示它是TCP确认段落。TCP报告第一节的确认号字段的数值较低。价值201表示,成功收到序列号201之前的所有数据。现在获得序号201和任何进一步的数据将会有所帮助。TCP 报告第一部分的窗口字段是 rwnd 。值为300 表示您的接收窗口的大小为300 。

主机A现在可以删除所有已传送到缓存的序号为1-200的字节,因为已经收到主机B的累积确认。

上图主机A,从窗口内部序列号 201 300 中传输100 字节数据的计时器 已经没有时间了一个主机将它们重新封印成TCP文本,并发送它们。目前无法传输补充数据 。在主机B收到转送的TCP案文后,他答复如下:在主机A 转发501之前,对数据进行了累计验证。并在该累计确认中,将窗口字段的值设为 100 。这是主机B对主机A流量的第二个控制器
收到累积确认后,主机A将发送一个幻灯片前向窗口,以转换发送窗口发送和收到数据的序列号。在累积确认中,主机B将自己的接收窗口调整为100个,主机A将自己的发送窗口调整为100个。
当前主机 A 分配窗口的序列号为 501 600, 这意味着主机 A 也可以 传输 100 字节 。 主机 A 现在可以删除所有 序号为 201- 500 的 字节, 这些字节已经发送到缓存, 因为已经收到主机 B 的累积确认 。


主机A现在可以从传输缓存序列号501-600中删除所有字节,因为已经收到主机B的累积确认。
在本例中,当主机A收到零窗口通知时我要开始一个连续计时器 和一个新的计时器当持续计时器超时,主机A 传输一个零窗口探测字段, 即时只有一字节的数据 。假设目前主机B的接待窗口仍为零报告零窗口探测器部分由主机B验证。将当前接收窗口值设为零 。主机A又收到一次零窗口通知。我要开始一个新的连续计时器当持续计时器超时,主持人迅速向世界最受欢迎的网站发送了一个零窗口检测部分。假设主机B的接收缓存 此时还有多余的存储空间因此,我们把接收窗口增加到300个。报告零窗口探测器部分由主机B验证。假设当前接收窗口值为300。足够打破锁了
问题:
当主机 A 向主机 B 发送零窗口检测信息时, 如果主机 B 的接收窗口仍然为零, 主机 B 怎么能干脆不接收此信息, 将确认信息发回主机 A 呢?
TCP要求收到零窗口检测报告、确认报告和载有紧急数据的报告,即使接收窗口为零。
问题2:
如果在传输过程中错过了零窗口检测器信息,上述数字是否会打破锁?
答复:由于零窗口探测器报告包括一个回调计时器,因此在回调计时器到期后将重新发送。
练习:

由于主机B通过提供其自己的接收窗口规模为2,00字节而得到承认,主机Axe将自己的发送窗口更改为2,00字节,估计主机还可以将200至299字节的数据传送给主机B,总计1,00字节。


a
造成网络堵塞的原因多种多样,例如:
拥塞控制的一般原理
开环控制和闭环控制

监测网络的拥塞
主要指标有:
这些指数的增加表明拥挤现象增加。

最小( 接收窗口值, 对应窗口值) = 实际传输窗口值
以下例子旨在相互协调。
传输轮次:
拥塞窗口:

发送窗口在插图中以 swnd 表示 。
每次你通过传输轮 抽搐窗口就会加倍
2 n-1 的指数函数窗口大小

如果部分电文在传输过程中丢失,发件人将不可避免地一遍又一遍地重新发送这些丢失的电文。

这次又回到了缓慢的开始







如果将时间过后再发送的转口转口值确定为大大低于RTT0值,则文本将数次再次发送,从而增加网络需求。

如果将转口转口时间过长的价值确定为远远超出RTT0的价值,转口时间将过长,增加网络的闲暇时间,降低传输效率。

RFC6298建议以最低方式计算实时转口时间。

在返回时衡量难民审查法庭是困难的。

TCP 超时再传输计算
举例

总结

本集具体讲解

接收方指定接收窗口的大小为20字节,确认号为31,确认号字段为31,表示接收方希望收到下列序列号为31的数据,并成功收到最多为30个的数据。
事后收缩发生于通知窗口收缩时,但TCP标准强烈劝阻它,因为发件人在收到通知之前很可能在窗口中传送了大部分数据,现在该窗口不得不缩小,以防止发送数据,这显然造成了问题。

取其中一段分析:
现在,假设接收方收到一些进一步的数据报告,它们封装有37,38和40是数据。虽然这些数据的序号可在接收窗口中发现,但并不公开。然而,它们都是未按顺序排列的数据。目前,只有收据缓存可以存在。(接收方只能按顺序以收到的最高序列号对数据进行验证。)因此,收款人确认报告上的确认号仍为34号!),假定接收方发送的事先确认电文送达发件人,发送方接收后,发送窗口前移三个序列位数。传送窗口的大小保持不变 。结果,51-53人落入发件人窗口(TCP通信是连续通信)。序列号3133 离开传输窗口。数据 31-33 现在可以从传输缓存中删除 。接收准则已经核实。

传输器将继续从窗口发送序列号为423的数据。信封通过各种出版物分发。现在,传输窗口的序列号都耗尽了如果发件人没有得到收件人的确认,发件人不接受收件人的确认。无法传送补充数据。对于发送的数据,发送方窗口显示序列号。如果在从接收方获得确认方面出现延误,这样做是不可行的。则会产生超时重传。

练习:


小结:


TCP 客户端和服务器必须交换三条TCP信息。
过程

TCP程序在前两个终点完成。

TCP 服务器程序始于创建一个传输控制块,以存储 TCP 连接中的某些关键信息,例如 TCP 连接表格、发送和接收缓存的指针、重复队列的指针、当前发送和接收序列号等等。
在此之后,我们准备接受TCP客户程序连接请求。
目前,TCP服务器程序有缺陷,正在等待TCP客户程序提出的连接请求。
TCP服务器程序被动地等待TCP客户程序提出的连接请求,结果导致一个被动的开放连接。

TCP客户也是建立转让控制区的第一个程序。
由于TCP连接由TCP客户启动,它被称为主动连接机构。

当建立 TCP 连接时, 将 TCP 请求信息发送到 TCP 服务器程序, 并输入同步发送状态 。
在该段开头,提供了TCP联系请求报告。
- 同步位置 SYN 设置为 1, 表示该物品是 TCP 连接请求 。
- 作为TCP客户程序所选的初始序列号,序列号字段后继数被设定为x的初始值。
请注意,TCP指出,SYN虽然使用序列号,但不允许在报告1节中传送数据。

当TCP服务器程序收到TCP连接请求时,如果该连接被接受,将TCP确认请求发送给TCP客户程序,并进入同步接收状态。
在报告前面,TCP连接请求确认
- 同步 SYN 和经确认的ACK 的值都定在1, 表示这是一个 TCP 连接请求确认项 。
- 作为TCP服务器程序所选的初始序列号,序列号字段后继的序号设定为y的初始值。
- 已确认的编号字段的值设为 x+1, 表示确认 TCP 客户程序初始序列号(seq) 。
请记住,这一条目与其他条目一样,无法传输数据,因为它是一个SYN,但确实消耗了一个序列号。

当TCP客户程序收到TCP确认请求时,它将标准TCP确认部分发送给TCP服务器程序,并建立了连接。
在报告第一节中按惯例确认TCP
- ACK确认位置设为1,表示这是标准的TCP确认段落。
- 由于TCP客户程序发送的首次TCP提交材料的序列号为x,因此TCP客户程序发送的第二次提交材料的序列号为x+1。
- 确认的字段编号设置为y+1, 其中表示确认 TCP 服务器进程原始序列号选择 。
请铭记,TCP要求标准TCP确保数据可在条目中传送,但如果数据不携带,则不使用序号。

当 TCP 服务器程序收到确认信息时, 将建立连接 。
两个贸易点目前都处于已建立连通状态,通过已建立TCP连通,可以进行可靠的数据传输。
为什么TCP客户程序最终会提供标准的TCP确认部分? “两握手”方法能用来建立连接吗?
例如,《两家报纸握手》。

无法防止未成功连接请求被意外送回服务。因而产生错误”,在这种情况下,最后(clit)A提交的第一份联系请求没有丢失。它指网络节点上存在未知原因。这造成连接解除后延迟到达(服务器)B的对面。
这是一份过时的报告。然而,当B听到这一错误报告时,他说:相信A发出新的连接请求是不正确的。这篇文章是全球之声在线特稿的一部分。表示同意建立连接。如果你不选择"三次握手"因此,一旦你从B处发出确认信息,你就会相信新的连接已经建立。但是,A没有提出连接请求。因此,它们不向B端传输数据。如果你不收到消息,你就得等B终点会白白浪费大量资源
因此,它不是多余的。 它的目的是防止连接请求信息被发送回 TCP 服务器, 从而导致错误 。
练习:

主机 B 中的后继值可以随时更改!

过程

TCP 客户端和 TCP 服务器程序现已处于连接状态。
TCP客户申请程序告知它打算终止TCP连接。
TCP客户程序提供TCP连接释放部分,并被指定为终止等待状态1。
TCP连接被用来发布报告的第一部分。
- 非活动FIN值和ACK值都定在1, 表明与TCP有关的释放部分证实了以前收到的释放部分。
- 将序列号之后的字段值设为 u, 与 TCP 客户端程序之前传输的数据的最后一个字节数加 1 匹配 。
- 检查 v 的 Jack 字段值,该值相当于 TCP 客户端程序之前收到的数据的最后一个字节加 1。
请注意,TCP要求FIN的条目等于1,即使数据不存在,也要使用序列号。

在TCP服务器程序获得TCP连接释放部分后,提供了标准的TCP确认部分,连接尚未关闭。
在报告第一节中按惯例确认TCP
- 确认Bit AK定在1,表示这是标准的TCP确认文本。
- 序列号后字段设定为 v, 等于在 TCP 服务器程序之前发送的数据的最后一个字节加一个字节, 并与先前收到的 TCP 连接发布报告中的确认号相符 。
- 确认 Jack 字段对 u+1 的值, 即 TCP 连接释放字段 。

TCP服务器程序应通知高级别应用程序,TCP客户程序应与其本身的TCP服务器程序分开。
TCP 客户端和 TCP 服务器程序之间的连接现已终止 。
然后,TCP连接是半封闭的,表明TCP客户程序不再有数据可供转发。
然而,如果TCP服务器程序仍然有数据需要发送,则会收到TCP客户程序,表明TCP服务器程序与TCP客户程序的连接尚未终止。

TCP客户程序在收到TCP确认文件后,将在TCP服务器程序发布TCP连接段落之前终止。
如果使用 TCP 服务器程序的应用程序不再有数据要交付,它会提醒 TCP 服务器程序关闭连接 。
由于TCP客户程序启动了TCP连接释放,TCP服务器程序释放TCP连接被称为被动关闭。

TCP服务器程序提供TCP连接释放部分,并进入最后确认状态。
该报文段首部中
- 已停止使用的FIN和经确认的ACK的数值定为1,表明它是一个与TCP相连的释放部分,同时确认以前收到的释放部分。
- 由于TCP服务器程序可能会在半封闭状态下再次发送,序列号后续字段的值为w。
- 确认 u+1 的 Jack 字段值, 这是重复确认 先前收到的 TCP 连接发布文件 。

一旦TCP客户程序获得TCP连接释放段落,标准TCP确认段落必须送交TCP用于该段落,然后TCP必须处于等待状态。
该报文段首部中
- 作为ACK核实的价值定为1,表明该款是标准的TCP确认段落。
- 序列号后字段设置为u+1,因为先前提供给 TCP 客户程序的 TCP 连接发布文件在不携带数据的情况下消耗序列号。
- 申明 Jack 字段对 w+1 的价值, 这是对 TCP 连接发布报告内容的确认 。
TCP服务器程序在收到回复后将立即终止,TCP客户程序将在2MSL后终止。
TCP 客户程序为什么不在最后确认信息发出后立即终止?

由于等待状态和2MSL的长度,它保证TCP服务器程序可以关闭,以便最后一次TCP确认。
此外,在发送最后一次TCP确认和2MSL后,TCP客户程序将使整个连接期间生成的所有信息能够从网络中撤回,从而使新的TCP连接不再出现在旧连接中。
当TCP客户程序所在的主机出乎意料地失灵时,TCP当事方已经建立了连接。
在 TCP 服务器处理后,无法收到 TCP 客户程序提供的数据 。
因此,应采取步骤避免等待TCP服务器程序。


源端口和目的端口

识别标志、序号和确认号


数据偏移、保留、窗口和校验和
0101的小数值为 5, 字段长4 字节, 因此 5 x 4 字节是 20 字节 。

发件人窗口的大小取决于窗口值(流量控制:接收者管理发件人发送能力的能力),还取决于压缩窗口的大小,即应从接收和压缩窗口中选择的个人
Pseudohead:一种虚拟数据结构,在虚拟数据结构中,从报告数据的IP组组长组群头的小组头部删除信息,发送该数据只是为了计算校验和。
路标同步、路标终止、路标重新定位、推路标、应急路标和应急指示器


选项和填充

本文由 在线网速测试 整理编辑,转载请注明出处。