导读:最近看完了大部头著作《HTTP权威指南》,对于此类指南类、手册类图书,往往让我们联想到的就是枯燥无味的使用讲解、技术指标讲解......使人头大。但是这本书却让我觉得读起来很“清新”,一方面作者用了浅显易懂的语言和大量的图示让我们很容易知所以然,另一方面应该是我一直以来对网络编程的兴趣和此书的内容有很大的契合点,今天要讲的内容也是与自己的兴趣有关的HTTP协议中有关TCP的部分,是从书中第四
(注:本文所讲的网络协议只针对TCP协议)背景:开发一个C/S的应用势必需要服务端和客户端的适配,包括网络协议、数据传输格式、业务处理的适配。由于服务端承载着大量的客户端,需要高并发、高性能、高可靠性,在我们的认知里往往认为服务端的网络模型和架构设计很复杂。但是客户端嘛,无非就是建立网络连接,发个请求收个回复如此简单。所以在工作中经常会出现有些客户端处理界面和业务的同事对平台开发者说,你做好服务端
将近两年以前因为想选择一个兼顾TCP协议的可靠性和UDP协议的高效性来进行我们某种数据的传输曾经选择过UDT协议,也进行了一段时间的学习、实践。但最终由于不适合我们的业务场景放弃了它,但它的实现原理、代码实现、拓展使用的优秀给我留下了很深刻的印象,今天翻出自己曾经的一篇总结笔记来和大家一起回顾下UDT协议。UDT协议是什么?是一种基于UDP的数据传输协议(UDP-based Data Transf
《网络编程释疑之:TCP半开连接的处理》这篇文章主要讲述了网络异常的出现、以及如何在服务端解决存在的网络异常。同时,客户端能否及时检测到自身的网络异常(比如网络禁用,网线断开......)也同样影响着客户端的正常逻辑,下面我就通过自己的实验和实践来给大家说明下。场景是这样的,客户端和服务端建立起一个长连接,并且通过一个心跳来维持上线状态、同时也为了解决上面所说的TCP半开连接问题。客户端在自身出现
与网络开发相关的招聘时最常被问起的问题是TCP和UDP的区别,现在几乎是道上混的都能答出来几点“比如TCP是面向连接的,UDP是无连接的;TCP是可靠的,UDP是不可靠的;”,其中还有一点是“TCP是面向数据流的协议,UDP是面向数据报的协议”,接下来我通常就会问这么一个问题,假设客户端一次完全发送这么一串字符str = "hello world!"到服务端,在服务端一次read,并且read长度
在进行TCP高并发服务器开发时,有些规则仿佛是约定俗成的,很多朋友会依据这些规则去做,比如高并发TCP服务器中进行主动关闭的一方最好是客户端、服务器端程序最好启用SO_REUSEADDR选项,但是很多人却不知所以然,我们为什么要这么做呢?先上图可以看到执行主动关闭端和被动关闭端的各个阶段的状态,今天咱的重点就是TIME_WAIT状态,可以看出TIME_WAIT状态是执行主动关闭的那一端产生的。TI
这是知乎上被邀请的一个问题TCP/IP协议栈中,为什么选择IP层负责分片?,我从没思考过这个问题甚至不认为这是个有意义的问题,但是当我研究思考后却发现这么一个小问题也许正是当初设计TCP/IP协议栈时的一种考量。TCP/IP是一个分层协议,协议栈的最底层是链路层,接下来依次是网络层,传输层,应用层。可以看见链接层负责建立电路连接,是整个网络的物理基础;网络层负责分配地址和传送二进制数据,主要协议是
曾几何时我们还在寻求网络编程中C10K问题的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经没有多少挑战性了。我们先假设单台服务器最多只能支持万级并发连接,其实对绝大多数应用来说已经远远足够了,但是对于一些拥有很大用户基数的互联网公司,往往面临的并发连接数是百万,千万,甚至腾讯的上亿(注:QQ默认用的UDP协议)。虽然现在的集群,分布式技术可以为我们将并发负载分担在多台服务
熟悉基于TCP协议进行linux高性能、高并发服务端编程的朋友肯定应该知道每个文件描述符及其所占的资源对并发量的影响。在这种7*24甚至*365不间断运行的服务器上,一个描述符被浪费,两个被浪费...如果被浪费的多了,那还何谈高并发,高性能。除去文件描述被正常占用的情况外,是什么导致了我们可用的文件描述符越来越少呢?什么是半开连接?当客户端与服务器建立起正常的TCP连接后,如果客户主机掉线(网线断
一讲到网络编程的I/O模型,总会涉及到这几个概念。问了很多人,没几个能清晰地讲出他们之间的区别联系,甚至在网络上也有很多不同的观点,也不知是中国文字释义的博大精深,还是本来这几个概念就是绕人不倦。今天我也来给大家讲解一下我对这几个概念的理解。既然网络上众说纷纭,不如找个权威参考一下,这个权威就是《UNIX网络编程:卷一》第六章——I/O复用。书中向我们提及了5种类UNIX下可用的I/O模型:阻塞式
我昨天在OSChina济南社区技术沙龙上分享的话题《网络开发那些事》,话题涵盖:协议分析、高性能网络编程、NAT穿透、p2p流媒体传输..., 随便截几张PPT,感兴趣的朋友可以下载完整版:)
首先给大家推荐下Markdown,我想用过github的同僚一定很熟悉了,这篇文章的排版就是使用的markdown,以后我们不必再去适应各个博客系统自己繁杂的排版方式了。网络编程是什么?给大家从招聘信息上截取几段内容:熟悉Socket编程,熟悉Tcp/Ip协议栈;熟悉TCP/IP协议、UDP协议,有相关的协议开发经验;熟悉网络编程/多线程编程技术;大家应该很清晰了吧,关键词就是TCP/IP,Soc
花了两天的时间在libevent上,想总结下,就以写简单tutorial的方式吧,貌似没有一篇简单的说明,让人马上就能上手用的。 首先给出官方文档吧: http://libevent.org ,首页有个Programming with Libevent,里面是一节一节的介绍libevent,但是感觉信息量太大了,而且还是英文的-。-(当然,如果
对于客户端和服务端的数据传输通常会有以下几点考虑:1.网络数据大小——占用带宽,传输效率:虽然对单个用户来说,数据量传输很小,但是对于服务器端要承受众多的高并发数据传输,必须要考虑到数据占用带宽,尽量不要有冗余数据,这样才能够少占用带宽,少占用资源,少网络IO,提高传输效率;2.网络数据安全性——敏感数据的网络安全:对于相关业务的部分数据传输都是敏感数据,所以必须考虑对部分传输数据进行加密;3.编
本备忘录的状态 本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化程度和状态。本备忘录的发布不受任何限制。版权声明 Copyright (C) The Internet Society (2001).摘要: 这篇文档定义了TCP的四种相互交织
对于《TCP/IP详解:卷1》这本书来说也算是我的老朋友了,在之前做协议分析项目时曾经系统的看过,在之后开发网络库,做入侵检测时也时常翻阅,但是对书中内容的记忆却比较混乱,也常常忘记一些重要内容,也许是之前自己未作总结的缘故,这次利用做另一个网络项目的机会,又仔细看了一下书中有关TCP/UDP的章节,然后用思维导图梳理了协议的特点和自己的思路,以用来加深记忆
网络编程常见问题总结 串讲(一) 网络编程常见问题总结 6 I& I! E- x8 Z+ p- U- B 在网络程序中遇到的一些问题进行了总结, 这里主要针对的是我们常用的TCP socket相关的总结, 可能会存在错误, 有任何问题欢迎大家提出. . e3 Y0 @* _- e1 G- B% R &nb
(本文针对的是windows,linux下基于c++语言的网络编程) 我从事的是企业级的软件开发,纵观当今的企业级软件,单机模型已经越来越少,更多的是C/S模型,目前client和server之间通信是通过socket技术来实现的。 上面提到了socket
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号