
tcp/socket/网络编程
文章平均质量分 74
fengqiaojiangshui
这个作者很懒,什么都没留下…
展开
-
完成端口(Completion Port)详解
完成端口(Completion Port)详解 ----- By PiggyXP(小猪)前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,转载 2015-03-07 21:34:29 · 479 阅读 · 0 评论 -
TCP协议中的三次握手和四次挥手(图解)
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。【更新于2017.01.04 】该部分内容配图有误,请大家见谅,正确的配图如下,错误配图也不删了,大家可以比较下,对比理解效果更好。这么久才来更新,抱歉!!错误配图如下:首先Client端发送连接请求报文,Server转载 2017-04-07 16:10:52 · 302 阅读 · 0 评论 -
大端小端(Big- Endian和Little-Endian)
在各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致通信失败。目前在各种体系的计算机中通常采用的字节存储机制主要有两种:Big-Endian和Little-Endian,下面先 从字节序说起。转载 2012-11-06 10:41:32 · 335 阅读 · 0 评论 -
TCP中的TIME_WAIT状态详解
linux和windows下TIME_WAIT过多的解决办法如果使用了nginx代理,那么系统TIME_WAIT的数量会变得比较多,这是由于nginx代理使用了短连接的方式和后端交互的原因,使得nginx和后端的ESTABLISHED变得很少而TIME_WAIT很多。这不但发生在安装nginx的代理服务器上,而且也会使后端的app服务器上有大量的TIME_WAIT。查阅TIME_WAIT资料,转载 2015-05-06 20:35:10 · 2791 阅读 · 0 评论 -
TCP的拥塞控制策略
一、TCP基于窗口的拥塞控制策略1.1 加法增加乘法减少(AIMD)窗口算法 TCP是Internet中最流行的端到端传输协议,为主机之间提供可靠按序的传输服务。在现有的TCP/IP协议体系下,TCP拥塞控制机制主要基于加法增加乘法减少(AIMD)算法。在该算法中主要用到三个窗口变量: (1)拥塞窗口(cwnd):限定源端在拥塞控制中在一定时间内允许传送的最大数据量,是来自原创 2015-04-21 21:46:17 · 9010 阅读 · 1 评论 -
Linux Socket编程(不限Linux)
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型转载 2012-11-06 10:46:37 · 440 阅读 · 0 评论 -
TCP长连接与短连接的区别
1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模原创 2015-04-20 21:32:31 · 371 阅读 · 0 评论 -
TCP/UDP与connect系统调用
一、TCP与UDP区别 TCP保证数据正确性,UDP可能丢包;TCP保证数据顺序,UDP不保证。 TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP---用户数原创 2015-04-28 20:53:27 · 1034 阅读 · 0 评论 -
TCP的流量控制和拥塞控制
TCP的流量控制1. 利用滑动窗口实现流量控制 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。 设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(这里原创 2015-05-10 21:43:01 · 493 阅读 · 0 评论 -
traceroute的一些用法
traceroute 跟踪数据包到达网络主机所经过的路由工具;traceroute 是用来发出数据包的主机到目标主机之间所经过的网关的工具。traceroute 的原理是试图以最小的TTL发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关ICMP的应答。发送数据包的大小默认为 38个字节。traceroute [参数选项] hostname,域名或 IP地址参原创 2015-05-10 22:03:34 · 896 阅读 · 0 评论 -
TCP中的定时器
1.连接建立(connection establishment)”定时器 在发送SYN报文段建立一条新连接时启动。如果在75秒内没有收到响应,连接建立将中止。2.“重传(retransmission)”定时器 在TCP发送某个数据段时设定。如果该定时器超时而对端的确认还未到达,TCP将重传该数据段。重传定时器的值 (即TCP等待对端确认的原创 2015-05-10 21:46:07 · 274 阅读 · 0 评论 -
traceroute
原理 程序利用增加存活时间(TTL)值来实现其功能的。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者。 程序发出的首3个数据包TTL值是1,之后3个是2,如此类推,它便得到一连串数据包路径。注意IP不保证每个数据包走的路径都一样。定义 详细解释 Internet,即国际互联网,是目前世界上最大的计算机网络原创 2015-05-10 22:11:06 · 555 阅读 · 0 评论 -
traceroute工作原理
traceroute, 也就是 trace route,跟踪路由。这个程序最早是Van Jacobson实现的。源码在网上可以找到,不过我还没有去找。主要的原理是IP路由过程中对数据包TTL(Time to Live,存活时间)的处理。当路由器收到一个IP包时,会修改IP包的TTL(及由此造成的头部检验和checksum变化)。每收到一个包,检查这个 的TTL是否是0或1。如果是,表明这个包还原创 2015-05-10 21:56:28 · 844 阅读 · 0 评论 -
浅析TCP字节流与UDP数据报的区别
“TCP是一种流模式的协议,UDP是一种数据报模式的协议”,这句话相信大家对这句话已经耳熟能详~但是,“流模式”与“数据包模式”在编程的时候有什么区别呢?以下是我的理解,仅供参考!1、TCP打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。上面的例子中,往水池里倒原创 2017-04-07 16:37:08 · 349 阅读 · 0 评论