建立RSA协商加密的安全信道

在基于TCP长连接的CS链路中,如何保证数据流的安全性是开发者最关注的问题之一。本文深入浅出的给大家介绍一下在TCP连接中,使用RSA协商加密的方式,建立一个安全加密的通信链路,保证数据传输的安全性。文章分为3个主要部分,即RSA算法简介,安全信道协商流程详解和一些工程优化方法。期望大家在读了我这篇... ... »

TCP三次握手

TCP三次握手就像两个人在隔着30米的看见对方,但是看不清楚,所以要通过招手的方式来确定对方是否认识自己。 假如这两个人一个叫王大,一个叫李二。王大先向李二招手,李二看到王大像自己招手后,向对方点了点头并笑了一下。 王大看到李二的笑容,明白李二认出了自己。但是李二也担心自己认错了,所以他也向王大招了 ... »

各个系统下ping IP+端口的方法

前言 做开发的人员,可能都会遇到网络的一些问题。这时一般都需要测试指定的网络是否能正常访问。通常在windows系统下,在cmd里直接用命令ping指定的IP或者域名就可以快速的知道这个地址是否是可以访问通不通的。 但是如果一个服务器上启动着好几个项目,通过指定不同的端口来区分。想要知道其中某个端口 ... »

Http协议之报文·方法·状态码

【要点】 1. HTTP协议的主要特点 2. HTTP报文的组成部分 3. HTTP方法 4. POST 和 GET的区别 5. HTTP状态码 【总结】 HTTP协议的主要特点 主要特点:简单快速, 灵活, 无连接(非keep-alive),无状态 每个资源URI是固定的,想访问某个资源 ,浏览器 ... »

Netty 源码中对 Redis 协议的实现

近期一直在做网络协议相关的工作,所以博客也就与之相关的比较多,今天楼主结合 Redis的协议 RESP 看看在 Netty 源码中是如何实现的。 <! more RESP 协议 RESP 是 Redis 序列化协议的简写。它是一种直观的文本协议,优势在于实现非常简单,解析性能极好。 Redis 协议 ... »

JDK 定时任务 Timer 与 ScheduledExecutorService 排坑记录

正在认真敲代码的楼主,突然收到数据维护系统发过来的报警邮件说楼主凌晨跑的定时任务没有成功,于是便开始了楼主今天的找坑填坑的过程。 <! more 定时任务,关于 Timer 与 ScheduledExecutorService 的抉择 这事肯定会有小伙伴说了为啥不用Quartz啊,因为楼主的庙小啊, ... »

TCP 粘包问题浅析及其解决方案

最近一直在做中间件相关的东西,所以接触到的各种协议比较多,总的来说有TCP,UDP,HTTP等各种网络传输协议,因此楼主想先从协议最基本的TCP粘包问题搞起,把计算机网络这部分基础夯实一下。 <! more 贴个广告 楼主的博客已全部搬迁至自己的博客,感兴趣的小伙伴请移步 "haifeiWu与他朋友 ... »

自行实现 dotnet core rpc

前言 小李:“胖子,上头叫你对接我的数据好了没有?” 胖子:“那是你的事,你都不提供数据源,我咋接?” 小李:“你想要什么样的数据源?” 胖子:“我想要一个调用简单点的!” 小李:“我这个数据源是在linux平台使用docket封装发布的,webapi的怎么样?” 胖子:“也行,这项目工期快用完了, ... »

TCP入门与实例讲解

TCP是TCP/IP协议栈的核心组成之一,对开发者来说,学习、掌握TCP非常重要。 本文主要内容包括:什么是TCP,为什么要学习TCP,TCP协议格式,通过实例讲解TCP的生命周期(建立连接、传输数据、断开连接) ... »

TCP连接和 time_wait、close_waite

TCP连接和 time_wait、close_waite tags:time_wait close_waite RST TCP 引言:前两天朋友公司的服务器垮掉了,最后查出的原因是发现大量的time_wait网络状态。被问起来time_wait是什么,当时就简单的给解释了两句,后来想想正好博客没有特 ... »

基于NetMQ的TLS框架NetMQ.Security的实现分析

<! TOC "基于NetMQ的TLS框架NetMQ.Security的实现分析" "前言" "介绍" "交互过程" "支持的协议" "TLS协议" "支持的算法" "实现" "握手" "第一次握手" "Client Hello" "第二次握手" "Server Hello" "Certificat ... »

三十天学不会TCP,UDP/IP网络编程 -- RTT的计算

欢迎去gitbook(https://www.gitbook.com/@rogerzhu/)看到完整版。 如果对和程序员有关的计算机网络知识,和对计算机网络方面的编程有兴趣,虽然说现在这种“看不见”的东西真正能在实用中遇到的机会不多,但是我始终觉得无论计算机的语言,热点方向怎么变化,作为一个程序员, ... »

wireshark抓包分析tcp连接与断开

其实对于网络通信的学习,最好还是能够自己抓到包详细地一下,不然只单单通过文字和图的描述印象不够深刻。本文通过实际的抓包操作来看一下tcp的连接与断开是怎样的。 首先需要去https://www.wireshark.org/下载wireshark对应你机器位数的版本,也可以用这个连接直接下载(64位) ... »

三十天学不会TCP,UDP/IP网络编程 -- TCP中的智慧之连续ARQ

突然发现上一篇文章贴图有问题,关键我怎么调也调不好,为了表达歉意,我再贴一篇gitbook上的吧,虽然违背了我自己的隔一篇在这里发一次的潜规则~其余完整版可以去gitbook(https://www.gitbook.com/@rogerzhu/)看到。 如果对和程序员有关的计算机网络知识,和对计算机 ... »

GPS服务端(上)-Socket服务端(golang)

从第一次写GPS的服务端到现在,已经过去了八年时光。一直是用.net修修改改,从自己写的socket服务,到suppersocket,都是勉强在坚持着,没有真正的稳定过。 最近一段时间,服务端又出了两个问题: 1、UDP服务:System.Net.Sockets.SocketException (0 ... »

简述TCP的三次握手过程

一、TCP报文格式 图1 TCP报文格式 二、三次握手 图2 TCP三次握手 三、四次挥手 由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是 ... »

三十天学不会TCP,UDP/IP网络编程 - RST的用法

不知不觉也写了这么多了,继续我的自己的推广大业~完整版可以去gitbook(https://www.gitbook.com/@rogerzhu/)看到。 如果对和程序员有关的计算机网络知识,和对计算机网络方面的编程有兴趣,虽然说现在这种“看不见”的东西真正能在实用中遇到的机会不多,但是我始终觉得无论 ... »