浮萍晓生的开发日志

记录学习的旅程,把握可预见的未来

导航

文章分类 -  网络协议

摘要:1、介绍 防火墙的使用,有效的隔离了机构内部网络和外部网络,这种类型的Internet架构变得越来越流行了。这种防火墙系统大都充当着网络之间的应用层网关的角色,通常提供经过控制的Telnet、FTP和SMTP访问。为了推动全球信息的交流,更多的新的应用层协议的推出,这就有必要提供一个总的架构使这些协议能够更明显和更安全的穿过防火墙,也有必要在实际上为它们穿过防火墙提供一个更强的认证机制。这种需要源于客户机-服务器联系在不同组织网络之间的实现,而这种联系需要得到控制并有安全的认证。 在这儿所描述的协议框架是为了让使用TCP和UDP的客户/服务器应用程序更方便地使用网络防火墙所提供的服务所... 阅读全文

posted @ 2014-03-20 09:43 浮萍晓生 阅读(1270) 评论(0) 推荐(0)

摘要:1 VNOC数据包结构:{}1.1包头结构:{}起始符:1字节,统一字符'V"的ASCⅡ码 0x56版本号:1字节,标志本VNOC协议的版本序号:2字节,指令的编号包体长度:4个字节,用于指定包体的长度(可以辅助数据解析)令牌:16字节,一个GUID,用来提供用户验证指令:1字节,具体的指令,用来标注此数据包的功能保留空间:4个字节,保留长度参数数量:1字节,用来标志包体中参数的个数1.2包体结构:{......}参数N长度:4字节,对应参数N的长度参数N:编码后的参数,具体类型根据具体指令决定1.3 包尾结构:{}校验码:未知长度,未定结束符:1字节,固定字符'C‘ 阅读全文

posted @ 2014-03-19 19:05 浮萍晓生 阅读(1126) 评论(0) 推荐(0)

摘要:首先先介绍一些基本概念:NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本 的NAT和NAPT(Network Address/Port Translator)。最开始NAT是运行在路由器上的一个功能模块。最先提出的是基本的NAT,它的产生基于如下事实:一个私有网络(域)中的节点中只有很少的节点需要与外网连接(呵呵,这是在上世纪90年代中期提出 的)。那么这个子网中其实只有少数的节点需要全球唯一的IP地址,其他的节点的IP地址应该是可以重用的。因此,基本的NAT 阅读全文

posted @ 2014-03-11 15:05 浮萍晓生 阅读(547) 评论(0) 推荐(0)

摘要:Boost.Asio是用于网络和低层IO编程的跨平台C++库,为开发者提供了C++环境下稳定的异步模型.综述基本原理应用程序与外界交互的方式有很多,可通过文件,网络,串口或控制台.例如在网络通信中,完成独立的IO操作需要很长时间.对应用程序开发者提出了一个挑战.Boost.Asio提供了管理需长时间运行操作的工具,但不必涉及到线程的并发模式和显示锁定.Boost.Asio库使用C++来实现,提供如网络编程等常用的操作系统接口. Boost.Asio实现了如下目标:·可移植性Portability.库支持一系列的常用系统操作,具有稳定的跨平台特性.·可扩展性Scalabili 阅读全文

posted @ 2014-02-21 16:13 浮萍晓生 阅读(190) 评论(0) 推荐(0)

