【计算机网络】可靠传输
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 总结
链接: 湖科大教书匠:计算机网络微课堂 本文是湖科大教书匠的计算机网络笔记,感谢大家的观看,求点赞求收藏求评论 欢迎大家关注我的账号:黑城笑 更多技术分享等待大家
你可能感兴趣的:(#,计算机网络,网络,网络协议)
第三章 数据链路层
becoolguy
一、数据链路层的功能数据链路层在物理层提供服务的基础上向网络层提供服务,主要作用是加强物理层传输层原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。二、介质访问控制CSMA/CD:先听后发、边听边发、冲突停发、随机重发CSMA/CA:在发送数据时先广播告知其他结点,让其他结点在某段时间内不要发送数据,以免出现碰撞三、局域网PPP协
JAVA面试宝典 -《API设计:RESTful 与 GraphQL 对比实践》
没有bug.的程序员
JAVA面试宝典 java 面试 restful
API设计:RESTful与GraphQL对比实践在微服务架构中,API设计如同城市交通网络规划——选择RESTful还是GraphQL,决定了数据流的效率与灵活性。本文通过实战代码与架构对比,揭秘两种风格的适用场景与融合方案。引言:API设计的两大流派之争为什么越来越多团队关注GraphQL?数据需求碎片化:移动端/多终端需要按需获取数据接口迭代成本:REST每次需求变更需发布新版本前后端协作效
瞰景Smart3D实景三维 建模系统用户手册(目录)
瞰景三维
瞰景Smart3D实景三维建模系统用户手册目录一、瞰景Smart3D软件介绍1.1总述1.2系统要求二、瞰景Smart3D软件安装及授权2.1瞰景Smart3D软件的安装2.2瞰景Smart3D软件授权及更新2.2.1账号注册2.2.2授权申请2.2.3试用许可更新2.3瞰景Smart3D正式版网络许可配置2.4瞰景Smart3D正式版许可更新2.4.1提交许可更新2.4.2导入许可更新2.5瞰景
iOS 抓包工具选择与配置指南 从零基础到高效调试的完整流程
HTTPwise
ios 小程序 uni-app iphone android webview https
iOS抓包:复杂网络调试的必要技能随着移动端应用越来越依赖网络交互,iOS抓包作为核心调试工具之一,变得尤为重要。无论是调试App与后端的接口通信、排查HTTPS请求加密问题,还是定位网络连接超时、请求异常,抓包都能在关键时刻提供有效支持。然而,iOS系统的封闭性与安全机制,往往让开发者在调试过程中碰壁:证书无法安装:系统严格的证书信任机制使得常规抓包工具很难直接抓取HTTPS请求。无法配置代理:
2个网卡配置相同ip 华为交换机_网络工程师必会知识点(上篇):华为交换机绑定客户端IP+MAC+端口...
882看看
2个网卡配置相同ip 华为交换机
交换机绑定客户端IP+MAC+端口,主要是为了防止别人没有授权的条件下,随意加入到网络当中操作,为了防止这种不安全的行为的出现,为了我们网络的安全,可以绑定授权的IP以及MAC,这样一来就不会出现IP地址被盗用出现网络安全威胁的情况。DHCPSnooping是DHCP的一种安全特性,主要应用在交换机上,作用是屏蔽接入网络中的非法的DHCP服务器。即开启DHCPSnooping功能后,网络中的客户端
对象存储和文件存储之间的区别?
数据信息存储功能对于企业来说是十分重要的,企业会将业务中的数据存放在一个安全的位置,避免其受到网络攻击或损坏,给企业造成一定的经济损失,而在存储方面有文件存储、对象存储和块存储等多种方式,本文就来为大家介绍一下对象存储和文件存储之间的区别!对象存储是被称为基于对象的存储技术,主要是针对离散单元的处理和解决方式,其中对象可以是指任何形式的数据信息,比如文件信息和视频图片等,能够通过唯一ID访问数据对
网上赚钱每天100块左右(每天用手机赚100元的三种方法)
好项目高省
现如今,时代的不断进步和发展。网赚这个词对我们来说已经不再陌生,随着互联网的发展,许多朋友都希望在空闲时间利用上网多赚一份收入,但因为不懂又经常有人被骗,造成大部分对很多可以赚钱的项目都不敢相信了!今天珊珊就结合自己和朋友的几年网络经历,给大家分享当下十大真实靠谱的网上赚钱方法,只要你用心的学习、认真的去做,我相信你一定能在这找到适合自己的网赚模式。高省APP,是2022年推出的平台,0投资,0风
远程连接FTP方案:在无公网IP网络中配置内网FTP服务的外网异地直接使用访问
在普通家庭和公司网络中配置FTP服务器的远程访问,需要先在局域网内搭建FTP服务器,如选择FileZillaServer等软件进行安装和基础配置,设置用户账号、密码和访问权限等。然后进行端口映射,若无公网IP,可借助nat123等点到点内网穿透工具,注册登录后添加同端口直连映射,将内网FTP服务器端口映射到外网,实现远程同端口直接访问。一、应用场景FTP跨网访问需求为了方便在家办公的时候可以访问公
云手机网络加速全攻略:解决游戏卡顿与APP连接失败困扰
用云手机玩游戏、挂脚本、跑自动任务,明明后台显示在线,但画面卡顿、操作延迟、甚至APP直接“转圈圈连不上”,是不是很抓狂?问题出在哪里?云手机不卡,网络卡?其实,大多数云手机的性能瓶颈,根本不是配置不够,而是网络掉了链子。今天,就把**“云手机网络加速”**这事儿掰开了讲,帮你彻底解决卡顿和连接失败的困扰。网络为什么会卡?别把问题想简单了很多人以为云手机的卡顿就是“带宽不够”,但真相远没那么简单。
Linux五大网络IO模型
Acto
一、须知对于操作系统来说,空间会分为用户空间与内核空间用户空间:用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃,内核也不会受到影响。只能执行简单的运算,不能直接调用系统资源,必须通过系统接口(systemcall),才能向内核发出指令。内核空间:这是Linux内核的运行空间,可以执行任意命令,调用系统的一切资源通过用户空间访问系统空间并让其帮助我们完成我们所需要执行的操作或者任务二
大带宽服务器都有哪些应用场景?
wanhengidc
服务器 运维
大带宽服务器凭借着高速的数据传输能力和强大的网络承载能力,通常被企业应用在需要高流量和高并发处理能力的业务场景当中,下面,就让我们共同了解一下大带宽服务器的应用场景吧!首先,随着科学技术的快速发展,视频媒体等行业发展的十分迅速,而大带宽服务器能够支持大规模用户同时在线观看高清的视频,能够为用户提供流畅的观影体验,所以大多数的视频网站行业会选择使用大带宽服务器租用服务。多人在线网络游戏对于网络速度和
如何在小红书上成为一名成功的能量师并实现赚钱?
浮沉导师
近年来,随着社交媒体和电子商务的蓬勃发展,越来越多的人开始通过网络平台赚取收益。小红书作为中国最大的时尚、美妆和生活方式社交平台之一,不仅提供了分享和购物的功能,还崛起了一种独特的职业——能量师。那么,小红书能量师是如何赚钱的?他们的赚钱之道是怎样的?本文将深入分析小红书能量师的赚钱机制,并探讨如何利用高省app进一步增加收入。首先,让我们了解小红书能量师是什么以及他们的赚钱方式。1.能量师的定义
PWA进阶:打造离线可用的Web应用
天天进步2015
前端开发 前端
引言在移动互联网时代,用户对Web应用的期望已不仅限于可访问性,更要求其具备类似原生应用的体验。ProgressiveWebApp(PWA)技术的出现,使Web应用能够提供接近原生应用的用户体验,尤其是在网络连接不稳定或完全离线的情况下仍然可以使用。本文将深入探讨如何构建真正离线可用的PWA,帮助开发者掌握这一强大技术的核心要点。PWA核心技术回顾在深入探讨离线功能之前,让我们简要回顾PWA的三个
今日秋分,第19届亚运会盛大开启
蕙de风
今日秋分。这是一个寓意着丰收的节气。今年秋分是第六个中国农民丰收节。图片来自网络,侵删!可惜的是,今年秋天雨水似乎格外的多,今天同样如此。不能外出,无法赏秋,于是只能在小区稍微转转,空气里依稀传来桂花的香味。与秋分相关的喜讯也随之在发声。微信上,均先生告诉我,博士毕业的儿子录取到高校当老师了,总算了解一桩心事。我立刻拎起电话向他表示祝贺。前段时间,均先生跟我说过,儿子毕业回到家以后拒绝会客,因为“
揭秘网络通信:数据传输的完整流程解析
网络通信是一个复杂但高度结构化的过程,涉及多个层次和协议的协作。以下是其核心原理和步骤的详细解析:1.网络通信的分层模型网络通信基于分层架构(如OSI七层模型或TCP/IP四层模型),每一层专注于特定功能,确保数据可靠传输:OSI模型TCP/IP模型功能应用层应用层提供用户接口(如HTTP、FTP、DNS)。表示层—数据格式转换(如加密、压缩)。会话层—建立、管理会话(如RPC、SQL)。传输层传
成为有知识的人:一些基本原则
蕴韵1236
真实的学习是多种要素的联结和整合。一、陈述性知识的发展当人们对正学习的某个领域有较好的知识基础时,他们学得最好。有许多精细的图式和脚本引导,新的材料将会变得更有意义,而且在长时记忆网络中有许多可能的节点,它们可以将新旧信息联结起来。1、使教学富有意义有意义的课堂,是使用对学生有意义的词汇来呈现的;有意义的课堂应该组织良好,不同知识点之间应有清晰的联系;有意义的课堂能够通过例子和对比,自然地利用旧信
【SpringCloud微服务实战09】Elasticsearch 搜索引擎
李维山
Java elasticsearch spring cloud 搜索引擎
一、Elasticsearch安装1、Docker安装ES#创建一个网络dockernetworkcreatees-net#拉取ES镜像(这里使用7.17.18版本)dockerpullelasticsearch:7.17.18#新建一个目录存放es数据mkdirescdes#docker运行单机启动esdockerrun-d\--namees\-e"ES_JAVA_OPTS=-Xms512m-X
5、网络基础:从协议到各层解析
juice
探索Java网络编程精髓 网络协议 TCP/IP OSI模型
网络基础:从协议到各层解析1.网络协议概述在网络通信中,协议是计算机之间进行数据交换的规则集合。不同的协议定义了网络通信的不同方面。例如,超文本传输协议(HTTP)规定了网页浏览器和服务器之间的通信方式;而IEEE802.3标准则定义了在特定类型的线缆上将比特编码为电信号的协议。开放且公开的协议标准使得不同厂商的软件和设备能够相互通信,比如你的网页浏览器无需关心服务器是Unix工作站、Window
这年清明注定不平凡
望着蓝天的孩子
以往的清明,大家都是穿带整齐后,去给先人扫墓,平常的不能在平常。可是,今年,4月4日这天,全国人都哀悼逝去的英雄,全国人的心情都无比沉重,大家都对逝去的英雄感到悲痛。图片来自网络看着手机里的各大官方软件都将背景换成黑白色,心里有种说不出的沉重感,脑子里不断回想着这几个月在新闻上看到的全国人民抗击疫情的画面,那些不顾生命危险战斗在疫情一线的的医护人员,那些日日夜夜为建设火神山和雷神山医院的不辞辛劳的
寻找稳之路(8)
其然所以然
刘斌焦点网络四期驻马店坚持分享第303天面对来访者,咨询师能稳住就体现在能以探问引导提升当事人改变意愿与动机。首先可以引导当事人回想例外的美好与优势,产生再次行动的动力。引导当事人看到自己是有自我控制力,并促使其自我负责。这些切入点有时还能找到当事人在乎的人、事、物。对于当事人来说,没有让情况更糟就已经花费他们很多的能量与力气了,所以可以采用一种当事人正在储备与酝酿足以改变的能量之眼光来引导这些当
网络通信原理:分层协作与协议解析
1.分层模型与协议栈分层设计的核心思想OSI七层模型:理论框架,明确网络通信的逻辑分工(物理层→应用层)。TCP/IP四层模型:实际应用模型,简化为链路层→网络层→传输层→应用层。分层优势:解耦性:每层独立设计,降低复杂度(如物理层仅关注比特流传输)。标准化:统一接口(如HTTP协议仅需关注应用层,无需关心底层物理介质)。可扩展性:新技术可灵活嵌入(如IPv6替代IPv4时仅需修改网络层)。协议栈
《月光曲》
南的哲尾猫
脸尘跃跃月光催,单猫踩影雀下追剩羽山风冥里响,兽走禽飞信薇薇图片发自App(图片来自网络)
神经网络:从模式组合到多层神经网络的进化
MoonlitHan
人工智能
这两张图展示了神经网络如何从“简单判断”进化到“复杂识别”:1.模式组合:让神经网络“拆分任务”第一张图的核心是“模式组合”:比如识别数字3时,网络会把任务拆成“识别左半部分”和“识别右半部分”;中间的神经元专门负责提取局部特征(比如左半部分的曲线、右半部分的直线);最终输出层的y₃和y₈会综合这些局部特征,判断图片是不是数字3或8。2.多层神经网络:让AI学会“分层思考”第二张图展示了多层神经网
【AAAI2025】计算机视觉|P-sLSTM:P-sLSTM:让LSTM在时间序列预测领域“重获新生”
论文地址:https://arxiv.org/pdf/2408.10006代码地址:https://github.com/Eleanorkong/P-sLSTM关注UPCV缝合怪,分享最计算机视觉新即插即用模块,并提供配套的论文资料与代码。https://space.bilibili.com/473764881摘要传统的循环神经网络结构,如长短期记忆神经网络(LSTM),在时间序列预测(TSF)任
生成式人工智能实战 | 像素卷积神经网络(PixelCNN)
盼小辉丶
生成式人工智能实战150讲 深度学习 生成模型 aigc
生成式人工智能实战|像素卷积神经网络0.前言1.PixelCNN工作原理1.1掩码卷积层1.2残差块2.PixelCNN分析3.使用混合分布改进PixelCNN3.1模型构建3.2模型训练0.前言像素卷积神经网络(PixelConvolutionalNeuralNetwork,PixelCNN)是于2016年提出的一种图像生成模型,其根据前面的像素预测下一个像素的概率来逐像素地生成图像,模型可以通
TensorFlow深度学习实战——DCGAN详解与实现
盼小辉丶
深度学习 tensorflow 生成对抗网络
TensorFlow深度学习实战——DCGAN详解与实现0.前言1.DCGAN架构2.构建DCGAN生成手写数字图像2.1生成器与判别器架构2.2构建DCGAN相关链接0.前言深度卷积生成对抗网络(DeepConvolutionalGenerativeAdversarialNetwork,DCGAN)是一种基于生成对抗网络(GenerativeAdversarialNetwork,GAN)的深度学
JavaScript 异步编程的终极指南:从回调到 Promise、Async/Await
JavaScript异步编程的终极指南:从回调到Promise、Async/Await你是否也曾被一个涉及多层网络请求的函数折磨得死去活来?代码像俄罗斯套娃一样层层嵌套,逻辑混乱不堪,bug隐藏在深渊之中。这种场景,就是每个JavaScript开发者都无法回避的课题:异步编程。由于JavaScript运行在单线程环境中,异步是其命脉所在。它允许程序在等待耗时操作(如API请求、文件读写)完成时,继
【Python】socket
宅男很神经
python 开发语言
第一章:网络通信基石——深入理解OSI与TCP/IP模型在深入探究Pythonsocket模块之前,我们必须首先建立对网络通信底层原理的深刻理解。socket作为操作系统提供的低级网络接口,其行为和功能直接映射着网络协议栈的各个层次。因此,对OSI(开放系统互连)模型和TCP/IP模型的透彻分析,是理解socket操作精髓的先决条件。1.1网络通信的起源与核心概念网络通信的本质是数据在不同物理位置
KVM中使用桥接模式.运维就业技术教程
在KVM中使用桥接模式可以让虚拟机直接接入物理网络,使其成为局域网中的独立节点。以下是配置和使用桥接模式的详细指南:一、桥接模式原理作用:虚拟机通过宿主机的网桥(如virbr0)直接与物理交换机/路由器通信,获得与宿主机相同的网段IP。特点:虚拟机拥有独立IP,可被局域网内其他设备直接访问。无需NAT转换,网络性能更高。需确保宿主机网桥已正确配置。二、配置步骤1.创建网桥接口大多数Linux发行版
微信小程序-礼物商城:完整开发项目教程
薛迟
本文还有配套的精品资源,点击获取简介:微信小程序是腾讯公司推出的移动应用开发平台,适用于无需安装即可使用的在线服务。本项目分享的“微信小程序-礼物商城”源码为开发者提供了电商功能的实际参考,包括商品展示、搜索、购物车、订单管理、支付和用户评价等。源码覆盖了WXML、WXSS、JavaScript基础技术,数据存储、网络请求、页面路由、组件化开发、样式设计、调试与发布、授权与登录以及性能优化等微信小
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