
网络解析
bestone0213
这个作者很懒,什么都没留下…
展开
-
网络解析——TCP握手说明
TCP如何保证可靠传输的?确认机制:保证每个数据包都能收到,差错检验:保证数据包的正确,流量控制:保证接收方不会溢出。顺序编号:保证传输的有序性1、TCP/IP的可靠传输服务五个特征:面向数据流、虚电路连接、有缓冲的传输、无结构的数据流、全双工的连接。2、TCP采用了具有重传功能的肯定确认技术作为可靠数据流传输服务的基础。3、为了提高数据流传输过程的效率,在转载 2014-10-22 14:53:14 · 1168 阅读 · 0 评论 -
Netty系列之Netty高性能之道
1. 背景1.1. 惊人的性能数据最近一个圈内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性能提升了8倍多。事实上,我对这个数据并不感到惊讶,根据我5年多的NIO编程经验,通过选择合适的NIO框架,加上高转载 2015-04-02 15:13:07 · 481 阅读 · 0 评论 -
高性能IO模型浅析
http://www.cnblogs.com/fanzhidongyzby/p/4098546.html服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLO转载 2015-04-01 15:23:26 · 354 阅读 · 0 评论 -
使用异步 I/O 大大提高应用程序的性能
在 IBM Bluemix 云平台上开发并部署您的下一个应用。现在就开始免费试用AIO 简介Linux 异步 I/O 是 Linux 内核中提供的一个相当新的增强。它是 2.6 版本内核的一个标准特性,但是我们在 2.4 版本内核的补丁中也可以找到它。AIO 背后的基本思想是允许进程发起很多 I/O 操作,而不用阻塞或等待任何操作完成。稍后或在接收到 I/O 操作完成的转载 2015-04-01 15:31:42 · 352 阅读 · 0 评论 -
tcp状态参数设置
说明: 通常情况下:一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手里面的几个概念:SYN: (同步序列编号,Synchronize Sequence Numbers)ACK: (确认编号,Acknowledgement Number)FIN: (结束标志,FINish)TCP三次握手(创建 OPEN)客户端发起一个和服务创转载 2015-04-04 15:55:35 · 838 阅读 · 0 评论 -
TCP十一种状态
2、全部11种状态 2.1、客户端独有的:(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 (4)CLOSING (5)TIME_WAIT 。 2.2、服务器独有的:(1)LISTEN (2)SYN_RCVD (3)CLOSE_WAIT (4)LAST_ACK 。 2.3、共有的:(1)CLOSED (2)ESTABLISHED转载 2015-04-04 13:08:24 · 8531 阅读 · 3 评论 -
TCP状态图和常见问题这里有待研究,怎么是九种状态
http://www.cnblogs.com/zhenjing/archive/2011/04/20/2021791.htmlTCP 共有9 个网路状态,其中涉及到关闭的状态有5 个。 在我们编写网络相关程序的时候,这5 个状态经常出现。因为这5 个状态相互关联,相互纠缠,而且状态变化触发都是由应用触发,但是又涉及操作系统和网络,所以正确的理解TCP 在关闭时网络状态变化情转载 2015-04-04 15:36:47 · 476 阅读 · 0 评论 -
TCP连接的状态详解+原因排查
我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。(总结网络上的内容)http://blog.youkuaiyun.com/hguisu/article/details/387008991、TCP状态linux查看tcp的状态命令:1)、netstat -nat 查看TCP各个状态的数量2)、lsof -i:port 可以检测到打转载 2015-04-04 15:34:33 · 7432 阅读 · 0 评论 -
TCP的11种状态,SIGPIPE,close/shutdown
TCP/IP协议的11种状态 说明:1.如下图(客户端与服务器都在本机:双方(server的子进程,与client)链接已经建立(ESTABLISHED),等待通信)2.最先调用close的一端,后面会进入TIME_WAIT的状态(下图,server端首先关闭)3.TIME_WAIT 时间是2MSL(报文的最长存活周期的2转载 2015-04-04 15:49:30 · 1196 阅读 · 0 评论 -
欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2015-06-29 09:10:08 · 326 阅读 · 0 评论 -
nginx服务器安装及配置文件详解
nginx在工作中已经有好几个环境在使用了,每次都是重新去网上扒博客,各种编译配置,今天自己也整理一份安装文档和nginx.conf配置选项的说明,留作以后参考。像负载均衡配置(包括健康检查)、缓存(包括清空缓存)配置实例,请参考 http://seanlook.com/2015/05/17/nginx-install-and-config ,ssl加密请参考 http://seanlook.com转载 2015-06-29 09:11:05 · 568 阅读 · 0 评论 -
TCP的三次握手/四次挥手
TCP 三次握手TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。2. 服务器收到客户端发送过来的SYN报文后转载 2014-12-12 13:46:14 · 392 阅读 · 0 评论 -
原始套接字运用
前几天看了看>第一卷,为了加深理解,便写了几个简单的程序,最近好忙,但是又怕忘记前面所学的知识,就粗糙的整理了一下,贴出来,希望能给初学者以指导,同时借助CU的论坛做个备份,呵呵.内容安排:1.原始套接字介绍 1.1 原始套接字工作原理与规则 1.2 简单应用2 FTP密码窃取器实现(简单的rootkit) 2.1 设计思路 2.2 实现 2.3 不足与改转载 2015-01-21 09:27:45 · 2880 阅读 · 1 评论 -
socket bind 解说
在最开始接触bind的时候,只是在写基于tcp的server端的时候,知道在listen之前需要先bind一下,用来确保socket能在某个固定的端口监听。而bind的时候,函数参数中的端口填自己将要绑定的端口就行;而IP地址,需要填本机的IP,但是也可以用一个宏INADDR_ANY代替,用这个宏就可以不用查找本机的IP,它就可以代替本机的IP。当时只觉得这个INADDR_ANY比较神奇,但是由于转载 2014-11-13 15:45:35 · 447 阅读 · 0 评论 -
socket阻塞与非阻塞,同步与异步
在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事转载 2014-11-13 17:00:44 · 384 阅读 · 0 评论 -
TCP粘包问题分析
这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一 .两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即转载 2014-10-30 17:35:55 · 435 阅读 · 0 评论 -
TCP无保护消息边界的解决
在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。 对于UDP转载 2014-10-30 17:49:38 · 1739 阅读 · 1 评论 -
解决TCP网络传输“粘包”问题(经典)
当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagram protocol,用户数据报协议)是无连接的,提供高效率服务。在实际工程应用中,对可靠性和效率的转载 2014-10-30 17:51:35 · 760 阅读 · 0 评论 -
网络解析2——可靠传输的实现 (滑动窗口、拥塞控制)
TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥塞控制则由控制窗口结合一系列的控制算法实现。一、滑动窗口协议 关于这部分自己不晓得怎么叙述才好,因为理解的部分更多,下面就用自己的理解来介绍下TCP的精髓:滑动窗口协议。 所谓滑动窗口协议,自己理解有两点:1. “窗口”对应的是一段可以被发送者发送的字节序列,其连续的范围称之为“窗口”;转载 2014-10-15 20:30:42 · 569 阅读 · 0 评论 -
网络解析3——数据链路层
按照TCP/IP协议由下往上的顺序,今天我们来学习一下数据链路层,数据链路层位于物理层和网络层之间,其设计的初衷就是顺利为网络层提供数据服务,不考虑可靠性,可靠性的部分由传输层的TCP协议实现。我们可以从下面的图中简单地了解一下数据链路层在网络传递中的地位,假设在通信的过程中需要通过路由器的话,那么数据的具体流动过程就像下面图中箭头的示意: 其中路由器负责路由转发,因此需要最高到转载 2014-10-18 15:14:36 · 1036 阅读 · 0 评论 -
TCP协议中的三次握手和四次挥手(转载)
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:转载 2015-01-06 13:39:05 · 390 阅读 · 0 评论 -
FTP的PORT和PASV的连接方式以及数据连接端口号计算
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。 当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了****端口,你过来连接我”。于是服务器从20端口向客户端的****端口发送连接请求,建立一条数据链路来传送数据。 PASV(被动)方式的连接过程是:客户转载 2014-12-12 13:43:03 · 12969 阅读 · 0 评论 -
Linux下 主动FTP与被动FTP-权威解释
处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。 本文也许不像题目声称的那样是一个权威解释,但我已经听到了很多好的反馈意见,也看到了本文在许多地方被引用,知道了很多人都认为它很有用。虽然我一直在找寻改进的方法,但如果你发现某个地方讲的不够清楚,需要更多的解释,请告诉转载 2014-12-12 16:03:47 · 714 阅读 · 0 评论 -
网络解析1——TCP滑动窗口机制解释1
我们可以大概看一下上图的模型:首先是AB之间三次握手建立TCP连接。在报文的交互过程中,A将自己的缓冲区大小(窗口大小)3发送给B,B同理,这样双方就知道了对端的窗口大小。A开始发送数据,A连续发送3个单位的数据,因为他知道B的缓冲区大小。在这一波数据发送完后,A就不能再发了,需等待B的确认。A发送过来的数据逐渐将缓冲区填满。这时候缓冲区中的一个报文被进程读取,缓冲区有转载 2014-10-15 19:54:22 · 804 阅读 · 0 评论