网络技术
文章平均质量分 84
huaishu
这个作者很懒,什么都没留下…
展开
-
modbus 协议基础知识
Modbus的内容是什么协议种类Modbus-RTU+Modbus-ASCIIModbus-TCPModbus-Plus通讯过程:Modbus是主从方式通信,也就是说,不能同步进行通信,总线上每次只有一个数据进行传输,即主机发送,从机应答,主机不发送,总线上就没有数据通信Modbus-RTU+Modbus-ASCII协议是基于异步串行通信上,一般的介质有:RS-232,RS485,RS-422上,这也是工业上使用的最多的;对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上原创 2022-04-25 09:28:19 · 11255 阅读 · 0 评论 -
Netty4 各种源码文章后的总结
把Netty4关于源码解读的文章看完以后还是很多疑惑,例如:Netty是基于一个怎样的点来设计框架的(解决了一个什么样的痛点),把这些文章归纳总结很有必要。Java NIO的网络编程基本原理 如何拆解串行流程 整理Netty的数据流程Java NIO 网络编程基本代码分析// 创建一个selector Selector selector = Selector.open(); // 创建一个ServerSocketChannel ServerSo原创 2021-03-01 14:33:47 · 291 阅读 · 3 评论 -
Netty4实战解读后思考
看过TCP/IP协议,也看过关于Netty方面的代码,总结一下疑惑的地方。关于伪异步IO模型,为什么会慢?当消息的接收方处理缓慢的时候,将不能及时从TCP缓冲区读取数据,将会导致发送方的TCP“窗口”大小不断减小,直至为0,双方处于Keep-Alive状态,消息发送方将不能再向TCP缓冲区写入消息,如果采用的是同步阻塞I/O,写操作将会无限期阻塞,直到TCP“窗口”大小大于0或发生I/O异常。如果不是同步阻塞I/O,会怎么样。Netty4数据传输图Channel 绑定到 ChannelP原创 2021-01-29 22:13:01 · 250 阅读 · 0 评论 -
linux下SS 网络命令详解
ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信,当服务...原创 2020-01-02 14:35:23 · 683 阅读 · 0 评论 -
TCP状态迁移图浅析
一.TCP简介 TCP提供一种面向连接的,可靠的字节流服务。面对连接意味着两个使用TCP的应用,在彼此交换数据之前必须先建立一个连接。TCP通过以下方式提供可靠性: 1. 应用数据被分割成TCP认为最适合发送的数据块,由TCP传递给IP的信息单位成为报文段。 2. 当TCP发出一个段后,它就启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重...转载 2013-11-29 11:31:14 · 801 阅读 · 0 评论 -
Linux网络流量实时监控ifstat iftop命令详解
ifstat介绍ifstat工具是个网络接口监测工具,比较简单看网络流量 实例默认使用#ifstat eth0 eth1 KB/s in KB/s out KB/s in KB/s out 0.07 0.20 0.00 0.00 0.07原创 2014-06-17 18:16:05 · 1475 阅读 · 0 评论 -
TCP-IP详解卷-基础知识 IP TCP UPD ARP协议
最近准备TCP-IP知识温故知新,收集部分资料。收集这些基础模型主要是加深对网络编程的理解,故未对网络管理进行过多的了解,即包是如何选路的。URG 紧急指针(urgentpointer)有效。 ACK 确认序号有效。 PSH 接收方应该尽快将这个报文段交给应用层。 RST 重建连接。 SYN 同步序号用来发起一个连接。 FIN 发端完成...原创 2017-05-15 11:57:42 · 1201 阅读 · 0 评论 -
微信的智能心跳方案
心跳 长连接转载 2017-05-13 15:29:28 · 782 阅读 · 0 评论 -
JAVA网络编程基础知识--网络编程变迁
JAVA 网络IO编程。BIO编程伪异步I/O编程NIO编程AIO编程异步通道提供2种方式获取操作结果1.通过Future类来表示异步操作的结果;2.在执行异步操作的时候传入一个java.nio.channelsComplettionHandler 接口的实现类作为操作完成的回调。NIO2.0的异步套接字通道是真正的异步非阻塞IO,它对应UNIX...原创 2017-05-20 14:08:41 · 341 阅读 · 0 评论 -
JAVA网络编程基础知识-Linux网络IO模型
基本概念在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端原创 2017-05-20 12:57:59 · 371 阅读 · 0 评论 -
TCP-IP详解卷之--基础网络知识及网络协议
网络分层OSI 七层模型在TCP/IP协议中只有四层,物理层、链路层、网络层、传输层、会话层、表示层、应用层。互联网地址网络封装以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作MTU,最大传输单元。不同类型的网络大多数都有一个上限。以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1...原创 2019-04-01 17:46:26 · 265 阅读 · 0 评论 -
HTTPS SSL 握手流程
在发送已加密的HTTP报文之前,客户端和服务器要进行一次SSL握手,在这握手过程中,他们要完成以下工作:交换协议版本号 选择一个两端都了解的密码 对两端的身份进行认证 生成临时的会话秘钥,方便加密信道DNS解析(通过访问的域名找出其IP地址,递归搜索) HTTP请求,当输入一个请求时,建立一个Socket连接发起TCP的3次握手 如果是HTTPS请求建立连接后,则看Q26 ...原创 2019-04-03 15:34:53 · 540 阅读 · 0 评论 -
HTTP/2协议优点
HTTP/2围绕着主要的7项技术进行讨论功能 技术路线 备注 二进制分帧 二进制格式编码 压缩 SPDY、Friendly 头部压缩 多路复用 SPDY 同域名下所有通信都在单个连接上完成 TLS义务化 Speed+Mobility 必须TLS 协商 Speed+Mobiliy、Friendly 应...原创 2019-04-24 18:07:29 · 1231 阅读 · 0 评论 -
流媒体协议——RTMP实时消息传输协议详解
RTMP——Real Time Messaging Protocol(实时消息传输协议)RTMP是由Adobe公司提出的,在互联网TCP/IP五层体系结构中应用层,RTMP协议是基于TCP协议的,也就是说RTMP实际上是使用TCP作为传输协议。TCP协议在处在传输层,是面向连接的协议,能够为数据的传输提供可靠保障,因此数据在网络上传输不会出现丢包的情况。不过这种可靠的保障也会造成一些问题,也就...原创 2019-05-20 14:52:34 · 1085 阅读 · 0 评论 -
流媒体协议——RTSP协议详解
RTSP简介RTSP(Real Time Streaming Protocol)是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,RTSP的作用相当于流媒体服务器的远程控制。服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特...原创 2019-05-20 17:27:32 · 515 阅读 · 0 评论 -
TCP包的seq和ack号计算方法
序号(seq)用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则TCP用序号对每个字节进行计数。序号是32bit的无符号数,序号到达232-1后又从0开始。当建立一个新的连接时,SYN标志变1。序号字段包含由这个主机选择的该连接的初始序号ISN(InitialSequenceNumber)。该主机要发送数...原创 2019-06-26 17:37:16 · 49347 阅读 · 5 评论 -
TCP/IP网络协议总结
学习TCP-IP详解一段时间,还有不少疑惑,总结记录一番,说不定有新发现。总听人说5G网络下一部电影只需要几秒钟,疑惑的很我们普遍网络使用以太网,通过光纤或者网线连接,其数据封装格式依据IEEE 802规范,属于链路层数据规范,基于RFC 894 定义以太网封装格式。5G应该是在链路层有很大的改进,所以主干网需要扩容,可以理解我们家的网线或者网卡都要换一换。也可以理解,以前的乡村小道可能...原创 2019-06-27 18:02:11 · 985 阅读 · 1 评论 -
将 IPv6 照进现实,我们需要做些什么?
手机支持双栈吗?IPv6 在相当长一段时间内没能够在公众网中普及,很重要的一个原因就是各方的动力不足,虽然一直在宣传 IPv4 地址不够用了,但缝缝补补还是让互联网走了这么多年。如果抛开动力不足来看,IPv6 的普及其实是一个系统工程,需要的是端、管、云,三方的协同支持,那么我们先看下端,也就是手机的支持情况。首先是苹果 iPhone,对于 v6 苹果早在几年前就强推 APP 对于 IPv...转载 2019-07-29 10:54:33 · 308 阅读 · 0 评论 -
使用tcpdump分析TCP三次握手与四次挥手
技术上必须对APP设备进行监控,必须对TCP协议、长连接等技术进行研究。网上找到不少资料来验证握手和挥手的例子,总结如下:TCP/IP的数据封装图为测试方便,使用python写网络连接。client端连接from socket import *import time addr = ('127.0.0.1', 9988)client = socket(AF_INET, ...原创 2017-05-09 15:24:30 · 1672 阅读 · 1 评论 -
tcpdump使用说明
tcpdump采用命令行方式,它的命令格式为: tcpdump[-adeflnNOpqStvx][-c数量][-F文件名] [-i网络接口][-r文件名][-ssnaplen] [-T类型][-w文件名][表达式]1.tcpdump的选项介绍 -a 将网络地址...原创 2013-12-02 17:50:43 · 766 阅读 · 0 评论 -
TCP-IP详解之TCP的交互数据流2
TCP的交互数据流目录章节1.交互式输入2.经受时延的确认3.Nagle算法4.窗口大小通告前言如果按照分组数量计算,约有一半的T C P报文段包含成块数据(如 F T P、电子邮件和 U s e n e t新闻) ,另一半则包含交互数据(如Te l n e t和R l o g i n) 。如果按字节计算,则成块数据与交互数据的比例约为 9 0 %和1 0 %。这是因为成块数据的...原创 2017-05-15 17:55:05 · 379 阅读 · 0 评论 -
UDP打洞技术
最近公司在做数据接收项目,第一次听到“打洞”,特意网上找到资料看看 UDP原创 2014-06-25 23:10:14 · 638 阅读 · 0 评论 -
TCP三次握手及四次挥手详细图解
相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。因此在这里详细解释一下这两个过程。TCP三次握手...转载 2013-11-24 17:22:57 · 827 阅读 · 0 评论 -
网络监控一般命令
wireshark工具linux 下tcpdumptcpdump -ieth0其中,eth0为参数值,表示需要抓包的网口,这是个必需参数哦。tcpdump支持很多的关键字,下面先看几个例子:(例1)tcpdump -ieth0host192.168.0.250 -----在网口eth0上抓取主机地址为192.168.0.250的所有数据包。(例2)tcp...原创 2013-11-28 18:41:51 · 2850 阅读 · 0 评论 -
linux netstat 统计查看外部连接数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'原创 2014-04-02 15:32:36 · 803 阅读 · 0 评论 -
TCP粘包和拆包原因
最近研究Netty网络编程,以前项目中也遇到过数据接收过程中数据质量太差问题,很可能是TCP传输过程中问题,特此记录。问题产生一个完整的业务可能会被TCP拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包发送,这个就是TCP的拆包和封包问题。下面可以看一张图,是客户端向服务端发送包:1. 第一种情况,Data1和Data2都分开发送到了Server端,没...原创 2015-11-25 19:12:39 · 5650 阅读 · 1 评论 -
项目中常用网络命令
IP欺骗iptables -t nat -L修改echo "1" >/proc/sys/net/ipv4/ip_forward原创 2014-09-19 22:12:46 · 671 阅读 · 1 评论 -
Linux流量监控工具 - iftop
在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop。一、iftop是什么?iftop是类似于top的实时流量监控工具。官方网站:http://www.ex-parrot.com/~pdw/iftop/二、iftop有什么用?ift原创 2014-06-17 17:00:55 · 574 阅读 · 0 评论 -
TCP-IP详解之TCP的成块数据流3
TCP的成块数据流章节目录1.正常数据流2.滑动窗口3.窗口大小4.PUSH标志5.慢启动6.成块数据的吞吐量7.紧急方式 前言TCP所使用的被称为滑动窗口协议的另一种形式的流量控制方法。该协议允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输。正常数据流该命令指示客户向网络...原创 2017-05-15 18:53:27 · 423 阅读 · 0 评论 -
HTTP的长连接和短连接
最近突然想到以前工作中接触过各种网络协议,使用过各种网络工具,但是没有真正去了解过原理性的东西。收集此资料,权当笔记留存。一、什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反原创 2016-09-26 13:20:30 · 503 阅读 · 0 评论 -
TCP-IP详解之TCP的超时与重传4
TCP的超时与重传章节目录1.超时与重传的例子2.往返时间测量3.往返时间RTT的例子4.拥塞举例5.拥塞避免算法6.快速重传与快速恢复算法7.拥塞举例28.按每条路由进行度量9.ICMP的差错10.重新分组前言TCP提供可靠的运输层。它使用的方法之一就是确认从另一端收到的数据。但数据和确认都有可能会丢失。TCP通过在发送时设置一个定时器来解决这种问...原创 2017-05-16 13:10:08 · 472 阅读 · 0 评论 -
TCP-IP详解卷之--TCP连接的建立与终结1
移动APP与服务端保持通讯状态以及服务端消息的推送都需要长连接的使用,对TCP状态的转换有助于问题的排查。TCP包头TCP状态变迁连接的建立与终止连接建立的超时详见超时与重传。最大报文段长度最大报文段长度(MSS)表示TCP传往另一端的最大块数据的长度。当一个连接建立时,连接的双方都要通告各自的MSS。当建立一个连接时,每一方...原创 2017-05-08 18:45:28 · 500 阅读 · 0 评论 -
TCP-IP详解之TCP的保活定时器6
TCP的保活定时器章节目录1.情景描述2.保活举例前言许多TCP/IP的初学者会很惊奇地发现可以没有任何数据流通过一个空闲的TCP连接。也就是说,如果TCP连接的双方都没有向对方发送数据,则在两个TCP模块之间不交换任何信息。例如,没有可以在其他网络协议中发现的轮询。这意味着我们可以启动一个客户与服务器建立一个连接,然后离去数小时、数天、数个星期或者数月,而连接依然保持。中间路由器...原创 2017-05-17 11:53:28 · 361 阅读 · 0 评论 -
TCP-IP详解之TCP的坚持定时器5
TCP的坚持定时器章节目录1.一个例子2.糊涂窗口综合症前言可以在图20-3中看到这种情况。当发送方接收到报文段9时,它打开被报文段8关闭的窗口并立即开始发送数据。TCP必须能够处理打开此窗口的ACK(报文段9)丢失的情况。ACK的传输并不可靠,也就是说,TCP不对ACK报文段进行确认,TCP只确认那些包含有数据的ACK报文段。如果一个确认丢失了,则双方就有可能因为等待对方而使连...原创 2017-05-17 11:27:51 · 437 阅读 · 0 评论 -
Ajax、Comet与Websocket
从 http 协议说起1996年IETF HTTP工作组发布了HTTP协议的1.0版本 ,到现在普遍使用的版本1.1,HTTP协议经历了17 年的发展。这种分布式、无状态、基于TCP的请求/响应式、在互联网盛行的今天得到广泛应用的协议,相对于互联网的迅猛发展,它似乎进步地很慢。互联网从兴起到现在,经历了门户网站盛行的web1.0时代,而后随着ajax技术的出现,发展为web应用盛行的we转载 2015-10-30 09:48:32 · 2323 阅读 · 0 评论 -
HTTP协议详解
一、概念协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规转载 2016-09-18 17:13:53 · 458 阅读 · 0 评论 -
Linux网卡绑定探析
现在很多服务器都自带双千兆网口,利用网卡绑定既能增加网络带宽,同时又能做相应的冗余,目前应用于很多的场景。linux操作系统下自带的网卡绑定模式,Linux bonding驱动提供了一个把多个网络接口设备捆绑为单个网络接口设置来使用,用于网络负载均衡及网络冗余。当然现在网卡产商也会出一些针对windows操作系统网卡管理软件来做网卡绑定(windows操作系统没有网卡绑定功能 需要第三方支持)。转载 2014-06-16 14:24:19 · 4187 阅读 · 1 评论