IP:网际协议
摘要:IP:网际协议1.概述 IP是TCP/IP协议族中最为核心的协议。所有的TCP,UDP,ICMP,IGMP数据都以IP数据报格式传输。 IP提供不可靠,无连接的数据报传送服务。不可靠:它不能保证IP数据报能成功的到达目的地。无连接:IP并不维护关于后续数据报的状态信息。每个数据报的处理都是相互独立的。2.IP数据报 IP数据报的格式如图所示,普通的IP数据报首部为20个字节,除非含有选项字段。版本号:目前的版本号为4,即IPv4首部长度:指的是首部占32bit字的数目,包括选项长度服务类型(TOS):(现在大多数的TCP/IP实现不支持TOS特性)4bit的TOS分别代表:最小延迟,最大...
阅读全文
TCP/IP详解学习笔记- 概述
摘要:TCP/IP详解学习笔记(1)-- 概述1.TCP/IP的分层结构 网络协议通常分不同层次进行开发,每一层分别负责不同的同信功能。TCP/IP通常被认为是一个四层协议系统。 如图所示。 1)链路层(数据链路层或网络接口层),通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。2)网络层(互联网层),处理分组在网络中的活动。3)运输层,主要负责两台主机上的应用程序提供端到端的同信。(TCP(传输控制协议)UDP(用户数据包协议)。4)应用层,主要负责处理特定的应用程序细节。大部分TCP/IP实现都会提供以下通用程序:Telnet远程登陆FTP文件传输协议SMTP简单邮件传送协议SN...
阅读全文
简单实现TCP下的大文件高效传输
摘要:简单实现TCP下的大文件高效传输在TCP下进行大文件传输不象小文件那样直接打包个BUFFER发送出去,因为文件比较大所以不可能把文件读到一个BUFFER发送出去.主要有些文件的大小可能是1G,2G或更大,分配这么大的BUFFER对内存来说显然是不现实的事情;针对服务端的设计来说就更需要严紧些,BUFFER大小的限制也是变得很重要.下面介绍使用Beetle简单地实现大文件在TCP的传输应用.协议制定既然需要把文件分块来处理,那在TCP传输的过程需要制定一些协议来规范数据有效性,数据协议主要有三个:告诉服务器需要上传文件,文件块上传和返回每个环节处理的结果.1)上传文件指令View Codepub
阅读全文
【TCP/IP】检验和算法
摘要:【TCP/IP】检验和算法在巨著《TCP/IP详解1》中有这样一句话:“ICMP,IGMP,UDP and TCP all use the same checksum algorithm”。的确,检验和算法在TCP/IP协议族中大同小异。接收方通过判断检验和是否一致,进一步判断该数据包头部传输过程中是否丢失或者被污染了。本文将以IP协议首部(见下图)为例简单介绍检验和算法: 简单地说,检验和是一个16位字段,即上图中16位首部检验和。通过设置该字段取值,将该IP首部是否完整的信息携带其中。还记得以前的信封吗,在信封背面,往往有一个红泥印,这样一来,收信人就能够通过红泥印判断信封是...
阅读全文
Socket编程(连接、发送消息)(Tcp、Udp)
摘要:Socket编程(连接、发送消息)(Tcp、Udp)本篇文章主要实现Socket在Tcp\Udp协议下相互通讯的方式。(服务器端与客户端的通讯) 1.基于Tcp协议的Socket通讯类似于B/S架构,面向连接,但不同的是服务器端可以向客户端主动推送消息。 使用Tcp协议通讯需要具备以下几个条件: (1).建立一个套接字(Socket) (2).绑定服务器端IP地址及端口号--服务器端 (3).利用Listen()方法开启监听--服务器端 (4).利用Accept()方法尝试与客户端建立一个连接--服务器端 (5).利用Connect()方法与服务器建立连接--...
阅读全文
高性能 Windows Socket 组件 HP-Socket
摘要:高性能 Windows Socket 组件 HP-Socket v2.1.1 正式发布(源代码及测试用例下载)HP-Socket 以前为某大型通信项目开发了一套通用 Windows Socket TCP 底层通信组件,组件代号为 HP-Socket。现在把 HP-Socket 的所有代码向大众公开,希望能对大家有所帮助;另外,为了让大家能更方便的学习 HP-Socket,因此精心制作了一个功能测试示例(Test Echo)和一个性能测试示例(Test Echo-PFM),大家可以通过这两个测试示例入手,迅速掌握组件的设计思想和使用方法。HP-Socket 包含服务端组件(IOCP 模型)和客.
阅读全文
TCP&UDP压力测试工具
摘要:TCP&UDP压力测试工具当你在写一个网络应用的时候,往往需要一个压力测试工具对应用基础的网络吞吐支撑能力进行一个测试;看一下服务在不同连接不同请求下的处理效能.下面就为大家介绍一个基于.net实现的网络吞吐测试工具,这个工作可以简单地测试TCP或UPC服务网络吞吐的处理效能,而使用起来也是非常方便.测试前配置工具可以对TCP和UDP进行一个压力测试,测试配置很简单只需要填写相应服务的IP地址和端口,并设置压力测试的连接数和发送相关数据即可.测试有两种方式分别是:应用答模式和间隔模式;应用答模式即是当发送请求得到服务器回应后立即发送下一次请求,而间隔模式即每隔多少时间向服务器发送一个请
阅读全文
讲故事学Socket编程
摘要:讲故事学Socket编程基础比较差,知识不够全面,Socket编程方面还是个空白页,网上关于这方面的文章不少,学习了之后,做一下笔记。关于Socket的概念等基础知识我就不想累赘了。本文只想通过跟实际的事情的类比来记忆一个很简单的Socket编码过程。好,直奔主题。话说有个呆子A君,想干这个客服,他就先搞到一个能正常通话的手机,能正常通话肯定会有电话号码。那么客服人员A君,向外公布了他的客服电话,管他是通过什么途径,总之有人知道就行了。总之这个A君就等啊等啊 等着他的电话响。花开两朵各表一枝。有个茂利B君也不知通过什么途径得到了A君的电话,于是B君掏出他的山寨手机。B君迅速拨号,嘟嘟嘟。。。。
阅读全文
TCP连接的状态与关闭方式,及其对Server与Client的影响
摘要:TCP连接的状态与关闭方式,及其对Server与Client的影响1.TCP连接的状态 首先介绍一下TCP连接建立与关闭过程中的状态。TCP连接过程是状态的转换,促使状态发生转换的因素包括用户调用、特定数据包以及超时等,具体状态如下所示:CLOSED:初始状态,表示没有任何连接。LISTEN:Server端的某个Socket正在监听来自远方的TCP端口的连接请求。SYN_SENT:发送连接请求后等待确认信息。当客户端Socket进行Connect连接时,会首先发送SYN包,随即进入SYN_SENT状态,然后等待Server端发送三次握手中的第2个包。SYN_RECEIVED:收到一个连接请求.
阅读全文
应用程序内共享 UdpClient联机
摘要:[.NET] 应用程序内共享 UdpClient联机原始码下载:MutualUdpClientSample.rar在开发与远程设备通讯的系统时,为了提高数据传输的效率,常常会选择UDP这个通讯协议来作为数据传输的媒介。而 .NET framework中所提供的UdpClient对象,可以帮助开发人员依照系统需求开启UDP套接字点,快速建立UDP联机来提供与远程设备通讯的功能。这个系统架构下当增加一个不同种类的远程设备时,必须要提供一个不同的UDP套接字点,才能用来提供与不同种类远程设备通讯的功能,在远程设备种类越来越多时,系统所需要的UDP套接字点就会依照远程设备种类而增加。在远程设备种类越来
阅读全文
ARP协议与RARP协议
摘要:《TCP/IP详解卷1》学习小结(三)------ARP协议与RARP协议一. 总述 简单的说,ARP协议就是将IP地址转换为MAC物理地址;而RARP,就是ARP的逆向,也就是将MAC物理地址转换为IP地址。看起来这两个协议是完全对称的,但发明这两个协议的初衷基本上没有什么关系。ARP协议是为了在链接层中传输的datagram只能识别MAC地址,所以只能将IP地址转换为MAC物理地址再进行传输和定向;RARP协议是为了获取无磁盘操作系统的IP地址而设计的。具有本地磁盘的系统通常是从磁盘中的配置文件中读取IP地址的,但是无盘系统无法这样操作,所以就需要将MAC地址转换成IP地址了。 再...
阅读全文
链接层
摘要:开始学习《TCP/IP详解卷1》这本著作,每一章都要写一篇学习小结。 一. 总述 链接层位于整个网络协议suite的最低一层,与硬件关系密切,比如以太网,token ring都是位于这一层。二. 我总结的3个重点 1.对于IP datagrams,有多种不同的封装方式,一般是每个frame占48个bit。对于细节我不想赘述,因为我也记不住完整的细节。SLIP,CSLIP,PPP等都是不同的封装方式,这些封装方式都各有优缺点,但总体说来都是为了便于传输。 2. (1)我觉得Link Layer这章最重要的就是MTU,即maximum transmisson unit,最大传输单元。...
阅读全文
TCP堵塞控制
摘要:协议森林12 天下为公 (TCP堵塞控制)作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!在TCP协议中,我们使用连接记录TCP两端的状态,使用编号和分段实现了TCP传输的有序,使用advertised window来实现了发送方和接收方处理能力的匹配,并使用重复发送来实现TCP传输的可靠性。我们只需要将TCP片段包装成IP包,扔到网络中就可以了。TCP协议的相关模块会帮我们处理各种可能出现的问题(比如排序,比如TCP片段丢失等等)。最初的TCP协议就是由上述的几大块构成的。然而进入上世纪八十年代,网络开始变的繁忙。许多网络中
阅读全文
TCP密集IO吞吐压力测试工具
摘要:一般在写一些网络服务应用的时候都比较关注服务在网络同时读写的能力,为了方便对这方面应用的测试所以写了这样一个测试的工具。工具的主要作用可以通过不同的连接数来对一个服务应用进行一个读写压力请求,并实时查看当前IO的读写次数和每次请求的延时情况等。为大家介绍的这个工具是第二版,相对于第一版主要引入了beetle 2.7提供更强的测试效能,在界面上也做了调整使其查看结果直观。工具应用界面功能简介工具是测试服务端的网络读写能力,主要原理先向服务端发送一个请求,服务端根据请求进行一个应答;工具在得到应答后会再次进入下一次请求,通过这样一个循还来得到一个服务端的请求应答数量;用户可以根据自己的需要设置对应
阅读全文
《UNIX网络编程 卷一:套接字联网API》
摘要:声明本笔记尽量不涉及SCTP、IPv6以及Unix平台特定的相关知识等.便于学习Winsock的读者阅读.本文去掉了所有图片,欲看完整版请到我的CSDN博客http://t.cn/zjm6I6n第一章 简介说明:相关内容请阅读本博客关于计算机网络的笔记http://t.cn/zjQDw2w,此处不再赘述.第二章 传输层:TCP和UDP用户数据包协议UDP 用UDP进行网络编程所碰到的问题是缺乏可靠性,我们也称UDP提供无连接的(connectionless)服务,因为UDP客户与服务器不必存在长期的关系.传输控制协议TCP TCP提供客户与服务器的连接.一个TCP客户建立与一个给定服务器...
阅读全文
协议森林10 魔鬼细节 (TCP滑窗管理)
摘要:协议森林10 魔鬼细节 (TCP滑窗管理)作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!在TCP协议与"流"通信中,我们建立了滑窗(sliding window)的基本概念。通过滑窗与ACK的配合,我们一方面实现了TCP传输的可靠性,另一方面也一定程度上提高了效率。其工作方式如下面的视频所示:如果视频加载有问题,可点下面链接:http://v.youku.com/v_show/id_XNDg1NDUyMDUy.html然而,之前的解释只是概念性的。TCP为了达到更好的传输效率,对上面的工作方式进行了许多改
阅读全文
以太网,IP,TCP,UDP数据包分析
摘要:1、ISO开放系统有以下几层:7应用层6表示层5会话层4传输层3网络层2数据链路层1物理层2、TCP/IP 网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。通信过程中,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。其实在链路层之
阅读全文
TCP/IP协议中的参数说明
摘要:TCP_NODELAY对于一个正常的TCP连接连说,TCP数据被封装在一个I P数据报中,客户端发送IP报文,服务器端接收IP报文。而一个IP报文的组成部分如下IP和TCP头部一共占40个字节,假设客户端比较变态,每次往服务器端写一个字节的数据,而tcp立即发送附带这一个字节IP报文,那么网络需要传输41字节,但是只有实际信息量只有1字节。以前的互联网带宽比较低,如果有大量这种信息量比率低的报文在internet上传输,会大大影响internet的效率。所以必须设计一种算法来处理这种情况,客户端可以设定一个超时时间和报文发送的阀值,在超时时间之内,tcp发送缓存里面的数据长度必须达到报文发送阀
阅读全文
TCP三次握手
摘要:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。通过这样的三次握手,客户端与服务端建立起可靠的双工的连接,开始传送数据。
阅读全文
TCP协议的一些总结
摘要:由于近期有些tcp层的分析和优化的工作,所以又重新或者说带着些疑问学习了下TCP协议。主要是翻阅了《TCP/IP详解 卷1》,所以很多都是摘自该书,也有些自己的理解,难免有些偏差。 TCP协议的一些认识及实践一、简介引用《TCP/IP详解-卷1》中的介绍,TCP与UDP使用相同的网络层(IP层),TCP却向应用层提供了与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。所谓面向连接的,是指在彼此通信前要先建立连接。同时这种点对点的连接表明了TCP不支持多播和广播。所谓可靠的,是指TCP有一堆保证数据传输准确的机制。所谓字节流,是指TCP接收端并不知道发送端每次向该连接写入了多少
阅读全文