
网络编程
文章平均质量分 89
This is bill
这个作者很懒,什么都没留下…
展开
-
TCP中的三次握手和四次挥手
一、文章来由三次握手只记得ack、ack+1这些零碎片段了~~~特此总结二、总图明显三次握手是建立连接,四次挥手是断开连接,总图如下:三、握手 (1)首先,Client端发送连接请求报文(SYN=1,seq=client_isn) (2)Server段接受连接后回复ACK报文,并为这次连接分配资源。(SYN=1,seq=client_isn,ack = client_isn+1)原创 2016-03-23 23:03:44 · 1495 阅读 · 2 评论 -
进程间通信的方法
进程间通信的方法主要有以下几种:(1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。 (2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关 系 进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。 (3原创 2016-07-07 22:11:25 · 768 阅读 · 0 评论 -
Java socket编程
一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为转载 2016-07-08 10:01:34 · 623 阅读 · 0 评论 -
Nginx搭建反向代理服务器过程详解
一、反向代理:Web服务器的“经纪人”1.1 反向代理初印象反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。从上图可以看出:反向代理服务器位于网站机房,代理网站Web服务器接收Htt转载 2016-07-09 18:57:56 · 2570 阅读 · 0 评论 -
常用协议报头
协议:顾名思义,就是双方协定好,然后按照这个协定的东西来解析和发送。TCPUDPIP原创 2016-07-14 14:39:13 · 1495 阅读 · 0 评论 -
关于网络编程中MTU、TCP、UDP优化配置的一些总结
首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层。 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Data)在应用层 它们的关系是 数据帧{IP包{TCP或UDP包{Data}}} -----------------------------------------转载 2016-07-20 09:44:51 · 1779 阅读 · 0 评论 -
什么是 MTU, 什么是 MSS
MTU 到底是怎么来的MTU, 是 Maximum Transmission Unit 的缩写, 根据 Wikipedia 的定义, MTU 指的是在 Network Layer (因处 OSI 第三层, 后以 L3 代替)上传输的最大数据报单元, 而 MTU 的大小一般由 Link Layer (因处 OSI 第二层, 后以 L2 代替) 设备决定. 比如生活中使用最广泛的以太网转载 2016-07-20 10:18:02 · 5340 阅读 · 0 评论 -
Netty精粹之TCP粘包拆包问题
转自:http://my.oschina.net/andylucc/blog/625315摘要粘包拆包问题是处于网络比较底层的问题,在数据链路层、网络层以及传输层都有可能发生。我们日常的网络应用开发大都在传输层进行,由于UDP有消息保护边界,不会发生这个问题,因此这篇文章只讨论发生在传输层的TCP粘包拆包问题。粘包拆包问题是处于网络比较底层的问题,在数据链路层、网络层以及传转载 2016-07-20 10:42:14 · 957 阅读 · 0 评论 -
java基于TCP的socket数据包拆分方法
最近在做socket传送,遇到丢包的问题,困扰了好久,看到了这篇文章,原文地址:http://suwish.com/html/java-tcp-socket-stream-packet-split.html 好了,现在轻松许多。话说看到falcom官方的《空轨》动画时间表,又看到崩坏的人设,我表示真的非常不能接受。当然了这个咱也管不着。 好了话归正题,前不久转载 2016-07-20 13:03:17 · 12702 阅读 · 0 评论 -
封包和拆包
对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了.一.为什么基于TCP的通讯程序需要进行封包和拆包.TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,转载 2016-07-20 13:11:46 · 1366 阅读 · 0 评论 -
TCP流量控制中的滑动窗口大小、TCP字段中16位窗口大小、MTU、MSS、缓存区大小有什么关系
转自:https://www.zhihu.com/question/48454744本文将涉及到IP、TCP、Socket缠绵悱恻的爱情故事,如果您依然相信爱情,请耐心地看下去…MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是IP层)最大一次传输数据的大小;以普遍使用的以太网接口为例,缺省MTU=150转载 2016-07-20 13:50:39 · 21362 阅读 · 3 评论 -
车小胖谈网络:MTU 与 MSS
作者:车小胖链接:https://zhuanlan.zhihu.com/p/21268782来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层最大一次传输数据的大小,比如IP层、MPLS层等等,因为目前应用最多的接口是以太网,所以谈谈以太网口的MT转载 2016-07-20 13:52:26 · 4849 阅读 · 0 评论 -
谢希仁版TCP/IP学习笔记
一、TCP面向流的概念二、TCP每次发送的报文段长度不固定TCP根据对方给出的窗口值,和当前网络拥塞的程度来决定一个报文段应包含多少个字节。三、关于网络分组名称叫法(IP数据报+TCP报文段)这个概念一直很混,这里说明了四、为什么TCP一次只能确认4G数据首先要说明的是,TCP滑动窗口是以字节为单位的五、MSS概念最大报文段长度,谢希仁版p195。 每一个TCP报文段中数据部分的最大长度。六、原创 2016-07-20 15:02:55 · 1750 阅读 · 0 评论 -
Java中BIO,NIO和AIO使用样例
转自:http://blog.insanecoder.top/javazhong-bio-niohe-aioshi-yong-yang-li/上文中分析了阻塞,非阻塞,同步和异步概念上的区别以及各种IO模型的操作流程,本篇文章将主要介绍Java中BIO,NIO和AIO三种IO模型如何使用。需要注意的是,本文中所提到的所有样例都是在一个server对应一个client的情况下工作的,如果你想转载 2016-07-21 12:58:49 · 3409 阅读 · 0 评论 -
AIO与BIO接口性能对比
Servlet 3.0标准新增了诸多特性,异步处理支持是令开发者最为关注的一个特性。本文就将详细对比传统的Servlet与异步Servlet在开发以及性能上的差别,分析异步Servlet为何会提升Java Web应用的性能。在进行性能分析前,先简单介绍什么是同步异步、什么是阻塞非阻塞,以及AIO、NIO、BIO的概念。基础知识1 什么是同步与异步、阻塞与非阻塞同步:自己转载 2016-07-21 16:28:00 · 6170 阅读 · 0 评论 -
BIO | NIO | AIO释疑
关于BIO | NIO | AIO的讨论一直存在,有时候也很容易让人混淆,就我的理解,给出一个解释:BIO | NIO | AIO,本身的描述都是在Java语言的基础上的。而描述IO,我们需要从三个层面:1.编程语言2.实现原理3.底层基础从编程语言层面BIO | NIO | AIO 以Java的角度,理解如下:BIO,同步阻塞式IO,简单理解:一个转载 2016-07-21 16:31:17 · 827 阅读 · 0 评论 -
《TCP/IP卷》读书笔记
本书所有测试网络例子1、TCP/IP的分层在图1 - 2的右边,我们注意到应用程序通常是一个用户进程,而下三层则一般在(操作系 统)内核中执行。尽管这不是必需的,但通常都是这样处理的,例如 U N I X操作系统。在图1 - 2中,顶层与下三层之间还有另一个关键的不同之处。应用层关心的是应用程序的 细节,而不是数据在网络中的传输活动。下三层对应用程序一无所知,但它们要处理所有的 通信细节。2、原创 2016-07-22 10:38:16 · 2643 阅读 · 1 评论 -
Linux下socket编程实现客户机服务器通信的例子
经典的在同一台主机上两个进程或线程之间的通信通过以下三种方法管道通信(Pipes)消息队列(Message queues)共享内存通信(Shared memory)这里有许多其他的方法,但是上面三中是非常经典的进程间通信。但是你有曾想过怎样跨越两台主机进行通信呢?例如,当你浏览一个网站时,在你的主机上,运行的是你的浏览器,而在远程的系统上,运行的是网络服务器。因此这转载 2016-07-07 21:48:29 · 2141 阅读 · 0 评论 -
IO设计模式:Reactor和Proactor对比
看到好文就是忍不住想转~~~平时接触的开源产品如Redis、ACE,事件模型都使用的Reactor模式;而同样做事件处理的Proactor,由于操作系统的原因,相关的开源产品也少;这里学习下其模型结构,重点对比下两者的异同点;反应器ReactorReactor模式结构Reactor包含如下角色:Handle 句柄;用来标识socket连接转载 2016-06-21 11:16:50 · 817 阅读 · 0 评论 -
SQL注入原理
原文地址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html1.1.1 摘要日前,国内最大的程序员社区优快云网站的用户数据库被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。网络安全转载 2016-06-30 14:12:10 · 1148 阅读 · 0 评论 -
循环冗余校验检错方案(CRC)
循环冗余校验检错方案(CRC)1、crc校验原理crc校验的根本思想就是在要发送的帧后面附加一个二进制序列,生成一个新帧发送给接收端。当然,这个附加的数不是随意的,它要使生成的新帧能与发送端和接收端共同选定的某个特定数整除,需要注意的是,这里不是采用的二进制除法,而是采用“模2除法”。到达接收端后,再把接收到的新帧除以(模2除)这个选定的除数。因为在发送端已经通过附加一个数转载 2016-07-23 15:08:05 · 2403 阅读 · 0 评论 -
wireshark捕获/过滤指定ip地址数据包
使用捕获过滤或显示过滤,wireshark可以仅捕获/显示经过指定ip的数据包,即某个ip收到或发出的所有数据包。wireshark捕获/显示过滤使用方法见:“wireshark过滤器”显示过滤:wireshark过滤经过指定ip的数据包显示过滤可以完整的复现测试时的网络环境,但会产生较大的捕获文件和内存占用。ip.addr ==192.168.1.1 //显示所有目标或源转载 2016-07-23 15:50:30 · 1423 阅读 · 0 评论 -
黑客攻防之可疑文件还原【一】
在一般的攻防对抗中,常常会遇到机器上被放了后门的情况,但这些文件一般是经过处理的,无法直接看出问题所在,这样增加了入侵检测的难度,下面我把入侵检测中真实遇到的例子,结合我之前的一些经验分享给大家,希望大家能对入侵检测有些新的认识,文中的不当之处,也希望大家能联系我纠正,谢谢! 假设我们检测到了机器10.125.7.191有异常,下面需要对异常进行确认,并找到攻击者是如何利用漏洞的。转载 2016-07-23 17:00:42 · 919 阅读 · 0 评论 -
黑客攻防之可疑文件还原【二】
在上一篇文章中,我们已经取得了两个文件.a和.b,这次我们来解开.a这个pyc文件。需要用到的工具是Easy Python Decompile 由于它只识别.pyc和.pyo类型的文件,我们把.a修改为a.pyc,并进行反编译: 此时情况还不太明朗,我们还需要把b.c文件的内容还原出来,还原的方法是不执行反编译的最后两行,只是生成b.c文件,文件内容如下:转载 2016-07-23 17:01:52 · 1172 阅读 · 0 评论 -
POD
对于Windows下ping指令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。 现在我就参照ping指令的辅助说明来给大家讲我使用ping时会用到的技巧,ping只有在安装了TCP/IP通讯协定以后才可以使用: ping [-t] [-a]转载 2016-07-24 14:42:56 · 909 阅读 · 0 评论 -
TTL & OS
Device / OS Version Protocol TTL AIX TCP 60 AIX UDP 30 AIX 3.2, 4.1 ICMP 255 BSDI BSD/OS 3.1 and 4.0 ICMP 255 Compa Tru64 v5.0 ICMP 64 Cisco ICMP 254 DEC P原创 2016-07-24 14:55:48 · 1014 阅读 · 0 评论 -
Socket编程
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型转载 2016-07-13 17:28:55 · 943 阅读 · 0 评论 -
简易的epoll讲解--转自”知乎“
首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据,但是服务转载 2016-07-13 17:34:28 · 665 阅读 · 0 评论 -
Java之socket
简单的socket实现://///SocketClient.javapackage socket;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;/** * Created by hupo.wh on 2016/7/14. */public class SocketClient {原创 2016-07-14 13:04:12 · 687 阅读 · 0 评论 -
TCP的流量控制
1. 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端接收方发送的确认信息中包含了自己剩余的缓冲区尺寸剩余缓冲区空间的数量叫做窗口2. TCP的流控过程(滑动窗口)2. TCP 与UDP的区别 很多文章都说TCP转载 2016-07-14 14:05:48 · 2269 阅读 · 0 评论 -
【TCP/IP】检验和算法
在巨著《TCP/IP详解1》中有这样一句话:“ICMP,IGMP,UDP and TCP all use the same checksum algorithm”。的确,检验和算法在TCP/IP协议族中大同小异。其过程大致都是:接收方通过判断检验和是否一致,进一步判断该数据包头部传输过程中是否丢失或者被污染了。本文将以IP协议首部(见下图)为例简单介绍检验和算法:转载 2016-07-25 17:00:52 · 2526 阅读 · 0 评论 -
TCP协议
首部格式图释:各个段位说明:源端口和目的端口: 各占 2 字节.端口是传输层与应用层的服务接口.传输层的复用和分用功能都要通过端口才能实现序号: 占 4 字节.TCP 连接中传送的数据流中的每一个字节都编上一个序号.序号字段的值则指的是本报文段所发送的数据的第一个字节的序号确认号: 占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号数据偏移/首转载 2016-07-14 15:54:26 · 684 阅读 · 0 评论 -
同步VS异步 阻塞VS非阻塞
一、问题来由一个纯概念性问题,但是很常见,纠结N久,觉得需要写一篇文章来说一下。二、概念在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步?同步和异步是针对应用程序和内核的交互而言的 同步:指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 异步:是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知(原创 2016-07-14 14:56:04 · 859 阅读 · 0 评论 -
Java NIO Selector
转自:http://ifeve.com/selectors/Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。下面是本文所涉及到的主题列表:为什么使用Selector?Selector的创建向Selector注册通道Selection转载 2016-07-16 15:16:24 · 671 阅读 · 0 评论 -
TCP为什么要三次握手而结束要四次
举个打电话的例子: A : 你好我是A,你听得到我在说话吗 B : 听到了,我是B,你听到我在说话吗 A : 嗯,听到了 建立连接,开始聊天!简单而言:如果不是三次握手的话,那么到底需要几次握手最佳呢?2次握手,或者4次以上的握手?先看2次握手的情况:客户端给服务器发送建立连接的请求,服务器原创 2016-07-16 19:58:15 · 5608 阅读 · 2 评论 -
公钥私钥加解密原理
一、文章来由网络安全课花了不少篇幅讲解非对称加密技术,做一个整理。二、基本概念 公开密钥加密,也称为非对称加密(asymmetric cryptography)。在這種密碼學方法中,需要一對金鑰,一個是私人金鑰,另一個則是公開金鑰。这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危原创 2016-09-26 23:29:00 · 4823 阅读 · 0 评论