2024-9-18-2

main
bai 2024-09-18 16:58:17 +08:00
parent 6c68f18673
commit 5696d4f26c
2 changed files with 94 additions and 7 deletions

View File

@ -1,6 +1,7 @@
\documentclass[a4paper,22pt]{report} \documentclass[a4paper,12pt]{report}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
\usepackage[UTF8]{ctex} \usepackage[UTF8]{ctex}
\usepackage{fancybox}
%\setmainfont{Noto Serif CJK SC} %\setmainfont{Noto Serif CJK SC}
%\setmainfont{FangSong} %\setmainfont{FangSong}
\setmainfont{SimSun} \setmainfont{SimSun}
@ -151,27 +152,77 @@
\item 服务质量 \item 服务质量
\item 组播 \item 组播
\end{itemize} \end{itemize}
\section{网络类型} \textbf{网络这部分内容讲述的并不深,不再做过多的记录,只是把一些基本概念重述一下。}
自适应路由,网络两点间的通信的最佳路由会周期性的重新评估,评估时会考虑到当时的网络流量以及故障情况。路由算法包括两部分内容:一是决定每个数据包穿梭于网络时所应经过的路径;二是必须通过监控流量和检测配置变化或故障来动态地更新网络的知识。
路由器信息协议Router Information Protocol通过发送自己路由表信息的概要和邻接结点相互交互网络信息。周期性地并且只要本地路由表发生改变就将自己的路由表发给邻接的所有可访问的路由器当从邻接路由器接收这样的表时如果接收到的表中给出了到达一个新目的地的路由或对于已有的一个目的地更好的路由则用新的路由更新本地的路由。
向量-距离算法可以用多种方法改进。开销,也被称为度量,可以根据链路的实际带宽来计算;可以修改算法,以增加信息收敛的速度。
经验表明当网络的负载超过了其能力的80\%,系统的吞吐量会因为数据包丢失而下降,除非控制高负载链路的使用。
UDP数据报被封装在一个IP数据包中它具有一个包含源端口号和目的端口号的短的头部、一个长度域和一个校验和它不提供舆保证TCP建立了一个双向的通信通道包含额外机制以保证可靠性排序TCP发送进程将流分割成数据片断序列然后将之作为IP数据包发送每个TCP都有一个序号它在该片断的第一个字节给出流中的字节数流控制发送方管理不能使接收方或者中间结点过载这通过片断确认机制完成确认片断中的窗口大小域指定了在下一个确认之前允许发送方传送的数据量。
\chapter{进程间通信}
\textbf{特征}\par
\textit{同步和异步}每个消息目的地与一个队列相关发送进程将消息添加到远程队列中接收进程从本地队列中移除消息。在同步形式的通信中发送进程和接收进程之间在每一个消息上阻塞。在异步情况下send操作是非阻塞的只要消息被复制到本地缓冲区发送进程就可以继续进行其他处理消息的传递与发送进程并行进行。receive操作有阻塞型和非阻塞型两种形式。在不阻塞操作中接收进程在发出recieve操作后可继续执行它的程序该操作在后台提供一个缓冲区但它必须通过轮循或中断独立接收缓冲区已满的通知。在多线程情况下阻塞型recieve缺点较少。
\textit{消息目的地}可以通过名字使用服务,可以使用服务重定位,但不能迁移,迁移指在系统运行时移动服务所在的位置。
\textit{可靠性}:如果一个点对点消息服务在丢失了“合理”数量的数据包后,仍能保证发送消息,那么该服务就被称为可靠的。
\textit{排序}:有些应用要求消息要按发送的顺序发送。
UDP数据报通信的一些问题
\begin{itemize}
\item 消息大小接收进程要指定固定大小的用于接收消息的字节数组。底层IP协议最大数据包为216字节。大多数情况下消息大小被限制为8KB左右。
\item 阻塞,支持阻塞和非阻塞
\item 超时,选择适当的超时不容易
\item 任意接收recieve不指定消息的来源
\end{itemize}
UPD故障模型
\begin{itemize}
\item 遗漏故障:消息偶尔会丢失
\item 排序,消息可能没有按顺序发送
\end{itemize}
\section{覆盖网络}
一个面向特定应用的虚拟网络能建立在已有网络上并为特定的应用进行优化,而不改变底层网络的特征。每个虚拟网络有它自己特定的寻址模式、协议和路由算法,它们被重新定义以满足特定类应用的需要。
覆盖网络(overlay network)是一个结点和虚拟链接组成的虚拟网络,它位于一个底层网络之上,提供一些独有的功能:
\begin{itemize}
\item 满足一类应用需求的服务或一个特别高层的服务,如多媒体内容的分发;
\tem 在一个给定的联网环境中的更有效的操作,如在一个自组织网络中的路由;
\item 额外的特色,如组播或安全通信。
\end{itemize}
\chapter{远程调用}
请求-应答协议描述了一个基于消息传递的范型,该协议支持在客户/服务器计算中遇到的消息双向传输。请求-应答协议的故障模型包括:存在遗漏故障和没有保证消息按照其发送顺序进行传输,除此之外,该协议还会遇到进程故障问题。
实现基于TCP流的请求-应答协议的原因之一是期望避免实现多包协议因为TCP流可以传输任意长度的参数和结果。如果应用不要求TCP提供的所有机制那么更有效的方法是定制一个基于UDP实现的协议。
HTTP方法每个用户请求指定使用服务器资源的方法和该资源的URL,应答则说明该请求的状态:\par
GET请求在参数中给出的URL对应的资源。\par
HEAD:与GET相同但不返回任何数据。\par
POST指定资源的URL,该资源可处理在请求消息体中提供的数据。\par
PUT要求请求中提供的数据在存储时以指定的URL所标识的资源要么作为现有资源修改要么作为一种新资源。\par
OPTIONS服务器提供给客户端能够应用到给定URL及其特定需求的方法列表\par
TRACE服务器返回请求的消息用于诊断目的。\par
DELETE:服务器删除给定URL所标识的资源。\par
PUT和DELETE操作是幂等操作。
\section{远程过程调用}
远程过程调用使分布式编程和传统编程相似即实现了高级的分布透明性底层RPC系统隐藏了分布式环境重要的部分包括对参数和结果的编码和解码、消息传递以及保留过程调用要求的语义。
RPC调用语义\textbf{或许调用语义}远程方法可能执行一次或者根本不执行,当没有任何容错措施时,就启用了或许语义。它可能遇到的故障模型:遗漏故障,如果调用或结果消息丢失;系统崩溃,由于包含远程的服务器出现故障。或许语义仅对那些可以接受偶然调用失败的应用是有用的。\textbf{至少一次调用语义},调用者可能收到返回的结果,也可能收到一个异常。异常信息通知调用者没有接收到执行结果。至少一次调用语义可以通过重发请求消息来达到,它屏蔽了调用或结果消息的遗漏故障。其可能的故障模型为:由于包含远程对象的服务器故障而引起的系统崩溃;随机故障。如果服务器操作中的操作被设计成幂等操作,则至少一次是可以接受的。\textbf{至多一次调用语义}:调用者可以接收返回的结果,也可以接收一个异常。异常信息通知调用者没有收到执行结果。
\begin{tabular}{|c|c|c|c|}\hline
\multicolumn{3}{|c}{容错措施}& \\\cline{1-3}
重发请求消息 & 过滤重复消息 & 重新执行过程或重传应答 & 调用语义\\
& 对象 & 消息传递 & 请求-应答 &组通信\\
& 组件 & 套接字 &RPC &发布-订阅\\
& web服务 &多播 &RMI &消息队列\\
& & & &元组空间\\
&&&&DSM\\\hline
\end{tabular}

36
zaji.tex Normal file
View File

@ -0,0 +1,36 @@
\documentclass[a4paper,12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[UTF8]{ctex}
%\setmainfont{Noto Serif CJK SC}
%\setmainfont{FangSong}
\setmainfont{SimSun}
%\fontsize{16pt}
% Title Page
\title{学习笔记}
\author{行走的芦苇}
\begin{document}
\maketitle
\begin{abstract}
\end{abstract}
\chapter{生活}
\section{健身}
\chapter{git}
\chapter{cmake}
自动递归设计变量名
\begin{verbatim*}
file(GLOB_RECURSE SOURCES src/*.cpp include/*.h)
\end{verbatim*}
\chapter{五笔字型}
\end{document}