网络通信
阿杰、
Do more,know more,be more.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
网络 网速计算 mbps和mb/s怎么换算结论:8Mbps(8 Million bits) = 1MB/s (1 Million Byte)
MB通常所说的文件大小的兆是指8MByte。字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。bps(bits per second),即比特率、比特/秒、位/秒、每秒传送位数,数据传输速率的常用单位。Mbps=Mbit/s即兆比特每秒(Million bits per second的缩写)。原创 2023-02-10 23:17:17 · 7346 阅读 · 0 评论 -
Socket--01 理论概念总结
IP IP之间通信。TCP 进程之间通信Socket TCP层的封装,通过Socket,可以进行TCP通信。 TCP/IP 协议简介IPIP(Internet Protocol)协议。IP 协议提供了主机和主机间的通信。为了完成不同主机的通信,我们需要某种方式来唯一标识一台主机,这个标识,就是著名的IP地址。通过IP地址,IP 协议就能够帮我们把一个数据包发送给对...原创 2019-02-22 14:15:00 · 343 阅读 · 0 评论 -
Netty 07 | 一些小知识点
工具:Spring 类似 注解目的:简洁、解耦。找到对应的业务类。server:处理业务线程池。netty3 自己实现。netty4 框架实现。消息串行化工具。原创 2019-03-25 17:13:00 · 264 阅读 · 0 评论 -
Netty 00 | 原理概念——阻塞非阻塞、异步同步、Reactor
BIO性能与可靠性差client 每个 request 对应 server 每个线程。server 线程 同步处理业务与应答。伪 NIOserver 启用线程池管理多个线程请求。NIO (Non - block I/O)良好的应对 高负载、高并发。缓冲区 Buffer在NIO 中,所有的数据都是用缓冲区处理的。缓冲区实质是数组。通常为字节数组 (ByteBuffer)。...原创 2019-03-22 11:24:32 · 813 阅读 · 0 评论 -
Netty 01 | 简介与helloworld
传统的Socket IO 比较传送IO特点阻塞点server.accept();inputStream.read(bytes);单线程情况下只能有一个客户端用线程池可以有多个客户端连接,但是非常消耗性能NIO的特点ServerSocketChannel ServerSocketSocketChannel SocketSelectorSelectionKey...原创 2019-03-17 10:43:54 · 428 阅读 · 0 评论 -
Netty 02 | 源码分析
Netty 是如何工作的?因为代码中没有异步的代码。那非阻塞是如何实现的?目录结构init 线程池boss 线程池woker 线程池每个线程一个 selectorselector implements Runnable1个selector 有 1个Queue taskQueue每个 selector 都公用 boss pool or worker pool每一...原创 2019-03-17 17:07:01 · 330 阅读 · 0 评论 -
Netty03 | 源码 心跳
如何阅读源码一段一段看断点打印日志看调用栈搜索原创 2019-03-24 14:56:23 · 350 阅读 · 0 评论 -
Java NIO Selector
Selector 介绍使用 Selector 好处:使用更少的线程来就可以来处理通道了, 相比使用多个线程,避免了线程上下文切换带来的开销。它是Java NIO核心组件中的一个,用于检查一个或多个NIO Channel(通道)的状态是否处于可读、可写。如此可以实现单线程管理多个channels,也就是可以管理多个网络链接。 //注册serverChannel到selector se...原创 2019-03-25 14:22:46 · 313 阅读 · 0 评论 -
Netty 04 | 自定义数据包,传输协议 protobuf
目的:节省流量,提交效率。方法:定义序列化与反序列化规则,方法。具体方法:字段类型长度顺序结论proto buffbytebufferoutputstreambufferchannelbuffer没有 string 对象 ,因为长度可变,所以预定义它的长度。反序列化:先看长度字段然后在读取对象。protobuffer第一列自定义Serializer...原创 2019-03-24 15:49:43 · 1016 阅读 · 0 评论 -
Netty 05 | pipeline 分析
上行下行管道处理channel event 传递Handler 处理多个 Handler 组成的双向【链表】单向执行,从上到下有序处理多个 handler 消息自定义过滤。同一个channel 多个 channel event 的 handler 没有并发问题。自行判断类别进行是否执行当前 此 handler eg; up down 上行下行 分类,1个链表,2 个分类。事件传递,可...原创 2019-03-24 15:55:14 · 258 阅读 · 0 评论 -
Netty 06 | 粘包 分包
简介网络传输都是转换为 2 进制进行传输粘包client 发送 2个 请求:hello helloserver 接收到 2个 请求:hellohello或者 多个请求收到合并为一个请求分包client 发送1个请求: helloserver 接收到:2个请求hello解决通过标识标志位定义一个稳定的结构 length + helloclient发送: ...原创 2019-03-24 15:56:53 · 283 阅读 · 0 评论 -
Reactor 模式
高性能 IO 中 Reactor模式的演进?几乎所有的网络连接都会经过读请求内容——》解码——》计算处理——》编码回复——》回复的过程,Reactor模式的的演化过程如下:while(true){ socket = accept(); new thread(socket); } 这种模型由于IO在阻塞时会一直等待,因此在用户负载增加时,性能下降的非常快。server 导致阻塞的原...转载 2019-03-22 18:00:28 · 458 阅读 · 0 评论
分享