摘要:·概要: 接触前摄器模式是在学习BOOST.ASIO时看到的—BOOST.ASIO内部是采用的前摄器模式实现的,为了深入理解BOOST.ASIO才学习一下前摄器模式。 同时采用前摄器模式的应用还有windows平台的IOCP和ACE--常听说的,还有其他很多应用。 学习之后才发现工作以来的通信学习应用从最开始的简单的SOCKET通信到应用BOOST.ASIO挺符合学习规律的。·要点:传统并发模型: 原理是根据CPU数量创建相应的线程,而每个线程中都执行: 等待新连接—>接受新连接—>利用新连接通信(I/O)—>结束连接 -->继续等待新连接(重复这个 阅读全文

posted @ 2014-02-19 18:00 浮萍晓生 阅读(363) 评论(0) 推荐(0)

摘要:Wireshark抓包分析TCP的建立与断开过程一、TCP建立连接说明:在此图中HostA充当客户端角色,HostB充当服务器角色。TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。第一次握手:建立连接时,HostA发送SYN包(SEQ=a)到HostB,并进入SYN_SEND状态,等待HostB确认。第二次握手:HostB收到SYN包后,必须确认HostA的SYN(ACK=a+1),同时自己也送一个SYN包(SEQ=b),即SYN+ACK 阅读全文

posted @ 2014-02-18 16:55 浮萍晓生 阅读(242) 评论(0) 推荐(0)

摘要:简介什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍:Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格 阅读全文

posted @ 2014-02-18 14:00 浮萍晓生 阅读(119) 评论(0) 推荐(0)

摘要:会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1 Cookie机制在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都 阅读全文

posted @ 2014-02-17 11:37 浮萍晓生 阅读(94) 评论(0) 推荐(0)

摘要:摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。目录:一、术语session二、HTTP协议与状态保持三、理解cookie机制四、理解session机制五、理解javax.servlet.http.HttpSession六、HttpSession常见问题七、跨应用程序的session共享八、总结参考文档一、术语session在我的经验里,session这个词被滥用的程度 阅读全文

posted @ 2014-02-17 11:14 浮萍晓生 阅读(107) 评论(0) 推荐(0)

摘要:今天对cookie进行了一番学习,通过一些测试程序,对cookie的工作方式有了一个大概的了解。在bs的架构中,浏览器作为客户端,与服务器之间通过session保持连接状态。以前面试的时候,经常被问及一个问题:浏览器禁止cookie时,服务器与客户端浏览器能否保持session连接?其实要完全回答正确这个问题,需要对cookie的作用有全面的了解。具体cookie的解释大家可以google一下。我以前一直有一个误解(估计很多人都有),以为cookie就是一个文件,用来保存用户信息或者其他信息。如果这么认为的话,那么浏览器禁用cookie也就是不保存成文件而已,并不影响浏览器与服务器交互。其实如 阅读全文

posted @ 2014-02-17 10:36 浮萍晓生 阅读(136) 评论(0) 推荐(0)

摘要:UDP和TCP协议利用端口号实现多项应用同时发送和接收数据。数据通过源端口发送出去,通过目标端口接收。有的网络应用只能使用预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UDP和TCP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。动态端口的范围是从1024到65535。 MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes最大不能超过1518bytes,对于小于或者大于这个限制... 阅读全文

posted @ 2014-02-15 11:13 浮萍晓生 阅读(854) 评论(0) 推荐(0)

摘要:HTTP的定义和历史 在一个网络中。传输数据需要面临三个问题: 1.客户端如何知道所求内容的位置? 2.当客户端知道所求内容的位置后,如何获取所求内容? 3.所求内容以何种形式组织以便被客户端所识别? 对于WEB来说,回答上面三种问题分别采用三种不同的技术,分别为:统一资源定位符(URIs),超文本传输协议(HTTP)和超文本标记语言(HTML)。对于大多数WEB开发人员来说URI和HTML都是非常的熟悉。而HTTP协议在很多WEB技术中都被封装的过多使得HTTP反而最不被熟悉。 HTTP作为一种传输协议,也是像HTML一样随着时间不断演进的,目前流行的HTTP1.1是HTTP协议的第三个版本 阅读全文

posted @ 2014-02-15 10:20 浮萍晓生 阅读(128) 评论(0) 推荐(0)

摘要:一:http的由来:OSI模型把网络通信分成七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,对于开发网络应用人员来说,一般把网络分成五层,这样比较容易理解。这五层为:物理层、数据链路层、网络层、传输层和应用层(最顶层),下面是一张网络分层的图片(来源于网络):网络中的计算机互相通信就是实现了层与层之间的通信,要实现层与层之间的通信,则各层都要遵守规则,这样才能完成更好的通信, 我们就把它们之间遵守的规则就叫个“协议”,然而网络上的五层之间遵守的协议不一样,每层都有各自的协议。下面就由下至上的讲述每层的协议物理层:物理层是五层模型中的最底层,物理层为计算机之间的数据通信提供了传 阅读全文

posted @ 2014-02-14 18:11 浮萍晓生 阅读(239) 评论(0) 推荐(0)

摘要:引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因 阅读全文

posted @ 2014-02-13 17:38 浮萍晓生 阅读(103) 评论(0) 推荐(0)