随笔分类 -  windows网络

摘要:http://blog.csdn.net/yujun00/article/details/636495 ARQ与滑动窗口概念 滑动窗口协议,是TCP使用的一种流量控制方法。该协议允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输 阅读全文
posted @ 2018-08-20 20:34 Curo 阅读(3136) 评论(0) 推荐(0)
摘要:什么是三次握手 学过网络编程的人,应该都知道TCP建立连接的三次握手,下面简单描述一下这个过程。 如图所示 第一次握手:客户端发送TCP包,置SYN标志位为1,将初始序号X,保存在包头的序列号(Seq)里。 第二次握手:服务端回应确认包,置SYN标志位为1,置ACK为X+1,将初始序列号Y,保存在包 阅读全文
posted @ 2018-08-20 14:27 Curo 阅读(2180) 评论(0) 推荐(2)
摘要:如何保证可靠性? 1.校验和。在TCP的首部中有一个占据16为的空间用来放置校验和的结果。 这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段 和不确认收到此报文段(希望发端超时并重发)。 (校验出包有错,丢弃报文段,不给出响应,TCP发送 阅读全文
posted @ 2018-03-28 23:55 Curo 阅读(1206) 评论(0) 推荐(0)
摘要:本文转载于https://www.cnblogs.com/ranyonsue/p/5984001.html HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览 阅读全文
posted @ 2018-03-25 18:10 Curo 阅读(301) 评论(0) 推荐(0)
摘要:看到一个很有意思的解释: 老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。 这和Socket模型非常类似。下面我就以老陈接收信件为例讲解SocketI/O模型。select模型: 老陈非常想看到女儿的信。以至于他每隔10分钟就下楼检查信箱,看是否 阅读全文
posted @ 2018-02-25 16:57 Curo 阅读(2478) 评论(0) 推荐(0)
摘要:本文整理于:http://blog.csdn.net/piggyxp/article/details/6922277 一. 完成端口的优点 完成端口会充分利用Windows内核来进行I/O的调度,是用于C/S通信模式中性能最好的网络通信模型,没有之一;甚至连和它性能接近的通信模型都没有。 微软提出完 阅读全文
posted @ 2018-02-23 20:37 Curo 阅读(690) 评论(0) 推荐(0)
摘要:异步选择模型类似的是,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知。对于异步选择模型采用的网络事件来说,它们均可原封不动地移植到事件选择模型。事件选择模型和异步选择模型最主要的差别在于网络事件会投递至一个事件对象,而非投递至一个窗口。 首先,初始化网络环境,创建一个监听的so 阅读全文
posted @ 2018-02-23 19:06 Curo 阅读(742) 评论(0) 推荐(0)
摘要:异步选择(WSAAsyncSelect)模型是一个有用的异步I/O 模型。其核心函数是WSAAsyncSelect,该函数是非阻塞的 (关于异步io的理解详情可以看:http://www.cnblogs.com/curo0119/p/8461520.html) 它可以用来在一个socket上接收以w 阅读全文
posted @ 2018-02-23 18:51 Curo 阅读(1013) 评论(0) 推荐(0)
摘要:服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型。 (2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非J 阅读全文
posted @ 2018-02-23 12:47 Curo 阅读(1816) 评论(0) 推荐(0)
摘要:1.选择(select)模型:选择模型:通过一个fd_set集合管理套接字,在满足套接字需求后,通知套接字。让套接字进行工作。 选择模型的核心是FD_SET集合和select函数。通过该函数,我们可以们判断套接字上是否存在数据,或者能否向一个套接字写入数据。 用途:如果我们想接受多个SOCKET的数 阅读全文
posted @ 2018-02-22 20:03 Curo 阅读(14699) 评论(0) 推荐(2)
摘要:一般情况下:send(),recv()用于TCP,sendto()及recvfrom()用于UDP 但是send(),recv()也可以用于UDP,sendto()及recvfrom()也可以用于TCP send函数 int send( SOCKET s, const char FAR *buf, 阅读全文
posted @ 2018-02-20 17:43 Curo 阅读(887) 评论(0) 推荐(0)
摘要:ffffdsfsfffs 阅读全文
posted @ 2018-02-01 14:28 Curo 阅读(263) 评论(0) 推荐(0)
摘要:在使用一些协议通讯的时候,比如Telnet,会有一个字节字节的发送的情景,每次发送一个字节的有用数据,就会产生41个字节长的分组,20个字节的IP Header 和 20个字节的TCP Header,这就导致了1个字节的有用信息要浪费掉40个字节的头部信息,这是一笔巨大的字节开销,而且这种Small 阅读全文
posted @ 2018-01-31 15:46 Curo 阅读(588) 评论(0) 推荐(0)
摘要:对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包。 为什么基于TCP的通讯程序需要进行封包和拆包 TCP是个"流"协议,所谓流,就是没有界限的一串数据,大家可以想想河里的流水,是连成一片的,其间是没有分界线的。但一般通讯程序开发是需要定义一个个相互独立的数据包的,比如用于登陆的 阅读全文
posted @ 2018-01-31 15:28 Curo 阅读(1107) 评论(0) 推荐(0)
摘要:一 .基本概念: 什么是粘包 TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。 长连接与短连接 1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。 2.短连接 Client方与Ser 阅读全文
posted @ 2018-01-31 10:33 Curo 阅读(322) 评论(0) 推荐(0)
摘要:发送端(客户端) 接收端(服务器) 阅读全文
posted @ 2018-01-29 16:39 Curo 阅读(727) 评论(0) 推荐(0)
摘要:一、C++文件中的路径 文件路径中的正斜杠和反斜杠 正斜杠,又称左斜杠,符号是"/"; 反斜杠,也称右斜杠,符号是"\"。 文件路径的表示可以分为绝对路径和相对路径: 1、 绝对路径 绝对路径表示相对容易, 例如要打开“C: \Documents andSettings\All Users\My D 阅读全文
posted @ 2018-01-29 10:03 Curo 阅读(4233) 评论(0) 推荐(1)
摘要:基础知识解读 TCP是TCP/IP协议族中非常复杂的一个协议。它具有以下特点: 1:面向连接的运输层协议。在使用TCP协议之前,首先需要建立TCP连接。传送数据完毕后,必须释放已经建立的TCP连接。 2:一条TCP连接有两个端点,连接是点对点的。 3:提供可靠交付的服务。通过TCP连接传送的数据,不 阅读全文
posted @ 2018-01-28 20:50 Curo 阅读(517) 评论(0) 推荐(0)
摘要:TCP建立连接三次握手和释放连接四次握手 本文转载于:http://blog.csdn.net/guyuealian/article/details/52535294 在谈及TCP建立连接和释放连接过程,先来简单认识一下TCP报文段首部格式的的几个名词(这里只是简单说明,具体请查看相关教程) 实际上 阅读全文
posted @ 2018-01-28 19:47 Curo 阅读(192) 评论(0) 推荐(0)
摘要:为了更容易理解,我们举一个小例子来说明服务器与客户端之间的连接过程。 有一个饭店,饭店里有服务员,服务员用于招待客人 特别要注意的是:要记住相关函数的各个参数都是什么,什么时候返回SOCKET_ERROR,什么时候返回INVALID_SOCKET 服务器 客户端 阅读全文
posted @ 2018-01-28 16:21 Curo 阅读(439) 评论(0) 推荐(0)