第二章插图
This commit is contained in:
Binary file not shown.
@@ -27,7 +27,14 @@ Geneve(Generic Network Virtualization Encapsulation,通用虚拟化网络封
|
||||
|
||||
\section{链路质量优化}
|
||||
|
||||
低质量的互联网链路由于负载较大出现拥塞或部分设备运行故障,容易出现丢包或者延迟波动。在这些低质量的链路上进行传输时,即使链路还有可用的传输带宽,也会出现丢包或是延迟波动。即使TCP\cite{rfc9293tcp}等可靠传输协议通过重传确保了所有数据都能可到送达,但性能较差。这是因为TCP协议依靠超时重传来在确保所有数据都最终送达至接收端,即使使用了基于重复ACK的快速重传机制,恢复单个丢失的包也至少要经历接收端检测丢包——请求发送端重传——发送端重传包送达恢复的过程,至少需要一个往返时延(Round Trip Time, RTT)才能恢复。对于一条在云网络中的跨域链路,往返时延可能达到\SI{300}{ms}或更长,如此缓慢的丢包恢复不仅会阻塞后续数据包的发送,也会极大地影响实时媒体服务如影视直播、视频通话等应用的用户体验。
|
||||
低质量的互联网链路由于负载较大出现拥塞或部分设备运行故障,容易出现丢包或者延迟波动。在这些低质量的链路上进行传输时,即使链路还有可用的传输带宽,也会出现丢包或是延迟波动。即使TCP\cite{rfc9293tcp}等可靠传输协议通过重传确保了所有数据都能可到送达,但性能较差。这是因为TCP协议依靠超时重传来在确保所有数据都最终送达至接收端,即使使用了基于重复ACK的快速重传机制,如图\ref{fig:TCP丢包恢复缓慢},恢复单个丢失的包也至少要经历接收端检测丢包——请求发送端重传——发送端重传包送达恢复的过程,至少需要一个往返时延(Round Trip Time, RTT)才能恢复。对于一条在云网络中的跨域链路,往返时延可能达到\SI{300}{ms}或更长,如此缓慢的丢包恢复不仅会阻塞后续数据包的发送,也会极大地影响实时媒体服务如影视直播、视频通话等应用的用户体验。
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{tcp_slow_recovery.drawio.pdf}
|
||||
\caption{即使启用了快速重传机制,TCP仍旧需要一个往返时延才能恢复丢包}
|
||||
\label{fig:TCP丢包恢复缓慢}
|
||||
\end{figure}
|
||||
|
||||
针对此问题,研究者们提出了多种解决方案,其中前向纠错编码(Forward Error Correction, FEC)被广泛地用于应对链路传输中的丢包。其基本思想是,在发送数据时直接加入一部分冗余信息,以确保在部分信息丢失时,接收端无需请求发送端重新传送任何信息,而可以利用已经接收到的信息配合冗余信息推算出丢失的信息。使用前向纠错编码进行丢包恢复时,与重传机制需要经历一整个往返时延的长时间反馈路径不同,利用前向纠错编码的冗余包进行恢复只需要等待后续冗余包送达后即可进行,错误恢复时间短,能更好地适应延迟敏感型应用如视频通话等应用的需求。
|
||||
|
||||
@@ -39,14 +46,21 @@ Geneve(Generic Network Virtualization Encapsulation,通用虚拟化网络封
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=.6\linewidth]{naive_fec_ref_pic.jpg}
|
||||
\includegraphics[width=\linewidth]{fec_copy_based.drawio.pdf}
|
||||
\caption{早期FEC工作将冗余信息附加在后续发出的包中进行发送}
|
||||
\label{fig:早期FEC}
|
||||
\end{figure}
|
||||
|
||||
\subsection{分组冗余码}
|
||||
|
||||
通过重复发送数据包的方式添加冗余虽然简单,但是会带来较高的冗余开销,为了提高冗余信息的恢复效率,研究者们进一步提出了基于分组冗余码的前项纠错机制。XOR码和R-S码是较为主要的冗余纠错恢复机制。这两种编码都是线性分组码,将原始数据分为$n$个数据包一组,对于每一组数据再加入$k$个冗余数据包并将$n + k$个数据一并发送,接收端同样以组为单位进行丢包的恢复。
|
||||
通过重复发送数据包的方式添加冗余虽然简单,但是会带来较高的冗余开销,为了提高冗余信息的恢复效率,研究者们进一步提出了基于分组冗余码的前项纠错机制。XOR码和R-S码是较为主要的冗余纠错恢复机制。如图\ref{fig:分组码示意},这两种编码都是线性分组码,将原始数据分为$n$个数据包一组,对于每一组数据再加入$k$个冗余数据包并将$n + k$个数据一并发送,接收端同样以组为单位进行丢包的恢复。
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=.7\linewidth]{grouped_code.drawio.pdf}
|
||||
\caption{分组码为$n$个数据包附加$k$个冗余包}
|
||||
\label{fig:分组码示意}
|
||||
\end{figure}
|
||||
|
||||
在XOR编码中,$n$可以为任意值,而固定$k = 1$,冗余包通过将所有组内的数据包按位进行异或运算得到。如果接收端只接收到了一组数据包共$n + 1$个包中的$n$个,则丢失的包可以通过对已经接收到的包按位进行异或运算恢复得到。XOR编码可以在一组数据共$n + 1$个包丢失任意一个时通过剩余的$n$个包将丢失的包恢复,但是如果丢失了两个或更多包,则完全不能恢复丢失的数据。XOR码的计算简单,冗余包生成和丢失数据包恢复都只需要使用异或运算即可完成,运算开销小,但是只能恢复固定模式的少量丢包,面对组内多个丢包的情况效果有限。
|
||||
|
||||
@@ -56,6 +70,7 @@ Geneve(Generic Network Virtualization Encapsulation,通用虚拟化网络封
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=.7\linewidth]{interleaved_fec.drawio.pdf}
|
||||
\caption{交织编码示意}
|
||||
\label{fig:交织示意图}
|
||||
\end{figure}
|
||||
@@ -66,7 +81,14 @@ Liu等人\cite{liu2017opticalinterleave}提出了一种在开放光通信场景
|
||||
|
||||
\subsection{流式冗余码(Streaming码)}
|
||||
|
||||
XOR、R-S等分组码接合交织已经能较好地应对网络中的丢包问题,但是这些编码仍旧不能满足一些实时性需求高的应用。如图\ref{fig:RS编码等待恢复延迟},由于分组码的冗余包通常是通过对所有的组内的数据包进行计算得到,因此冗余信息必须在所有数据包已经发出后才能够计算并在网络中发出,这导致如果接收端在接收数据包时如果检测到了丢包且需要利用冗余信息进行恢复,为了保证数据包数据包按发送顺序连续交付至上层应用,接收端通常需要暂停后续数据的解码输出,直至对应的冗余包到达并完成恢复。由此产生的恢复等待时间会显著增加端到端时延。对于实时性要求较高的应用,即使最终能够恢复出丢失数据,其对应的视频帧或音频数据也可能已经错过播放时限,从而无法有效改善用户体验。
|
||||
XOR、R-S等分组码结合交织已经能较好地应对网络中的丢包问题,但是这些编码仍旧不能满足一些实时性需求高的应用。如图\ref{fig:RS编码等待恢复延迟},由于分组码的冗余包通常是通过对所有的组内的数据包进行计算得到,因此冗余信息必须在所有数据包已经发出后才能够计算并在网络中发出,这导致如果接收端在接收数据包时如果检测到了丢包且需要利用冗余信息进行恢复,为了保证数据包数据包按发送顺序连续交付至上层应用,接收端通常需要暂停后续数据的解码输出,直至对应的冗余包到达并完成恢复。由此产生的恢复等待时间会显著增加端到端时延。对于实时性要求较高的应用,即使最终能够恢复出丢失数据,其对应的视频帧或音频数据也可能已经错过播放时限,从而无法有效改善用户体验。
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=.7\linewidth]{rs_code_slow_recovery.drawio.pdf}
|
||||
\caption{分组码需要暂停解码输出等待冗余包到来才能恢复丢包并继续解码过程}
|
||||
\label{fig:RS编码等待恢复延迟}
|
||||
\end{figure}
|
||||
|
||||
基于此,Martinian等人提出了流式编码(Streaming Code)\cite{martinian2004streamingcode}。与传统基于固定编码块的FEC不同,流式编码采用跨时间窗口的卷积式编码结构,将同一时刻数据包的冗余信息分散嵌入到后续多个时刻发送的数据包中,从而在时间维度上持续提供保护。例如,某一时刻$t=0$发送的数据,其相关冗余不仅存在于当前数据包中,还会被逐步附加到$t=1,2,3$等后续时刻发送的数据包内。当$t=0$时刻的数据包发生丢失时,接收端可以利用后续若干时刻收到的数据包逐步恢复其内容,并在预设的有限解码时延内完成恢复,而无需等待整个编码块全部发送完成。该机制能够在保证连续突发丢包恢复能力的同时,显著降低恢复延迟,更适用于实时流媒体等低时延传输场景。Martinian等人进一步证明了,在给定码率与突发丢包长度条件下,流式编码能够达到理论上的最小恢复时延下界。已经有一些研究工作\cite{emara2021streamingcodevoip,rudow2023tambur}尝试将流式编码应用于实时音视频通信领域,获得了一定的效果提升。
|
||||
|
||||
@@ -80,7 +102,7 @@ XOR、R-S等分组码接合交织已经能较好地应对网络中的丢包问
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=.8\linewidth]{hybrid_sdn.png}
|
||||
\includegraphics[width=.8\linewidth]{sdn_overview.drawio.pdf}
|
||||
\caption{混合SDN网络}
|
||||
\label{fig:混合SDN网络}
|
||||
\end{figure}
|
||||
@@ -89,7 +111,7 @@ XOR、R-S等分组码接合交织已经能较好地应对网络中的丢包问
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
字节给的丢包率随时间变化的图
|
||||
\includegraphics[width=.8\linewidth]{hongkong-jinan.pdf}
|
||||
\caption{某企业跨国公网链路RTT与丢包率在一天内的变化}
|
||||
\label{fig:跨国公网链路随时间变化}
|
||||
\end{figure}
|
||||
|
||||
160
figures/fec_copy_based.drawio
Normal file
160
figures/fec_copy_based.drawio
Normal file
@@ -0,0 +1,160 @@
|
||||
<mxfile host="app.diagrams.net">
|
||||
<diagram name="Page-1" id="pRk9n5Hroj8CZQHKseAZ">
|
||||
<mxGraphModel dx="1099" dy="662" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="aodYnq9aT-QJlK0XWGdi-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="1" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="200" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="aodYnq9aT-QJlK0XWGdi-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="-" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="230" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="aodYnq9aT-QJlK0XWGdi-3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="1" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="230" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="aodYnq9aT-QJlK0XWGdi-4" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="-" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="260" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="aodYnq9aT-QJlK0XWGdi-5" edge="1" parent="1" source="aodYnq9aT-QJlK0XWGdi-4" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;fontSize=15;" target="aodYnq9aT-QJlK0XWGdi-2" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="360" y="280" as="sourcePoint" />
|
||||
<mxPoint x="410" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="aodYnq9aT-QJlK0XWGdi-6" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;fontSize=15;" value="发送数据包" vertex="1">
|
||||
<mxGeometry height="30" width="80" x="100" y="105" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="aodYnq9aT-QJlK0XWGdi-7" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;fontSize=15;" value="接收数据包" vertex="1">
|
||||
<mxGeometry height="30" width="80" x="100" y="195" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="aodYnq9aT-QJlK0XWGdi-8" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="2" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="290" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="aodYnq9aT-QJlK0XWGdi-9" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="1" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="320" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="aodYnq9aT-QJlK0XWGdi-12" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;fontSize=15;" target="aodYnq9aT-QJlK0XWGdi-9" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="350" y="190" as="sourcePoint" />
|
||||
<mxPoint x="500" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-1" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;fontSize=15;" value="(丢包)" vertex="1">
|
||||
<mxGeometry height="30" width="80" x="310" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="3" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="380" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="2" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="410" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-4" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;fontSize=15;" target="JE9ww42JQGTNpQLY7NL1-3" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="440" y="190" as="sourcePoint" />
|
||||
<mxPoint x="590" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-5" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;fontSize=15;" value="(丢包)" vertex="1">
|
||||
<mxGeometry height="30" width="90" x="400" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-10" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="4" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="470" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-11" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="3" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="500" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-12" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="4" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="500" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-13" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="3" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="530" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-14" edge="1" parent="1" source="JE9ww42JQGTNpQLY7NL1-13" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;fontSize=15;" target="JE9ww42JQGTNpQLY7NL1-11" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="630" y="280" as="sourcePoint" />
|
||||
<mxPoint x="680" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-15" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="5" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="560" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-16" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="4" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="590" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-17" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;fontSize=15;" target="JE9ww42JQGTNpQLY7NL1-16" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="620" y="190" as="sourcePoint" />
|
||||
<mxPoint x="770" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-18" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;fontSize=15;" value="(丢包)" vertex="1">
|
||||
<mxGeometry height="30" width="80" x="578" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-19" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="6" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="650" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-20" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="5" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="680" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-21" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="6" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="680" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-22" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="5" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="710" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-23" edge="1" parent="1" source="JE9ww42JQGTNpQLY7NL1-22" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;fontSize=15;" target="JE9ww42JQGTNpQLY7NL1-20" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="810" y="280" as="sourcePoint" />
|
||||
<mxPoint x="860" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-24" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="7" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="740" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-25" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="6" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="770" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-26" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;fontSize=15;" target="JE9ww42JQGTNpQLY7NL1-25" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="800" y="190" as="sourcePoint" />
|
||||
<mxPoint x="950" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-27" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;fontSize=15;" value="(丢包)" vertex="1">
|
||||
<mxGeometry height="30" width="80" x="760" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-28" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="8" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="830" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-29" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="7" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="860" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-30" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="8" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="860" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-31" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fontSize=15;" value="7" vertex="1">
|
||||
<mxGeometry height="40" width="30" x="890" y="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-32" edge="1" parent="1" source="JE9ww42JQGTNpQLY7NL1-31" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;fontSize=15;" target="JE9ww42JQGTNpQLY7NL1-29" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="990" y="280" as="sourcePoint" />
|
||||
<mxPoint x="1040" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-33" edge="1" parent="1" source="JE9ww42JQGTNpQLY7NL1-16" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;fontSize=15;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="605" y="70" />
|
||||
</Array>
|
||||
<mxPoint x="610" y="100" as="sourcePoint" />
|
||||
<mxPoint x="660" y="70" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="JE9ww42JQGTNpQLY7NL1-34" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;fontSize=15;" value="冗余包" vertex="1">
|
||||
<mxGeometry height="30" width="60" x="658" y="54" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
figures/fec_copy_based.drawio.pdf
Normal file
BIN
figures/fec_copy_based.drawio.pdf
Normal file
Binary file not shown.
46
figures/grouped_code.drawio
Normal file
46
figures/grouped_code.drawio
Normal file
@@ -0,0 +1,46 @@
|
||||
<mxfile host="app.diagrams.net">
|
||||
<diagram name="Page-1" id="BljG-sGtTtPqjduiBLbm">
|
||||
<mxGraphModel dx="934" dy="563" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="Q3Dl3pKWEZcrUxOPh7dX-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;rotation=-90;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="422.5" width="60" x="331.25" y="8.75" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Q3Dl3pKWEZcrUxOPh7dX-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="<font>1</font>" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="160" y="200" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Q3Dl3pKWEZcrUxOPh7dX-3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="<font>2</font>" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="220" y="200" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Q3Dl3pKWEZcrUxOPh7dX-4" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="<i><font face="Times New Roman">n</font></i>" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="340" y="200" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Q3Dl3pKWEZcrUxOPh7dX-5" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="FEC<div><font>1</font></div>" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="400" y="200" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Q3Dl3pKWEZcrUxOPh7dX-6" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=none;strokeColor=none;fontFamily=Microsoft YaHei;" value="……" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="280" y="200" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Q3Dl3pKWEZcrUxOPh7dX-7" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=none;strokeColor=none;fontFamily=Microsoft YaHei;" value="……" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="460" y="200" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Q3Dl3pKWEZcrUxOPh7dX-8" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="FEC<div><font face="Times New Roman"><i>k</i></font></div>" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="520" y="200" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="vfGarfxVHciOBTslZ4Hk-1" parent="1" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;rotation=90;" value="" vertex="1">
|
||||
<mxGeometry height="220" width="20" x="260" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="vfGarfxVHciOBTslZ4Hk-2" parent="1" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;labelPosition=left;verticalLabelPosition=middle;align=right;verticalAlign=middle;rotation=90;" value="" vertex="1">
|
||||
<mxGeometry height="160" width="20" x="470" y="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="vfGarfxVHciOBTslZ4Hk-3" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=18;" value="<font face="Times New Roman"><i>n&nbsp;</i></font><font face="Microsoft YaHei">个数据包</font>" vertex="1">
|
||||
<mxGeometry height="30" width="120" x="210" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="vfGarfxVHciOBTslZ4Hk-4" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=18;" value="<font face="Times New Roman"><i>k&nbsp;</i></font><font face="Microsoft YaHei">个冗余包</font>" vertex="1">
|
||||
<mxGeometry height="30" width="120" x="420" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
figures/grouped_code.drawio.pdf
Normal file
BIN
figures/grouped_code.drawio.pdf
Normal file
Binary file not shown.
4
figures/grouped_code.drawio.svg
Normal file
4
figures/grouped_code.drawio.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 61 KiB |
BIN
figures/hongkong-jinan.pdf
Normal file
BIN
figures/hongkong-jinan.pdf
Normal file
Binary file not shown.
141
figures/interleaved_fec.drawio
Normal file
141
figures/interleaved_fec.drawio
Normal file
@@ -0,0 +1,141 @@
|
||||
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36">
|
||||
<diagram name="Page-1" id="rqJXYKoBhtRh88K4HkmP">
|
||||
<mxGraphModel dx="934" dy="563" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-33" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="240" width="60" x="440" y="350" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-32" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="240" width="60" x="370" y="350" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-30" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="240" width="60" x="300" y="350" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-29" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="240" width="60" x="230" y="350" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-27" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="240" y="560" as="sourcePoint" />
|
||||
<mxPoint x="520" y="560" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-25" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="240" y="499.96" as="sourcePoint" />
|
||||
<mxPoint x="510" y="499.76" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-24" edge="1" parent="1" source="3Q99z-h296jERfdA_lTA-6" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="220" y="439.8" as="sourcePoint" />
|
||||
<mxPoint x="510" y="439.8" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-20" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="220" y="380" as="sourcePoint" />
|
||||
<mxPoint x="510" y="380" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="1" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="240" y="360" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="2" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="310" y="360" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="3" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="380" y="360" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-4" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="4" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="450" y="360" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-6" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="5" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="240" y="420" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-7" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="6" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="310" y="420" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-8" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="7" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="380" y="420" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-9" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="8" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="450" y="420" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-10" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="9" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="240" y="480" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-11" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="10" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="310" y="480" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-12" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="11" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="380" y="480" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-13" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="12" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="450" y="480" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-14" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="FEC 1" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="240" y="540" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-15" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="FEC 2" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="310" y="540" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-16" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="FEC 3" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="380" y="540" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-17" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="FEC 4" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="450" y="540" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-21" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Microsoft YaHei;" target="3Q99z-h296jERfdA_lTA-6" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="510" y="410" />
|
||||
<mxPoint x="220" y="410" />
|
||||
<mxPoint x="220" y="440" />
|
||||
</Array>
|
||||
<mxPoint x="510" y="380" as="sourcePoint" />
|
||||
<mxPoint x="220" y="440" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-26" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="510" y="470" />
|
||||
<mxPoint x="220" y="470" />
|
||||
<mxPoint x="220" y="500" />
|
||||
</Array>
|
||||
<mxPoint x="510" y="440" as="sourcePoint" />
|
||||
<mxPoint x="240" y="500" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-28" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="510" y="530" />
|
||||
<mxPoint x="220" y="530" />
|
||||
<mxPoint x="220" y="560" />
|
||||
</Array>
|
||||
<mxPoint x="510" y="500" as="sourcePoint" />
|
||||
<mxPoint x="240" y="560" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-34" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=14;textDirection=vertical-rl;fontFamily=Microsoft YaHei;" value="发送顺序" vertex="1">
|
||||
<mxGeometry height="65" width="30" x="190" y="347.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-35" edge="1" parent="1" style="endArrow=classic;startArrow=classic;html=1;rounded=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="240" y="330" as="sourcePoint" />
|
||||
<mxPoint x="490" y="330" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="3Q99z-h296jERfdA_lTA-36" connectable="0" parent="3Q99z-h296jERfdA_lTA-35" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Microsoft YaHei;" value="交织间隔 <i><font face="Times New Roman">d&nbsp;</font></i>" vertex="1">
|
||||
<mxGeometry relative="1" x="-0.0556" y="2" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
figures/interleaved_fec.drawio.pdf
Normal file
BIN
figures/interleaved_fec.drawio.pdf
Normal file
Binary file not shown.
4
figures/interleaved_fec.drawio.svg
Normal file
4
figures/interleaved_fec.drawio.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 107 KiB |
159
figures/rs_code_slow_recovery.drawio
Normal file
159
figures/rs_code_slow_recovery.drawio
Normal file
@@ -0,0 +1,159 @@
|
||||
<mxfile host="app.diagrams.net">
|
||||
<diagram name="Page-1" id="5et_7XaYx1SyBgrdoDAL">
|
||||
<mxGraphModel dx="783" dy="586" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="240" width="60" x="460" y="330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="240" width="60" x="390" y="330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="240" width="60" x="320" y="330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="240" width="60" x="250" y="330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-5" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="260" y="540" as="sourcePoint" />
|
||||
<mxPoint x="540" y="540" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-6" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="260" y="479.96000000000004" as="sourcePoint" />
|
||||
<mxPoint x="530" y="479.76" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-7" edge="1" parent="1" source="RwR-qtaiqRHJ5DpWrn1r-13" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="240" y="419.79999999999995" as="sourcePoint" />
|
||||
<mxPoint x="530" y="419.79999999999995" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-8" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="240" y="360" as="sourcePoint" />
|
||||
<mxPoint x="530" y="360" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-9" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="1" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="260" y="340" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-10" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#f8cecc;strokeColor=#b85450;fontFamily=Microsoft YaHei;" value="2" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="330" y="340" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-11" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="3" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="400" y="340" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-12" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="4" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="470" y="340" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-13" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="5" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="260" y="400" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-14" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="6" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="330" y="400" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-15" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="7" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="400" y="400" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-16" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="8" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="470" y="400" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-17" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="9" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="260" y="460" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-18" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="10" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="330" y="460" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-19" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="11" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="400" y="460" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-20" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=18;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;" value="12" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="470" y="460" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-21" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="FEC 1" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="260" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-22" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="FEC 2" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="330" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-23" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="FEC 3" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="400" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-24" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontSize=16;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="FEC 4" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="470" y="520" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-25" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Microsoft YaHei;" target="RwR-qtaiqRHJ5DpWrn1r-13" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="530" y="390" />
|
||||
<mxPoint x="240" y="390" />
|
||||
<mxPoint x="240" y="420" />
|
||||
</Array>
|
||||
<mxPoint x="530" y="360" as="sourcePoint" />
|
||||
<mxPoint x="240" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-26" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="530" y="450" />
|
||||
<mxPoint x="240" y="450" />
|
||||
<mxPoint x="240" y="480" />
|
||||
</Array>
|
||||
<mxPoint x="530" y="420" as="sourcePoint" />
|
||||
<mxPoint x="260" y="480" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-27" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="530" y="510" />
|
||||
<mxPoint x="240" y="510" />
|
||||
<mxPoint x="240" y="540" />
|
||||
</Array>
|
||||
<mxPoint x="530" y="480" as="sourcePoint" />
|
||||
<mxPoint x="260" y="540" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-28" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=14;textDirection=vertical-rl;fontFamily=Microsoft YaHei;" value="发送顺序" vertex="1">
|
||||
<mxGeometry height="65" width="30" x="210" y="327.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-29" edge="1" parent="1" style="endArrow=classic;startArrow=classic;html=1;rounded=0;fontFamily=Microsoft YaHei;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="260" y="310" as="sourcePoint" />
|
||||
<mxPoint x="510" y="310" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-30" connectable="0" parent="RwR-qtaiqRHJ5DpWrn1r-29" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Microsoft YaHei;" value="交织间隔 <i><font face="Times New Roman">d&nbsp;</font></i>" vertex="1">
|
||||
<mxGeometry relative="1" x="-0.0556" y="2" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-32" edge="1" parent="1" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fillColor=#d0cee2;strokeColor=#56517e;" target="RwR-qtaiqRHJ5DpWrn1r-10" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="318" y="298" as="sourcePoint" />
|
||||
<mxPoint x="190" y="330" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-33" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=14;fontFamily=Microsoft YaHei;" value="发生丢包等待恢复" vertex="1">
|
||||
<mxGeometry height="30" width="60" x="288" y="260" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-34" edge="1" parent="1" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#d0cee2;strokeColor=#56517e;" target="RwR-qtaiqRHJ5DpWrn1r-22" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="350" y="607" as="sourcePoint" />
|
||||
<mxPoint x="390" y="660" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="RwR-qtaiqRHJ5DpWrn1r-35" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=14;fontFamily=Microsoft YaHei;" value="12个包后,<div>收到冗余恢复成功</div>" vertex="1">
|
||||
<mxGeometry height="30" width="120" x="300" y="610" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
figures/rs_code_slow_recovery.drawio.pdf
Normal file
BIN
figures/rs_code_slow_recovery.drawio.pdf
Normal file
Binary file not shown.
4
figures/rs_code_slow_recovery.drawio.svg
Normal file
4
figures/rs_code_slow_recovery.drawio.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 151 KiB |
181
figures/sdn_overview.drawio
Normal file
181
figures/sdn_overview.drawio
Normal file
@@ -0,0 +1,181 @@
|
||||
<mxfile host="app.diagrams.net">
|
||||
<diagram name="Page-1" id="mo1PUCc6GA-DQjgS20fF">
|
||||
<mxGraphModel dx="540" dy="405" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;fillColor=#fff2cc;strokeColor=#d6b656;" value="控制器" vertex="1">
|
||||
<mxGeometry height="40" width="90" x="320" y="220" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-4" parent="1" style="sketch=0;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0],[0.145,0.145,0],[0.8555,0.145,0],[0.855,0.8555,0],[0.145,0.855,0]];verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=center;pointerEvents=1;shape=mxgraph.cisco19.rect;prIcon=router;fillColor=#f8cecc;strokeColor=#b85450;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="30" width="30" x="350" y="340" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-6" parent="1" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.switch;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="40" x="280" y="350" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-7" parent="1" style="sketch=0;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0],[0.145,0.145,0],[0.8555,0.145,0],[0.855,0.8555,0],[0.145,0.855,0]];verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=center;pointerEvents=1;shape=mxgraph.cisco19.rect;prIcon=router;fillColor=#f8cecc;strokeColor=#b85450;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="30" width="30" x="440" y="300" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-14" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-8" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.978;exitY=0.289;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;dashed=1;strokeWidth=2;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-8" parent="1" style="sketch=0;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0],[0.145,0.145,0],[0.8555,0.145,0],[0.855,0.8555,0],[0.145,0.855,0]];verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=center;pointerEvents=1;shape=mxgraph.cisco19.rect;prIcon=router;fillColor=#f8cecc;strokeColor=#b85450;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="30" width="30" x="230" y="300" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-9" parent="1" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.switch;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="40" x="140" y="300" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-10" parent="1" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.switch;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="40" x="230" y="250" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-11" parent="1" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.switch;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="40" x="300" y="420" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-12" parent="1" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.switch;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="40" x="393" y="420" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-13" parent="1" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.switch;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="40" x="510" y="350" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-15" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-4" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;dashed=1;strokeWidth=2;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="300" y="359" as="sourcePoint" />
|
||||
<mxPoint x="406" y="310" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-16" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-1" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.145;entryY=0.145;entryDx=0;entryDy=0;endArrow=none;endFill=0;dashed=1;strokeWidth=2;entryPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-7">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="390" y="359" as="sourcePoint" />
|
||||
<mxPoint x="496" y="310" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-17" parent="1" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.switch;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="40" x="480" y="420" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-19" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-11" style="endArrow=none;html=1;rounded=0;entryX=0.302;entryY=0.913;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-4" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="320" y="380" as="sourcePoint" />
|
||||
<mxPoint x="370" y="330" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-21" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-12" style="endArrow=none;html=1;rounded=0;entryX=0.855;entryY=0.8555;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-4" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="320" y="380" as="sourcePoint" />
|
||||
<mxPoint x="370" y="330" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-22" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-12" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-11" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="454" y="464" as="sourcePoint" />
|
||||
<mxPoint x="420" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-23" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-4" style="endArrow=none;html=1;rounded=0;entryX=0.145;entryY=0.855;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-7" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="444" y="454" as="sourcePoint" />
|
||||
<mxPoint x="410" y="400" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-24" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-17" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-12" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="464" y="464" as="sourcePoint" />
|
||||
<mxPoint x="430" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-25" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-13" style="endArrow=none;html=1;rounded=0;entryX=0.984;entryY=0.722;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-7" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="507" y="430" as="sourcePoint" />
|
||||
<mxPoint x="460" y="430" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-26" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-17" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-13" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="590" y="418" as="sourcePoint" />
|
||||
<mxPoint x="530" y="390" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-27" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-17" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-7" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="540" y="398" as="sourcePoint" />
|
||||
<mxPoint x="480" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-28" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-6" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-4" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="360" y="463" as="sourcePoint" />
|
||||
<mxPoint x="396" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-30" parent="1" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.switch;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="40" x="200" y="390" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-31" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-8" style="endArrow=none;html=1;rounded=0;entryX=0.05;entryY=0.05;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.855;exitY=0.8555;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-6" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="330" y="370" as="sourcePoint" />
|
||||
<mxPoint x="360" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-32" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-8" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.349;exitY=0.96;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-30" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="330" y="380" as="sourcePoint" />
|
||||
<mxPoint x="360" y="380" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-33" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-30" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-11" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="280" y="370" as="sourcePoint" />
|
||||
<mxPoint x="306" y="395" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-34" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-30" style="endArrow=none;html=1;rounded=0;entryX=0.1;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-6" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="270" y="400" as="sourcePoint" />
|
||||
<mxPoint x="330" y="430" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-35" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-30" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-9" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="270" y="430" as="sourcePoint" />
|
||||
<mxPoint x="325" y="400" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-36" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-8" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-10" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="246" y="420" as="sourcePoint" />
|
||||
<mxPoint x="190" y="340" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-37" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-9" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-10" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="260" y="340" as="sourcePoint" />
|
||||
<mxPoint x="264" y="300" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-38" edge="1" parent="1" source="eMuqq16K3DwSbwfnew4p-8" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;fontFamily=Microsoft YaHei;" target="eMuqq16K3DwSbwfnew4p-9" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="260" y="340" as="sourcePoint" />
|
||||
<mxPoint x="264" y="300" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-39" parent="1" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.switch;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="40" x="470" y="230" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-40" parent="1" style="sketch=0;points=[[0.5,0,0],[1,0.5,0],[0.5,1,0],[0,0.5,0],[0.145,0.145,0],[0.8555,0.145,0],[0.855,0.8555,0],[0.145,0.855,0]];verticalLabelPosition=bottom;html=1;verticalAlign=top;aspect=fixed;align=center;pointerEvents=1;shape=mxgraph.cisco19.rect;prIcon=router;fillColor=#f8cecc;strokeColor=#b85450;fontFamily=Microsoft YaHei;" value="" vertex="1">
|
||||
<mxGeometry height="30" width="30" x="475" y="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-41" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;" value="传统网络设备" vertex="1">
|
||||
<mxGeometry height="30" width="80" x="520" y="220" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-42" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;" value="SDN设备" vertex="1">
|
||||
<mxGeometry height="30" width="80" x="520" y="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-45" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;" value="设置策略" vertex="1">
|
||||
<mxGeometry height="30" width="80" x="353" y="290" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="eMuqq16K3DwSbwfnew4p-46" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;" value="负载均衡<div>路由策略</div><div>……</div>" vertex="1">
|
||||
<mxGeometry height="50" width="90" x="320" y="170" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
figures/sdn_overview.drawio.pdf
Normal file
BIN
figures/sdn_overview.drawio.pdf
Normal file
Binary file not shown.
4
figures/sdn_overview.drawio.svg
Normal file
4
figures/sdn_overview.drawio.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 126 KiB |
114
figures/tcp_slow_recovery.drawio
Normal file
114
figures/tcp_slow_recovery.drawio
Normal file
@@ -0,0 +1,114 @@
|
||||
<mxfile host="app.diagrams.net" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36">
|
||||
<diagram name="Page-1" id="2YBvvXClWsGukQMizWep">
|
||||
<mxGraphModel dx="718" dy="433" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;" value="接收端" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="120" y="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Microsoft YaHei;" value="发送端" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="320" y="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-3" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="OFl_36KhPZ3q9QVQf39l-1" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="160" y="440" as="sourcePoint" />
|
||||
<mxPoint x="360" y="210" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-4" edge="1" parent="1" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="OFl_36KhPZ3q9QVQf39l-2" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="360" y="440" as="sourcePoint" />
|
||||
<mxPoint x="359.62" y="160" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-5" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="360" y="190" as="sourcePoint" />
|
||||
<mxPoint x="160" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-14" connectable="0" parent="OFl_36KhPZ3q9QVQf39l-5" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#d5e8d4;labelBorderColor=#82b366;" value="Packet=0" vertex="1">
|
||||
<mxGeometry relative="1" x="-0.0512" as="geometry">
|
||||
<mxPoint x="55" y="-14" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-9" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="160" y="230" as="sourcePoint" />
|
||||
<mxPoint x="360" y="270" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-10" connectable="0" parent="OFl_36KhPZ3q9QVQf39l-9" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="ACK=1" vertex="1">
|
||||
<mxGeometry relative="1" x="-0.147" y="-2" as="geometry">
|
||||
<mxPoint x="75" y="15" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-11" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;dashed=1;dashPattern=8 8;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="360" y="210" as="sourcePoint" />
|
||||
<mxPoint x="160" y="250" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-15" connectable="0" parent="OFl_36KhPZ3q9QVQf39l-11" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#f8cecc;labelBorderColor=#b85450;" value="Packet=1" vertex="1">
|
||||
<mxGeometry relative="1" x="-0.5075" y="-2" as="geometry">
|
||||
<mxPoint x="9" y="-5" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-17" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="360" y="230" as="sourcePoint" />
|
||||
<mxPoint x="160" y="270" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-18" connectable="0" parent="OFl_36KhPZ3q9QVQf39l-17" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#d5e8d4;labelBorderColor=#82b366;" value="Packet=2" vertex="1">
|
||||
<mxGeometry relative="1" x="-0.0512" as="geometry">
|
||||
<mxPoint x="55" y="-14" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-19" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="160" y="270" as="sourcePoint" />
|
||||
<mxPoint x="360" y="310" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-20" connectable="0" parent="OFl_36KhPZ3q9QVQf39l-19" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="ACK=1" vertex="1">
|
||||
<mxGeometry relative="1" x="0.5679" y="-1" as="geometry">
|
||||
<mxPoint x="3" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-23" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;" value="未收到Packet1,<div>重复ACK</div>" vertex="1">
|
||||
<mxGeometry height="30" width="100" x="60" y="254" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-24" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;" value="重复ACK代表丢包,<div>触发重传</div>" vertex="1">
|
||||
<mxGeometry height="30" width="110" x="370" y="294" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-25" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="360" y="310" as="sourcePoint" />
|
||||
<mxPoint x="160" y="350" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-26" connectable="0" parent="OFl_36KhPZ3q9QVQf39l-25" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#d5e8d4;labelBorderColor=#82b366;" value="Packet=1" vertex="1">
|
||||
<mxGeometry relative="1" x="-0.5075" y="-2" as="geometry">
|
||||
<mxPoint x="9" y="6" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-27" edge="1" parent="1" style="endArrow=classic;html=1;rounded=0;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="160" y="350" as="sourcePoint" />
|
||||
<mxPoint x="360" y="390" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-28" connectable="0" parent="OFl_36KhPZ3q9QVQf39l-27" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" value="ACK=3" vertex="1">
|
||||
<mxGeometry relative="1" x="0.5679" y="-1" as="geometry">
|
||||
<mxPoint x="3" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="OFl_36KhPZ3q9QVQf39l-29" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;" value="收到重传,<div>传送ACK</div>" vertex="1">
|
||||
<mxGeometry height="30" width="100" x="60" y="335" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
figures/tcp_slow_recovery.drawio.pdf
Normal file
BIN
figures/tcp_slow_recovery.drawio.pdf
Normal file
Binary file not shown.
Reference in New Issue
Block a user