客户端机器从单一服务器使用 HTTP 下载一个文件: 1. 单连接下载,速度没有达到客户端网络的最大带宽; 2. 多连接同时下载,传输速度有极大的提高,带宽被占满。假设如下前提: 1. 服务器是单一的,没有使用提供相同文…
标签:TCP
TCP/UDP HTTP 考察点
最近面试总被问到网络的知识,在这里把我觉得要记录的总结下来。 TCP/UDP 首先 网络层次模型图如下 TCP/UDP协议是传输层协议,主要解决数据如何在网络中传输,而http是应用层协议,主要解决如何包装数据. TCP…
nginx做tcp代理服务器
虽然做一个tcp代理也不是什么难事,不过如果直接拿来就可以用,也是一个不错的选择。nginx自1.9版本以后,就支持了tcp代理了,配置很简单,修改nginx.conf里的配置,增加 stream { upstream …
DNS域名解析使用的是TCP协议还是UDP协议?
DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类。但很少有人知道DNS分别在什么情况下使用这两种协议。 先简单介绍下TCP与UDP。 TCP是一种面向连…
移动端IM系统的协议选型:UDP还是TCP?
1、前言 对于有过网络编程经验的开发者来说,使用何种数据传输层协议来实现数据的通信,是个非常基础的问题,它涉及到你的第一行代码该如何编写。 从PC时代的IM开始,IM开发者就在为数据传输协议的选型争论不休(比如:《为什么…
使用 libev 构建 TCP 响应服务器(echo server)的简单流程
请注意这是 libev 而不是 libevent 的文章!这篇文章主要是使用具体的例子,说明如何使用 libev。网上不少文章都是照抄示例,一点用都没有……本文将示例的代码精简一下,补上说明;大家都懂的部分就不赘述了。需…
TCP三次握手四次挥手
前言 昨天腾讯笔试考了四次握手的状态名词,虽然对过程有所了解,但是没有总结其中的状态变化,系统的复习下 三次握手 所谓三次握手(Three-way Handshake),是指建立一个 TCP 连接时,需要客户端和服务器总…
Libevent实现TCP服务循环监听
目标 建立一个简单的tcp服务,可持续的监听客户端的连接和请求 细节 libevent stream socket EV_READ | EV_PERSIST 代码 要义libevent对stream_socket_ser…
EasyProxy,简单易用的tcp代理
EasyProxy,简单易用的tcp代理 最近工作中遇到了golang的项目,稍稍对其产生了点兴趣,打算认真学习下,正巧在搭建mysql主备环境的时候发现如果用一个代理程序的话自己测试会方便很多(主要还是为了造轮子),于…
理解 TCP(二):报文结构
更好阅读体验:《理解 TCP 和 UDP》— By Gitbook TCP 是面向字节流的,但传送的数据单元却是报文段。 什么是报文? 例如一个 100kb 的 HTML 文档需要传送到另外一台计算机,并不会整个文档直接…
Linux下Socket通信(TCP实现)
近期在做的项目中,涉及到了进程间数据传输,系统的原本实现是通过管道,但是原有的实现中两个进程是在同一台机器,而且两个进程的关系为父子关系,而我们要做的是将其中一个进程移植到服务器上,因此两个进程要分开,所以管道必然是不可…
TCP的三次握手以及重置(Reset)
在最近的工作中需要对同一个域名下的源站同时发起多次请求,有时甚至达到了6000次,发生了很严重的性能问题,追查了下原因是被浏览器(Chrome)stalled了,因为浏览器只支持对同一个域名下保持6个连接,拥有更多连接时…