随笔分类 -  网络编程

摘要:一、现象 在一次访问请求nginx中,通常只需要几毫秒的RT,但当请求数据达到某一个数值时,rt明显提高,甚至超过了300毫秒。 二、问题的原因 大家都知道,TCP为了提高带宽利用率和吞吐量,做了各种优化。比如delay ack和Nagle算法。就是这样的一些优化使用不慎,导致陷入性能问题。接下来就 阅读全文
posted @ 2017-06-02 21:51 永志 阅读(2367) 评论(4) 推荐(1) 编辑
摘要:叙述 想必或多或少在Java的服务器都会遇到过这种异常,如下图 由于Java偏上层,日常开发接触系统底层的机会偏少,要搞清楚什么原因导致的这种异常,肯定是先要百度google一番。 网络解释云里雾里 百度+google下,巴拉巴拉还真不少介绍这个错误的文章。欣喜地翻了一篇又一篇,但好像我依旧不明白具 阅读全文
posted @ 2017-03-17 13:05 永志 阅读(179990) 评论(9) 推荐(28) 编辑
摘要:一、前述 使用httpclient发起https请求时,可能会遇到如下异常: 网上搜索也能找到一大堆的解决方案,但大部分都类似,就是跳过证书的验证,于是跟着稀里糊涂的将代码拷贝下来使用,结果呢?有的能解决,有的依旧报这个错误。到底咋回事呢,接下来就说说这个问题的解决方案。 二、缘由 首先,要知道导致 阅读全文
posted @ 2016-12-30 19:24 永志 阅读(43948) 评论(3) 推荐(2) 编辑
摘要:对于TCP四步挥手时的各种状态转换,网上有很多资料。但是有很多描述不是很容易理解,甚至是描述错误,不如这篇文章里http://www.cnblogs.com/Jessy/p/3535612.html#3428191 说: 对此我表示不以为然。而且很容易误导初学者。在这里我贴出一个网上画的比较好的TC 阅读全文
posted @ 2016-05-12 08:13 永志 阅读(777) 评论(0) 推荐(0) 编辑
摘要:TCP共使用以下四种计时器,即重传计时器、坚持计时器、保活计时器和时间等待计时器 。这几个计时器的主要特点如下: 1、重传计时器 当TCP发送报文段时,就创建该特定报文段的重传计时器 。可能发生两种情况: (1)、若在计时器截止时间到( 通常是60秒 )之前收到了对此特定报文段的确认,则撤销此计时器 阅读全文
posted @ 2016-05-10 22:38 永志 阅读(6298) 评论(0) 推荐(2) 编辑
摘要:模型图: 我们可以大概看一下上图的模型: 首先是AB之间三次握手建立TCP连接。在报文的交互过程中,A将自己的缓冲区大小(窗口大小)3发送给B,B同理,这样双方就知道了对端的窗口大小。 A开始发送数据,A连续发送3个单位的数据,因为他知道B的缓冲区大小。在这一波数据发送完后,A就不能再发了,需等待B 阅读全文
posted @ 2016-05-10 09:02 永志 阅读(2264) 评论(1) 推荐(0) 编辑
摘要:我们可以大概看一下上图的模型:首先是AB之间三次握手建立TCP连接。在报文的交互过程中,A将自己的缓冲区大小(窗口大小)3发送给B,B同理,这样双方就知道了对端的窗口大小。A开始发送数据,A连续发送3个单位的数据,因为他知道B的缓冲区大小。在这一波数据发送完后,A就不能再发了,需等待B的确认。A发送... 阅读全文
posted @ 2016-01-07 17:03 永志 阅读(922) 评论(1) 推荐(0) 编辑
摘要:TCP是TCP/IP的传输层控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:首先需要了解几个名词:tcp标志位,有6种分别为:SYN(synchronous建立联机) 、ACK(acknowledgement 确认) 、PSH(push传送) 、FIN(finish结束)、 RST(re... 阅读全文
posted @ 2016-01-06 20:28 永志 阅读(1982) 评论(0) 推荐(0) 编辑
摘要:前言在面试的过程中,TCP的传输协议经常会出现。以前我参加面试的过程中就被问到过,现在轮到我面试其他人的时候,我也会问一些相关的问题。作为一名开发者,无论使用什么样的开发语言,最基本的网络知识一定要理解透彻,这样才能获得更好的职业发展。TCP链接协议概述建立TCP需要三次握手才能建立,而断开连接则需... 阅读全文
posted @ 2016-01-06 19:50 永志 阅读(354) 评论(0) 推荐(1) 编辑
摘要:闲来无事,把之前写的一个游戏服务器框架(《一个java页游服务器框架》),部署到阿里云服务器上,测试运行了下,结果看到后台log中打印出了“Connection reset by peer”。出于好奇疑问就查了一下相关资料,网上说一般有这几种: ①:服务器的并发连接数超过了其承载量,服务器会将... 阅读全文
posted @ 2015-03-09 12:24 永志 阅读(26761) 评论(6) 推荐(0) 编辑
摘要:RPC 功能目标RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用。 下面我们将具体细化 stub 结构的实现。RPC 调用分类RPC 调用分以下两种:... 阅读全文
posted @ 2015-03-08 09:20 永志 阅读(48856) 评论(5) 推荐(47) 编辑
摘要:一、前言 此游戏服务器架构是一个单服的形式,也就是说所有游戏逻辑在一个工程里,没有区分登陆服务器、战斗服务器、世界服务器等。此架构已成功应用在了多款页游服务器。在此框架中没有实现相关业务逻辑,只有简单的测试用的注册登陆功能。但在此框架中添加相应的业务逻辑也是比较轻松的,只需要添加相应的协议,编写对... 阅读全文
posted @ 2015-02-28 14:08 永志 阅读(7584) 评论(9) 推荐(5) 编辑
摘要:前言 不知不觉,已那么长时间没有更新东西了,说来真是汗颜啊。(主要是最近在技术上豁然开朗的感觉越来越少了-_-|||) 最近一直在学习Linux相关的东西。又一次接触到了I/O复用模型(select/poll/epoll),由于好久没在用NIO写过代码了,今天就小试写个例子,以巩固下对I/O复用... 阅读全文
posted @ 2015-01-14 11:59 永志 阅读(1659) 评论(0) 推荐(0) 编辑
摘要:由于工作并不是很忙,闲暇之余就读了下tomcat的源代码。我是从事java服务器开发工作的,大体的一些服务器线程模型我都是了解的。其大部分都是由一个线程调用监听端口等待客户端的链接,建立连接后再交由其他的线程负责具体的网络io操作。可tomcat居然是用多个线程调用同一个ServerSocket... 阅读全文
posted @ 2014-09-05 21:53 永志 阅读(1930) 评论(11) 推荐(6) 编辑