【计算机网络】可靠传输
1.基本概念
2.三种可靠传输的实现机制
2.1停止-等待协议SW
2.1.1 错误状况
2.1.1.1确认与否认
2.1.1.2 超时重传
2.1.1.3 确认丢失
2.1.1.4 确认迟到
2.1.2 停止-等待协议的信道利用率
2.1.3 总结
2.2 回退N帧协议GBN
2.2.1 无差错情况
2.2.2 累计确认
2.2.3 有差错情况
2.2.4 发送窗口尺寸问题
2.2.5 总结
2.3 选择重传协议SR
1.基本概念
使用差错检测技术
(例如循环冗余校验CRC),接收方的数据链路层用过帧尾中的帧检验序列FCS字段的值就可检测出帧在传输过程中是否产生了误码
(比特错误)。 当产生误码时接收方的数据链路层是否丢弃帧取决于数据链路层向上层提供的服务类型:
不可靠传输服务
:仅仅丢弃有误码的帧 ,其他什么也不做;
可靠传输服务
:想办法实现发送端发送什么,接收端就收到什么 。
一般情况下,有线链路
的误码率比较低,为了减小开销,并不要求数据链路层 向上提供可靠传输服务。即使出现了误码,可靠传输的问题由其上层处理。 无线链路
易受干扰,误码率比较高,因此要求数据链路层 必须向上层提供可靠 传输服务。 比特差错
只是传输差错中的一种。 从整个计算机网络体系结构来看,传输差错还包括分组丢失
、分组失序
以及分组重复
。 分组丢失、分组失序以及分组重复这些传输差错,一般不会出现在数据链路层,而会出现在其上层。 可靠传输服务并不仅局限于数据链路层 ,其他各层均可选择实现可靠传输。(如传输层的UDP和TCP)
因为传输差错并不仅仅局限于数据链路层的比特差错,所以上述定义中传输差错中的称呼为分组。
2.三种可靠传输的实现机制
停止-等待协议SW
回退N帧协议GBN
选择重传协议SR
这三种可靠传输实现机制的基本原理并不仅限于数据链路可以应用到计算机网络体系结构的各层协议中。
2.1停止-等待协议SW
数据分组DATA,确认分组ACK,否认分组NAK
2.1.1 错误状况
2.1.1.1确认与否认
发送方每发送完一个数据后,并不能将该数据分组从缓存中删除,只有收到针对该数据分组的确认分组后,才能将其从缓存中删除(因为此分组可能会出现误码 ) 发送方每发送完一个后,就停止发送下一个数据分组,等待来自接收方的确认分组或否认分组,若收到确认分组,则可继续发送下一个数据分组;若收到否认分组,则重发之前发送的那个数据分组。
2.1.1.2 超时重传
2.1.1.3 确认丢失
因为是回答丢失,数据其实已经传过一遍了,通过序号接收方确定是否为重复分组,如果为重复分组则进行丢弃,并返回确认分组(避免超时重传),发送方收到确认分组后就可以发送下一个分组了。
2.1.1.4 确认迟到
接收方的回答可能会出现迟到状态,当这个时候发送发误认为超时进行超时重传,在他重传后,接收方的回答回应了它的重传操作,同时接收方收到了发送方的重传将其丢弃并返回了确认分组,如下图所示: 为防止遇到这种情况,我们将确认分组也进行编号操作,如下图: 注意,下方的DATA0和上方的DATA0是同一分组,由于下一个分组必须等待上一个分组ack后才能继续传递,所以用序号01确定即可,不需要额外的序号。
小结:
2.1.2 停止-等待协议的信道利用率
图中忽略了接收方对数据分组的处理时延以及发送发对确认分组的处理时延,最下方黑色字体的式子为使用停-等待协议的发送方从发送一个数据分组开始,到可以发送下一个数据分组为止需要耗费的总时间 一般Ta<
当RTT>>TD,信道利用率会非常低
例题
2.1.3 总结
像停止-等待协议SW这种自动发送重传的协议我们称它为自动请求重传
简称为ARQ
2.2 回退N帧协议GBN
回退N帧协议GBN在采用流水线传输发送分组的基础上利用发送窗口限制发送发可连续发送数据分组的个数。(此处是假设采用3比特给分组编序号,并不是值所有的GBN都是只有3bit的分组 )
发送窗口的尺寸记为WT,序号发送窗口内的数据可以连续发送,在窗口外的数据不可以发送,当WT=1,则为停止等待协议,WT的值超过取值范围的上限,则会出现严重错误;
接收窗口的尺寸记为WR,回退N帧协议的Wr只能取1,同停止-等待协议相同,序号落在接收窗口内的数据可以接收,数据落在接收窗口外的数据不能够接收;
2.2.1 无差错情况
发送方将序号落在发送窗口内的0~4号数据分组依次连续发送出去,成功到达接收方,每接收一个,接收窗口就向前滑动一个位置,并给发送发针对所接收分组的确认分组。 当发送方收到确认分组,则可将收到确认的数据分组从缓存中删除; 接收方则将接收到的分组交付给上层处理。
2.2.2 累计确认
下图当接收方接收到序号为0和1的数据分组后给发送方发送一个累计确认ACK1,接收完成2~4后给发送发发送一个累计确认ACK4 若在传输过程中ACK1丢失,则接收方知道,序号为4及之前的数据分组被接收方正确接收了,于是将发送窗口向前滑动5个位置 所以采用累计确认的优点为:
即使确认分组丢失,发送法也可能不必重传
减少接收方开销
减少对网络资源的占用
如果ACK4丢失,则同停止-等待协议中一样有超时重传操作。
2.2.3 有差错情况
五号出现误码,则接收方丢弃该分组 后续到达的四个分组的序号和接收方的接收窗口序号不匹配,接收方同样不能接受他们,将它们丢弃,并对之前按需接收的最后一个数据分组进行确认,也就是发送ACK4 每丢弃一个分组就发送一个ACK4 发送发这次发送了5~1号帧,由于5号帧出现误码,后面的帧都没有收到,所以这次直接重传这5帧; 如果7号帧出现误码,则这次要重传7~1号帧
2.2.4 发送窗口尺寸问题
若Wt超过取值范围,例如Wt=8,会出现分组重复传输差错。
例题
2.2.5 总结
2.3 选择重传协议SR
不同于GBN的是,SR中发送窗口的尺寸是在二的三减一次方以内(而不是二的三次方减一),且SR的接收窗口的取值同发送窗口一致。 发送方将发送窗口内数据分组依次连续发出,它们经过互联网到达接收方,但其中二号数据丢失,只要序号落入接收窗口内且无误码的数据分组,接收方都会接收(接收方机能接收按序到达无误码的,又能接收失序到达无误码的 ) 接收方接收0、1号分组并发送确认分组,接收窗口向前滑动; 接收方接收3号分组并发送3号确认分组,但接收窗口不能向前滑动,因为3号数据分组是未按序到达的数据分组; 发送发每收到一个确认分组,就向前滑动一个位置,发送发接收0、1号确认分组,向前滑动,由于不存在2号确认分组,所以发送窗口停止在2,然后将0、1号数据分组的缓存删除,接收方也将0、1号分组交给上层处理; 发送方接收3号确认分组,但发送窗口不能向前滑动,发送方还未收到2号确认分组,不过需要记录3号数据分组已收到确认,这样3号分组不会超时重发 4号5号分组达到接收方,接收方发送4号5号确认分组,但接收窗口不能向前滑动,因为它们是未能按序到达的分组,接收方还未收到2号数据分组 如果在4号和5号确认分组传输过程中 ,发送发进行2号超时重传 4号5号确认分组到达,因为2号确认分组没有到达,发送窗口依旧不能向前滑动,不过可以记录4、5号数据分组已收到确认,发送窗口外的数据无法发送,发送窗口等待2号确认分组 当2号到达接收方,滑动窗口向前滑动4个位置,接收方发送2号确认分组 2号确认分组到达发送方,发送窗口前移4个位置
2.3.1 发送窗口尺寸问题
可以看见,下图中接收窗口已经向前移动5,并包含新的序号为0的接收窗口 同样的,也会出现分组重复传输差错
例题
2.3.2 总结
链接: 湖科大教书匠:计算机网络微课堂 本文是湖科大教书匠的计算机网络笔记,感谢大家的观看,求点赞求收藏求评论 欢迎大家关注我的账号:黑城笑 更多技术分享等待大家
你可能感兴趣的:(#,计算机网络,网络,网络协议)
【Docker系列四】Docker 网络
Kwan的解忧杂货铺@新空间代码工作室
s4 Docker系列 docker 网络 容器
欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术,jvm,并发编程redis,kafka,Spring,微服务等常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,
【第21节】windows sdk编程:网络编程基础
攻城狮7号
Windows编程(C++) windows windows编程 windows sdk c++ 网络编程
目录引言:网络编程基础一、socket介绍(套接字)1.1BerkeleySocket套接字1.2WinSocket套接字1.3WSAtartup函数1.4socket函数1.5字节序转换1.6绑定套接字1.7监听1.8连接1.9接收数据1.10发送数据1.11关闭套接字二、UDP连接流程2.1接收数据2.2发送数据三、阻塞与非阻塞模式四、示例代码4.1TCP协议代码4.2UDP协议代码引言:网络
索骥馆-编程语言之《网络编程实用教程(第2版)》扫描版[PDF]
cinnarnia
面壁区 windows编程 程序设计 TCPIP 网络
内容介绍:本书主要介绍基于tcp/ip协议栈的套接字网络编程技术。全书分为10章,第1章介绍网络编程基础,第2章介绍套接字网络编程接口,第3章介绍windows环境的网络编程,第4章介绍mfc编程,第5章介绍mfcwinsock类的编程,第6章介绍wininet编程,第7章介绍winsock的多线程编程,第8章介绍winsock的输入/输出模型,第9章介绍http及高级编程,第10章介绍电子邮件协
如何用3个月零基础入门网络安全?_网络安全零基础怎么学习
白帽黑客啊一
学习 web安全 安全 python 网安入门
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包前言写这篇教程的初衷是很多朋友都想了解如何入门/转行网络安全,实现自己的“黑客梦”。文章的宗旨是:1.指出一些自学的误区2.提供客观可行的学习表3.推荐我认为适合小白学习的资源.大佬绕道哈!基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包一、自学网络安全学习的误区和陷阱1.不要试图先成为一名程序员(以编程为基础的学习)
【第22节】windows网络编程模型(WSAAsyncSelect模型)
攻城狮7号
Windows编程(C++) windows 网络编程 windows编程 windows sdk c++
目录引言一、WSAAsyncSelect模型概述二、WSAAsyncSelect模型流程2.1自定义消息2.2创建窗口例程2.3初始化套接字2.4注册网络事件2.5绑定和监听2.6消息循环三、完整示例代码引言在网络编程的广袤天地中,高效处理网络事件是构建稳定应用的关键。WSAAsyncSelect模型作为一种独特且实用的网络编程模型,为开发者提供了异步处理网络事件的有力手段。它巧妙地将Window
Windows Server 2025 使用 IIS 搭建 ASP.NET 3.5 网站
少湖说
编程实践 asp.net windows
开启远程桌面参考文章Windowsserver开启远程桌面教程打开服务管理器。ECS配置安全组,开启3389Telnet验证网络联通性telnetx.x.x.x338安装WindowsApp,登录验证安装ASP.NET3.51.参考文章WindowsServer2012安装.NETFramework3.5和WindowsServer2012上安装.NETFramework3.5打开服务器管理器,选
Axios 和 跨域 这两个概念
PLJJ685
前后端分离的仓库管理系统 前端
1.Axios是什么?Axios是一个用于发送网络请求的工具,类似于浏览器自带的fetch,但更强大、更易用。在前端(Vue)中,我们通常用Axios来向后端(SpringBoot)请求数据。举个例子:假设你在一个仓储系统中,前端需要从后端获取商品库存信息。这时,前端就可以用Axios发送一个请求,比如:axios.get('/api/inventory').then(response=>{con
11.网络编程的基础知识
就很对
网络 linux
11.网络编程的基础知识**1.OSI模型与TCP/IP模型****2.IP地址分类****3.Socket编程****4.TCP三次握手与四次挥手****5.常用网络测试工具****6.练习与作业****7.总结**1.OSI模型与TCP/IP模型OSI模型(开放系统互联模型):7层结构:应用层:为网络用户提供各种服务(如HTTP、FTP)。表示层:数据加密解密、压缩解压缩。会话层:管理进程会话
算力网协同创新与多场景应用实践
智能计算研究中心
其他
内容概要算力网协同创新正通过技术融合与场景适配,驱动算力资源的高效整合与跨域调度。核心突破方向涵盖异构计算架构优化、边缘计算实时响应能力提升,以及智能算力在工业互联网、数字孪生等场景的动态供给。随着“东数西算”工程推进,算力网络需兼顾性能与可持续性,在芯片制程优化、模型压缩算法及能耗管理等领域形成技术闭环。技术方向应用场景关键指标异构计算架构工业检测任务延迟<10ms模型压缩算法医疗影像分析计算资
算力技术创新与多场景应用突破
智能计算研究中心
其他
内容概要算力技术创新正成为驱动数字经济发展的核心引擎,其演进路径呈现出多维度突破态势。从量子计算颠覆性架构到光子计算超高速特性,从异构计算资源动态整合到边缘计算实时响应机制,技术革新持续突破物理边界与能耗瓶颈。应用层面,工业互联网实时控制、元宇宙沉浸式交互、生物计算精准建模等场景对算力提出差异化需求,推动智能调度算法与能效管理体系的协同优化。与此同时,全国一体化算力网络建设加速芯片制程迭代、数据中
【第1章>第6节】CMAC小脑模型神经网络的理论学习与MATLAB仿真
fpga和matlab
# 第1章·神经网络 学习 matlab CMAC 小脑模型神经网络 人工智能
目录1.使用软件和版本2.CMAC小脑模型神经网络概述2.1CMAC网络结构2.2CMAC地址映射2.3学习过程3.CMAC网络的MATLAB编程实现4.分辨率,重叠度,学习率对CMAC网络的训练性能影响分析4.1分辨率4.2重叠度4.3学习率5.视频操作步骤演示欢迎订阅FPGA/MATLAB/Simulink系列教程《★教程1:matlab入门100例》《★教程2:fpga入门100例》《★教程
docker 内容器访问另一个容器中的服务
docker容器网络
docker中有两个容器,分别名为mq和hyperf,想在hyperf中访问mq可以使用下面的方法1.创建网络dockernetworkcreatemynetwork2.将使用到的容器(如业务容器,mysql,redis,mq等容器)都加入到网络中dockernetworkconnectmynetworkhyperfdockernetworkconnectmynetworkmqdockernetw
东南亚电商市场研究报告:机遇与挑战并存(Shopee、Lazada、TikTok、Tokopedia)
萧十一郎@
知识科普 开发语言
一、引言1.1研究背景与目的在全球数字化浪潮的推动下,电子商务已成为经济发展的重要驱动力。东南亚地区,凭借其庞大的人口基数、快速增长的互联网普及率以及不断提升的经济水平,电商市场呈现出蓬勃发展的态势,成为全球电商领域中备受瞩目的新兴市场。东南亚拥有超过6.5亿的人口,其中年轻人口占比较高,消费潜力巨大。近年来,该地区互联网基础设施不断完善,智能手机的普及使得网络购物变得更加便捷,为电商的发展提供了
小菜鸟的Python笔记001:将Word文档中数据汇总到Excel表格
蜉蝣2805
小菜鸟的Python笔记 python 数据分析
将Word文档中数据汇总到Excel表格前言一、应用场景二、程序思路及准备工作思路如下:准备工作:三、程序代码1、主程序2、获取Word文档列表3、提取文档内数据4、导入到Excel表格四、遇到的问题1、错误AttributeError:word.Application.Quit2、word文档中复选框的识别总结前言我并非一个专业的程序员,只是一个普通的编程爱好者、一只小菜鸟。得益于网络上各路大神
手机网络ip地址怎么切换?多种方法任你选
hgdlip
ip 手机 网络 智能手机 tcp/ip
随着互联网的日益普及和移动互联网的快速发展,手机已成为我们日常生活中不可或缺的设备。其中,切换手机网络IP地址就是一个常见的需求。本文将为您介绍多种手机网络IP地址的切换方法。一、了解手机网络IP地址在深入讨论手机网络IP地址怎么切换之前,让我们先了解一下IP地址的基本知识。IP地址是互联网协议地址的简称,它用于标识互联网上的每一台设备。对于手机而言,当我们连接到网络时,运营商会为我们分配一个临时
6.5840 Lab 2: Key/Value Server
idMiFeng
github go
在这个实验中,你将构建一个单机版的键值服务器,该服务器能够确保每个操作在网络故障的情况下依然能被精确地执行一次,并且这些操作是线性化的。在后续实验中,你将实现类似的服务器以支持服务器崩溃的情况下进行复制。客户端可以向键值服务器发送三种不同的RPC调用:Put(key,value)、Append(key,arg)和Get(key)。服务器维护一个内存中的键值映射,键和值均为字符串:Put(key,v
[ Linux 命令基础 ] Linux 命令大全-命令前置知识-系统管理-文件和目录管理-文本处理命令-网络管理命令-权限和用户管理命令-磁盘管理命令
_PowerShell
shell脚本入门到精通 Linux 命令大全 linux命令前置知识 linux系统管理 linux文件和目录管理 linux文本处理命令 linux网络管理命令 linux权限和用户管理命令
博主介绍博主介绍:大家好,我是_PowerShell,很高兴认识大家~✨主攻领域:【渗透领域】【数据通信】【通讯安全】【web安全】【面试分析】点赞➕评论➕收藏==养成习惯(一键三连)欢迎关注一起学习一起讨论⭐️一起进步文末有彩蛋作者水平有限,欢迎各位大佬指点,相互学习进步!我们搞网络安全需要经常用到linux命令,比用拿到linux的shell,需要使用linux命令。再比如sh脚本,我们经常
Ubuntu18.04之网络配置+域名配置+软件源配置+ssh免密登陆
那记忆微凉
Linux
网络配置ubuntu18.04网络配置较之前版本有较大改动,它弃用了/etc/networks/interface配置,真正的网络配置是在/etc/netplan/xxx.yaml中生效查看当前系统网口连结状态,使用ipa查看对应网口,如果状态不是down而是up,则选择改网口进行配置编辑/etc/netplan/xxx.yaml#注意,如果每个配置后面有内容,则:号后面需加一个空格,再加入自己的
linux下基本命令和扩展命令(安装和登录命令、文件处理命令、系统管理相关命令、网络操作命令、系统安全相关命令、其他命令)欢迎补充噢
h^hh
Linux linux
基本命令ls:列出目录内容ls:列出当前目录内容ls-l:以长格式列出(显示详细信息)ls-a:显示隐藏文件ls-lh:以易读格式显示文件大小pwd:显示当前工作目录pwd:显示当前目录的绝对路径cd:切换目录cd/path/to/dir:切换到指定目录cd..:返回上一级目录cd~:切换到用户主目录cd-:切换到上一次所在的目录touch:创建空文件或更新文件时间戳touchfile.txt:创
使用Jupyter Notebook进行深度学习编程 - 深度学习教程
shandianfk_com
ChatGPT AI jupyter 深度学习 ide
大家好,今天我们要聊聊如何使用JupyterNotebook进行深度学习编程。深度学习是人工智能领域中的一项重要技术,通过模仿人脑神经网络的方式进行学习和分析。JupyterNotebook作为一个强大的工具,可以帮助我们轻松地进行深度学习编程,尤其适合初学者和研究人员。本文将带领大家一步步了解如何在JupyterNotebook中开展深度学习项目。一、什么是JupyterNotebook?Jup
计算机视觉总结
Trank-Lw
计算机视觉 深度学习 人工智能
以下是针对上述问题的详细解答,并结合代码示例进行说明:1.改进YOLOv5人脸检测模块,复杂光照场景准确率从98.2%提升至99.5%优化具体过程:光照补偿:在数据预处理阶段,采用自适应光照补偿算法,对图像进行实时增强,以减少光照变化对人脸检测的影响。数据增强:在训练数据中增加复杂光照场景下的样本,如强光、弱光、背光等,通过数据增强提高模型对不同光照条件的适应性。模型调整:对YOLOv5模型的网络
Nginx 接入 Keepalived 实现高可用,让你的网站稳如泰山!
OutOfMemory~~
nginx 服务器 前端
一、往期内容回顾前面提到nginx可以实现后端服务的负载均衡,来使得后端的服务能力得到水平的扩展。但是怎么保证nginx的高可用呢,如果nginx挂了,还怎么持续提供服务呢?今天我们就来讲一讲Keepalived实现高可用的方案。二、什么是高可用?Keepalived高可用架构是什么?简单来说,高可用就是让你的网站服务时刻在线,即使出现硬件故障、网络波动等问题,也能快速恢复,保证用户访问不受影响。
事务回滚核心技术
KBkongbaiKB
java
一、事务回滚的数学本质与核心挑战1.1事务状态机模型操作执行持久化完成系统故障事务回滚ActivePartiallyCommittedCommittedFailedAborted1.2核心技术挑战矩阵问题维度单机事务分布式事务原子性保证存储引擎WAL日志二阶段提交协议隔离性实现MVCC多版本控制全局锁调度机制可见性管理事务ID版本链向量时钟同步回滚触发条件SQL执行异常/死锁网络分区/节点故障二、
rabbitmq笔记
java
消息可靠性rabbitmq向消费者投递消息后,有可能会丢失,有可能会重复投递。比如:投递过程网络故障消费者收到消息后宕机消费者接收到消息后处理不当导致异常...rabbitmq需要做的事:机制消费者确认机制消费者处理成功后需要通知发幂等性幂等性指同一个业务,执行一次或多次对业务状态的影响是一致的例如唯一消息id业务状态判断但是数据的更新往往不是幂等的,所以需要确保幂等性确保幂等性方法有两种方案唯一
前端开发:这就是终点吗?
前端javascript
ReactHook深入浅出CSS技巧与案例详解vue2与vue3技巧合集VueUse源码解读让我们重新回到2021年后远程办公风潮兴起的日子,那时候,程序员岗位炙手可热。机会遍地都是,你甚至只需参加少量培训,通过面试后便能轻松收获年薪超15万的工作,还有余暇拍摄一段《程序员的一天》上传网络。经过短短一年左右的培训,你便踏上了年薪六位数的职业道路——那时候,当程序员似乎是一个人人羡慕的理想职业。然而
【网络】数据流(Data Workflow)Routes(路由)、Controllers(控制器)、Models(模型) 和 Middleware(中间件)
一袋米扛几楼98
网络工程/安全 中间件
在图片中,数据流(DataWorkflow)描述了应用程序中数据的流动过程,涉及Routes(路由)、Controllers(控制器)、Models(模型)和Middleware(中间件)。作为初学者,理解这些组件及其联系是掌握Web应用程序开发的关键。以下是对每个技术点的详细解释,以及它们如何相互关联的分析。1.Routes(路由)定义:路由定义了应用程序的URL端点(Endpoints)以及服
SpringBoot接口防抖(防重复提交),接口幂等性,轻松搞定
web18285482512
面试 学习路线 阿里巴巴 spring boot 后端 java
啥是防抖?所谓防抖,一是防用户手抖,二是防网络抖动。在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。要针对用户的误操作,前端通常会实现按钮的loading状态,阻止用户进行多次点击。而对于网络波动造成的请求重发问题,仅靠前端是不行的。为此,后端也应实施相应的防抖逻辑,确保在网络波动的情况下不会接收并处理同一请
Win11网络连接不可用?这些解决方案助你快速恢复网络畅通
nntxthml
网络 智能路由器 windows
Win11网络连接不可用?这些解决方案助你快速恢复网络畅通在使用Windows11系统的过程中,网络连接不可用的问题时常困扰着我们。无论是无法访问互联网、共享文件还是使用网络应用程序,这一问题都会对我们的工作和生活造成诸多不便。网络连接不可用的情况可能由多种原因导致,例如网络连接未开启、硬件设备故障等。为了帮助大家快速解决这一问题,本文将详细介绍几种实用的解决方案。一、检查并启用网络连接在Wind
笔记本Win7系统无线网名称显示乱码解决方案
mmoo_python
windows
笔记本Win7系统无线网名称显示乱码解决方案在使用Windows7操作系统的笔记本电脑时,用户可能会遇到无线网络名称显示乱码的问题。这一问题不仅影响了用户识别无线网络的便利性,还可能阻碍正常的网络连接。本文将详细介绍解决这一问题的方法,帮助用户恢复无线网名称的正常显示。具体解决方法1.打开控制面板首先,我们需要进入Windows7的控制面板。可以通过点击开始菜单,然后在搜索框中输入“控制面板”来快
Win11显示不出WiFi列表?全面解决方案来了
mmoo_python
windows
Win11显示不出WiFi列表?全面解决方案来了在使用Windows11操作系统时,连接WiFi网络无疑是日常工作中最基本也是最关键的需求之一。然而,不少用户却遇到了一个棘手的问题:WiFi列表无法显示,导致无法找到并连接可用的WiFi网络。这一问题不仅影响了用户的正常使用体验,还可能对工作和学习造成不小的困扰。本文将深入分析这一问题的可能原因,并提供多种有效的解决方法,帮助你轻松应对Win11显
Linux的Initrd机制
被触发
linux
Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Lin
maven本地仓库路径修改
bitcarter
maven
默认maven本地仓库路径:C:\Users\Administrator\.m2
修改maven本地仓库路径方法:
1.打开E:\maven\apache-maven-2.2.1\conf\settings.xml
2.找到
 
XSD和XML中的命名空间
darrenzhu
xml xsd schema namespace 命名空间
http://www.360doc.com/content/12/0418/10/9437165_204585479.shtml
http://blog.csdn.net/wanghuan203/article/details/9203621
http://blog.csdn.net/wanghuan203/article/details/9204337
http://www.cn
Java 求素数运算
周凡杨
java 算法 素数
网络上对求素数之解数不胜数,我在此总结归纳一下,同时对一些编码,加以改进,效率有成倍热提高。
第一种:
原理: 6N(+-)1法 任何一个自然数,总可以表示成为如下的形式之一: 6N,6N+1,6N+2,6N+3,6N+4,6N+5 (N=0,1,2,…)
java 单例模式
g21121
java
想必单例模式大家都不会陌生,有如下两种方式来实现单例模式:
class Singleton {
private static Singleton instance=new Singleton();
private Singleton(){}
static Singleton getInstance() {
return instance;
}
Linux下Mysql源码安装
510888780
mysql
1.假设已经有mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz
(1)创建mysql的安装目录及数据库存放目录
解压缩下载的源码包,目录结构,特殊指定的目录除外:
32位和64位操作系统
墙头上一根草
32位和64位操作系统
32位和64位操作系统是指:CPU一次处理数据的能力是32位还是64位。现在市场上的CPU一般都是64位的,但是这些CPU并不是真正意义上的64 位CPU,里面依然保留了大部分32位的技术,只是进行了部分64位的改进。32位和64位的区别还涉及了内存的寻址方面,32位系统的最大寻址空间是2 的32次方= 4294967296(bit)= 4(GB)左右,而64位系统的最大寻址空间的寻址空间则达到了
我的spring学习笔记10-轻量级_Spring框架
aijuans
Spring 3
一、问题提问:
→ 请简单介绍一下什么是轻量级?
轻量级(Leightweight)是相对于一些重量级的容器来说的,比如Spring的核心是一个轻量级的容器,Spring的核心包在文件容量上只有不到1M大小,使用Spring核心包所需要的资源也是很少的,您甚至可以在小型设备中使用Spring。
 
mongodb 环境搭建及简单CURD
antlove
Web Install curd NoSQL mongo
一 搭建mongodb环境
1. 在mongo官网下载mongodb
2. 在本地创建目录 "D:\Program Files\mongodb-win32-i386-2.6.4\data\db"
3. 运行mongodb服务 [mongod.exe --dbpath "D:\Program Files\mongodb-win32-i386-2.6.4\data\
数据字典和动态视图
百合不是茶
oracle 数据字典 动态视图 系统和对象权限
数据字典(data dictionary)是 Oracle 数据库的一个重要组成部分,这是一组用于记录数据库信息的只读(read-only)表。随着数据库的启动而启动,数据库关闭时数据字典也关闭 数据字典中包含
数据库中所有方案对象(schema object)的定义(包括表,视图,索引,簇,同义词,序列,过程,函数,包,触发器等等)
数据库为一
多线程编程一般规则
bijian1013
java thread 多线程 java多线程
如果两个工两个以上的线程都修改一个对象,那么把执行修改的方法定义为被同步的,如果对象更新影响到只读方法,那么只读方法也要定义成同步的。
不要滥用同步。如果在一个对象内的不同的方法访问的不是同一个数据,就不要将方法设置为synchronized的。
将文件或目录拷贝到另一个Linux系统的命令scp
bijian1013
linux unix scp
一.功能说明 scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下: scp 远程用户名@IP地址:文件的绝对路径
【持久化框架MyBatis3五】MyBatis3一对多关联查询
bit1129
Mybatis3
以教员和课程为例介绍一对多关联关系,在这里认为一个教员可以叫多门课程,而一门课程只有1个教员教,这种关系在实际中不太常见,通过教员和课程是多对多的关系。
示例数据:
地址表:
CREATE TABLE ADDRESSES
(
ADDR_ID INT(11) NOT NULL AUTO_INCREMENT,
STREET VAR
cookie状态判断引发的查找问题
bitcarter
form cgi
先说一下我们的业务背景:
1.前台将图片和文本通过form表单提交到后台,图片我们都做了base64的编码,并且前台图片进行了压缩
2.form中action是一个cgi服务
3.后台cgi服务同时供PC,H5,APP
4.后台cgi中调用公共的cookie状态判断方法(公共的,大家都用,几年了没有问题)
问题:(折腾两天。。。。)
1.PC端cgi服务正常调用,cookie判断没
通过Nginx,Tomcat访问日志(access log)记录请求耗时
ronin47
一、Nginx通过$upstream_response_time $request_time统计请求和后台服务响应时间
nginx.conf使用配置方式:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_r
java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
bylijinnan
java
public class ProbabilityOfDice {
/**
* Q67 n个骰子的点数
* 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
* 在以下求解过程中,我们把骰子看作是有序的。
* 例如当n=2时,我们认为(1,2)和(2,1)是两种不同的情况
*/
private stati
看别人的博客,觉得心情很好
Cb123456
博客 心情
以为写博客,就是总结,就和日记一样吧,同时也在督促自己。今天看了好长时间博客:
职业规划:
http://www.iteye.com/blogs/subjects/zhiyeguihua
android学习:
1.http://byandby.i
[JWFD开源工作流]尝试用原生代码引擎实现循环反馈拓扑分析
comsci
工作流
我们已经不满足于仅仅跳跃一次,通过对引擎的升级,今天我测试了一下循环反馈模式,大概跑了200圈,引擎报一个溢出错误
在一个流程图的结束节点中嵌入一段方程,每次引擎运行到这个节点的时候,通过实时编译器GM模块,计算这个方程,计算结果与预设值进行比较,符合条件则跳跃到开始节点,继续新一轮拓扑分析,直到遇到
JS常用的事件及方法
cwqcwqmax9
js
事件 描述
onactivate 当对象设置为活动元素时触发。
onafterupdate 当成功更新数据源对象中的关联对象后在数据绑定对象上触发。
onbeforeactivate 对象要被设置为当前元素前立即触发。
onbeforecut 当选中区从文档中删除之前在源对象触发。
onbeforedeactivate 在 activeElement 从当前对象变为父文档其它对象之前立即
正则表达式验证日期格式
dashuaifu
正则表达式 IT其它 java其它
正则表达式验证日期格式
function isDate(d){
var v = d.match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/i);
if(!v) {
this.focus();
return false;
}
}
<input value="2000-8-8" onblu
Yii CModel.rules() 方法 、validate预定义完整列表、以及说说验证
dcj3sjt126com
yii
public array rules () {return} array 要调用 validate() 时应用的有效性规则。 返回属性的有效性规则。声明验证规则,应重写此方法。 每个规则是数组具有以下结构:array('attribute list', 'validator name', 'on'=>'scenario name', ...validation
UITextAttributeTextColor = deprecated in iOS 7.0
dcj3sjt126com
ios
In this lesson we used the key "UITextAttributeTextColor" to change the color of the UINavigationBar appearance to white. This prompts a warning "first deprecated in iOS 7.0."
Ins
判断一个数是质数的几种方法
EmmaZhao
Math python
质数也叫素数,是只能被1和它本身整除的正整数,最小的质数是2,目前发现的最大的质数是p=2^57885161-1【注1】。
判断一个数是质数的最简单的方法如下:
def isPrime1(n):
for i in range(2, n):
if n % i == 0:
return False
return True
但是在上面的方法中有一些冗余的计算,所以
SpringSecurity工作原理小解读
坏我一锅粥
SpringSecurity
SecurityContextPersistenceFilter
ConcurrentSessionFilter
WebAsyncManagerIntegrationFilter
HeaderWriterFilter
CsrfFilter
LogoutFilter
Use
JS实现自适应宽度的Tag切换
ini
JavaScript html Web css html5
效果体验:http://hovertree.com/texiao/js/3.htm
该效果使用纯JavaScript代码,实现TAB页切换效果,TAB标签根据内容自适应宽度,点击TAB标签切换内容页。
HTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
Hbase Rest API : 数据查询
kane_xie
REST hbase
hbase(hadoop)是用java编写的,有些语言(例如python)能够对它提供良好的支持,但也有很多语言使用起来并不是那么方便,比如c#只能通过thrift访问。Rest就能很好的解决这个问题。Hbase的org.apache.hadoop.hbase.rest包提供了rest接口,它内嵌了jetty作为servlet容器。
启动命令:./bin/hbase rest s
JQuery实现鼠标拖动元素移动位置(源码+注释)
明子健
jquery js 源码 拖动 鼠标
欢迎讨论指正!
print.html代码:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<title>发票打印</title>
&l
Postgresql 连表更新字段语法 update
qifeifei
PostgreSQL
下面这段sql本来目的是想更新条件下的数据,可是这段sql却更新了整个表的数据。sql如下:
UPDATE tops_visa.visa_order
SET op_audit_abort_pass_date = now()
FROM
tops_visa.visa_order as t1
INNER JOIN tops_visa.visa_visitor as t2
ON t1.
将redis,memcache结合使用的方案?
tcrct
redis cache
公司架构上使用了阿里云的服务,由于阿里的kvstore收费相当高,打算自建,自建后就需要自己维护,所以就有了一个想法,针对kvstore(redis)及ocs(memcache)的特点,想自己开发一个cache层,将需要用到list,set,map等redis方法的继续使用redis来完成,将整条记录放在memcache下,即findbyid,save等时就memcache,其它就对应使用redi
开发中遇到的诡异的bug
wudixiaotie
bug
今天我们服务器组遇到个问题:
我们的服务是从Kafka里面取出数据,然后把offset存储到ssdb中,每个topic和partition都对应ssdb中不同的key,服务启动之后,每次kafka数据更新我们这边收到消息,然后存储之后就发现ssdb的值偶尔是-2,这就奇怪了,最开始我们是在代码中打印存储的日志,发现没什么问题,后来去查看ssdb的日志,才发现里面每次set的时候都会对同一个key