网络
红豆和绿豆
这个作者很懒,什么都没留下…
展开
-
计算机网络通信
2、局域网的交换机:mac和交换机端口路由表-数据链路层 mac地址。3、不同局域网之间进行通信,主要是路由器-网络层-ip。源ip到目标ip的不变化,但是mac地址在一直变化。1、最原始的hub结构。原创 2024-07-13 22:04:02 · 186 阅读 · 0 评论 -
java网络编程netty实现rpc
常见的rpc框架流程基本rpc实现流程基于Spring版本https://my.oschina.net/huangyong/blog/361751https://www.cnblogs.com/luxiaoxun/p/5272384.html?spm=ata.13261165.0.0.190a1c7bi0WmY0具体的代码就不贴了具体涉及到:netty的rpc,注册中心,编码和解码,动态代理 ,协议定义...原创 2021-07-31 19:29:51 · 169 阅读 · 0 评论 -
java网络编程netty的tcp粘包和拆包
tcp出现粘包和拆包的一个基本的demopackage io.netty.tcp;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelPipeline;import io.netty.channel.socket.SocketChannel;public class MyServerInitializer extends ChannelInitializer<SocketChan...原创 2021-07-31 18:49:27 · 530 阅读 · 0 评论 -
java网络编程netty的编码与解码
package io.netty.inboundAndoutboundHandler;import io.netty.buffer.ByteBuf;import io.netty.channel.ChannelHandlerContext;import io.netty.handler.codec.ByteToMessageDecoder;import java.util.List;public class MyByteToLongDecoder extends ByteToMessage.原创 2021-07-31 12:46:07 · 389 阅读 · 0 评论 -
java网络编程NIO之protobuf
针对prototobuf的操作(1)引入protobuf的mvn配置<dependency><groupId>com.google.protobuf</groupId><artifactId>protobuf-java</artifactId><version>2.6.1</version></dependency>(2)编写*.proto文件syntax="proto3";//原创 2021-07-29 17:49:27 · 229 阅读 · 0 评论 -
java网络编程NIO的websocket长链接
import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.ChannelPipeline;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;..原创 2021-07-29 16:25:02 · 504 阅读 · 0 评论 -
java网络编程NIO的心跳检测
import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketCha...原创 2021-07-29 11:45:27 · 566 阅读 · 0 评论 -
java网络编程netty实现群聊
package io.netty.groupchat;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.netty.channel.socket.nio.NioServerSocketChannel;impo.原创 2021-07-27 09:41:36 · 216 阅读 · 0 评论 -
java网络编程netty的api
package io.netty.buf;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.util.CharsetUtil;import java.nio.charset.Charset;public class NettyByteBufTest { public static void main(String[] args) { ...原创 2021-07-26 19:04:57 · 208 阅读 · 0 评论 -
java网络编程netty实现接收http请求
package io.netty.http;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.nio.NioServerSocketChannel;pu.原创 2021-07-26 18:25:29 · 1637 阅读 · 0 评论 -
java网络编程netty的Future_listener机制
package io.netty;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.netty.channel.socket.nio.NioServerSocketChannel;public clas...原创 2021-07-26 17:31:41 · 263 阅读 · 0 评论 -
java网络编程netty进阶
(1)netty是一主多从 多线程模型(2)netty一个基本的demopackage io.netty;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.netty.channel.sock.原创 2021-07-26 15:59:15 · 164 阅读 · 0 评论 -
java网络编程NIO之IO模型分析
(1)IO模型种类以及变种(2)传统阻塞IO模型传统阻塞IO模型的问题(3)ReactorIO模型(4)Reactor IO模型之 单Reactor单线程(5)Reactor IO 单Reactor多线程(6)Reactor IO 一主 多从Reactor 多线程模型...原创 2021-07-26 14:26:55 · 83 阅读 · 0 评论 -
java网络编程netty基础知识
(1)NIO存在的问题(2)netty是什么(3)netty的优点原创 2021-07-26 10:47:51 · 106 阅读 · 0 评论 -
java网络NIO的零拷贝
BIO拷贝一个文件的时间import java.io.DataInputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;/** * */public class OldIOServer { public static void main(String[] args) throws IOException { ServerSocket s原创 2021-07-25 19:57:28 · 232 阅读 · 2 评论 -
java网络编程NIO聊天室基本实现
import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.*;import java.util.Iterator;/** * */public class GroupChatServer { //定义成员变量 private Selector selector; private ServerS..原创 2021-07-25 19:55:37 · 82 阅读 · 0 评论 -
javaNIO原理的一个基本demo
import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SocketChannel;/** * */public class NioClientTest { public static void main(String[] args) throws IOException { SocketC...原创 2021-07-25 14:30:31 · 697 阅读 · 4 评论 -
JavaIO继续深入分析-BIO,NIO,Buffer,Channel
(1)BIO 了解 同步---阻塞 重点 accept read 都是阻塞的package io.bio;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/*原创 2021-07-24 21:21:17 · 161 阅读 · 0 评论 -
http3
最近一段时间以来,关于HTTP/3的新闻有很多,越来越多的国际大公司已经开始使用HTTP/3了。所以,HTTP/3已经是箭在弦上了,全面使用只是个时间问题,那么,作为一线开发者,我们也是时候了解下到底什么是HTTP/3,为什么需要HTTP/3了。那么,本文就来讲解一下到底什么是HTTP/3?他用到了哪些技术?解决了什么问题?HTTP/2 存在的问题在撰写本文之前,我专门写了一篇文章《HTTP/2做错了什么?刚刚辉煌2年就要被弃用了!?》分析HTTP/2存在的问题以及背后的原因。这转载 2021-02-15 14:36:52 · 2728 阅读 · 0 评论 -
常见的网站攻击手段及预防措施
XSSXSS攻击的全称是跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表 (Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,是WEB应用程序中最常见到的攻击手段之一。跨站脚本攻击指的是攻击者在网页中嵌入恶意脚本程序, 当用户打开该网页时,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie、 盗取用户名密码、下载执行病毒木马程序等等。有一种场景,用户在表单上输入一段数据后,提交给服务端进行持久化,其他页面上需要从服转载 2021-02-15 14:12:14 · 752 阅读 · 0 评论 -
WireShark之命令行版tshark
玩转TShark(Wireshark的命令行版)在我感叹Wireshark图形界面的强大时刻,有时候也无法克服有点慢,或者感叹下要是有命令行界面版该多好啊,实际上TShark就是WireShark的命令行版,WireShark的功能基本都有,还能组合grep / awk等编程处理分析抓包文件。下面让我们通过一些示例来学习TShark的常用功能,所有用到的.cap /.pcap等都是通过tcpdump抓到的包。请收藏好,下次碰到类似问题直接用文章中的命令跑一下。wirehark不再展示协议内容.转载 2021-02-13 21:20:24 · 1590 阅读 · 2 评论 -
一个网络包的旅程
写在最前面的我相信你脑子里关于网络的概念都在下面这张图上,但是乱成一团麻,这就是因为知识没有贯通、没有实践、没有组织上面的概念在RFC1180中讲的无比的通熟易懂了,但是抱歉,当时你也许看懂了,但是一个月后又忘记了,或者碰到问题才发现之前即使觉得看懂了的东西实际没懂所以这篇文章希望解决书本知识到实践的贯通,希望把网络概念之间的联系通过实践来组织起来最近客户环境碰到一个网络ping不通的问题,折腾了一周,所以记录一下当时的网络链路是(大概是这样,略有简化):容器1->容器1转载 2021-02-13 21:06:18 · 511 阅读 · 1 评论 -
tcp与ip学习资料
https://tools.ietf.org/html/rfc1180原创 2021-02-13 20:49:36 · 76 阅读 · 0 评论 -
TCP-- 最经典的TCP性能问题
就是要你懂 TCP-- 最经典的TCP性能问题问题描述某个PHP服务通过Nginx将后面的tair封装了一下,让其他应用可以通过http协议访问Nginx来get、set 操作tair上线后测试一切正常,每次操作几毫秒,但是有一次有个应用的value是300K,这个时候set一次需要300毫秒以上。 在没有任何并发压力单线程单次操作也需要这么久,这个延迟是没有道理和无法接受的。问题的原因是因为TCP协议为了做一些带宽利用率、性能方面的优化,而做了一些特殊处理。比如Delay Ack和Na转载 2021-02-13 20:40:06 · 655 阅读 · 0 评论 -
TCP 通过案例来学习 MSS、MTU
最近要通过Docker的方式把产品部署到客户机房, 过程中需要部署一个hbase集群,hbase总是部署失败(在我们自己的环境没有问题) 发现hbase卡在同步文件,人工登上hbase 所在的容器中看到在hbase节点之间scp同步一些文件的时候,同样总是失败(稳定重现) 手工尝试scp那些文件,发现总是在传送某个文件的时候scp卡死了 尝试单独scp这个文件依然卡死 在这个容器上scp其它文件没问题 换一个容器scp这个文件没问题分析过程实在很难理解为什么单单这个文件在这个容器上scp就卡转载 2021-02-13 20:18:40 · 333 阅读 · 0 评论 -
关于TCP 半连接队列和全连接队列
问题描述JAVA的client和server,使用socket通信。server使用NIO。1.间歇性的出现client向server建立连接三次握手已经完成,但server的selector没有响应到这连接。2.出问题的时间点,会同时有很多连接出现这个问题。3.selector没有销毁重建,一直用的都是一个。4.程序刚启动的时候必会出现一些,之后会间歇性出现。分析问题正常TCP建连接三次握手过程:● 第一步:client 发送 syn 到server 发起握手;● 第二步:serv转载 2021-02-13 20:08:32 · 279 阅读 · 1 评论 -
TCP -- 握手和挥手
看过太多tcp相关文章,但是看完总是不过瘾,似懂非懂,反复考虑过后,我觉得是那些文章太过理论,看起来没有体感,所以吸收不了。 希望这篇文章能做到言简意赅,帮助大家透过案例来理解原理 tcp的特点tcp的特点大家基本都能说几句,面试的时候候选人也肯定会告诉你这些: 三次握手 四次挥手 可靠连接 丢包重传 但是我只希望大家记住一个核心的:tcp是可以可靠传输协议,它的所有特点都为这个可靠传输服务。那么tcp是怎么样来保障可靠传输呢...转载 2021-02-12 22:38:25 · 162 阅读 · 1 评论 -
http2问题以及http3的出现
http2的问题:队头阻塞http2 解决http队头阻塞问题,但是没有解决tcp队头阻塞问题http1.1引入了持久化连接:在一个tcp连接上可以传送多个http的请求和相应,减少建立连接和关闭连接的消耗和延迟http1.1在持久化连接上支持请求管道,就是在http响应到达之前,可以将多条请求放入队列,当第一条http请求通过网络流向服务器时,第二条和第三条请求也开始发送。再有网络延迟的情况下会出现一些问题,服务端必须按照与请求的顺序回送http响应,,如果响应返回发生延迟,那么后续的响应原创 2021-02-12 22:02:33 · 436 阅读 · 0 评论 -
http1.0 http1.1 http2.0 http3.0 超文本传输协议升级转换
关于HTTP/2,最近你可能没少听到过他,首先,如果你了解过Java 9的特性,那么你会发现在Java9中,提供了新的方式来处理HTTP调用,提供了新的HTTP Client,将替代HttpURLConnection,并提供对WebSocket和HTTP/2的支持。还有前两天刚刚发布的Spring Boot 2.0 的新特性中,也会看到,Spring Boot 2.0支持的Web容器中Tomcat、Undertow和Jetty均已支持HTTP/2。HTTP超文本传输协议(英文:HyperText T原创 2021-02-12 21:40:58 · 847 阅读 · 0 评论 -
JAVA实现长连接(含心跳检测)Demo
实现原理: 长连接的维持,是要客户端程序,定时向服务端程序,发送一个维持连接包的。 如果,长时间未发送维持连接包,服务端程序将断开连接。客户端: Client通过持有Socket的对象,可以随时(使用sendObject方法)发送Massage Object(消息)给服务端。 如果keepAliveDelay毫秒(程序中是转载 2017-12-10 19:57:06 · 914 阅读 · 0 评论 -
谈谈如何使用Netty开发实现高性能的RPC服务器(十三)
RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络,从远程计算机程序上请求服务,而不必了解底层网络技术的协议。说的再直白一点,就是客户端在不必知道调用细节的前提之下,调用远程计算机上运行的某个对象,使用起来就像调用本地的对象一样。目前典型的RPC实现框架有:Thrift(facebook开源)、Dubbo(alibaba开源)等等。RPC框架针转载 2016-11-29 17:18:54 · 1895 阅读 · 1 评论 -
基于Netty打造RPC服务器设计经验谈(十七)
自从在园子里,发表了两篇如何基于Netty构建RPC服务器的文章:谈谈如何使用Netty开发实现高性能的RPC服务器、Netty实现高性能RPC服务器优化篇之消息序列化 之后,收到了很多同行、园友们热情的反馈和若干个优化建议,于是利用闲暇时间,打算对原来NettyRPC中不合理的模块进行重构,并且增强了一些特性,主要的优化点如下:在原来编码解码器:JDK原生的对象序列化方式、kryo、he转载 2016-11-29 17:24:21 · 1482 阅读 · 0 评论 -
Netty构建分布式消息队列实现原理浅析(十六)
在本人的上一篇博客文章:Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇 中,重点向大家介绍了AvatarMQ主要构成模块以及目前存在的优缺点。最后以一个生产者、消费者传递消息的例子,具体演示了AvatarMQ所具备的基本消息路由功能。而本文的写作目的,是想从开发、设计的角度,简单的对如何使用Netty,构建分布式消息队列背后的技术细节、原理,进行一下简单的分析和说明。转载 2016-11-29 17:23:19 · 966 阅读 · 0 评论 -
Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇(十五)
目前业界流行的分布式消息队列系统(或者可以叫做消息中间件)种类繁多,比如,基于Erlang的RabbitMQ、基于Java的ActiveMQ/Apache Kafka、基于C/C++的ZeroMQ等等,都能进行大批量的消息路由转发。它们的共同特点是,都有一个消息中转路由节点,按照消息队列里面的专业术语,这个角色应该是broker。整个消息系统通过这个broker节点,进行从消息生产者Produce转载 2016-11-29 17:22:13 · 1282 阅读 · 0 评论 -
Netty实现高性能RPC服务器优化篇之消息序列化(十四)
在本人写的前一篇文章中,谈及有关如何利用Netty开发实现,高性能RPC服务器的一些设计思路、设计原理,以及具体的实现方案(具体参见:谈谈如何使用Netty开发实现高性能的RPC服务器)。在文章的最后提及到,其实基于该方案设计的RPC服务器的处理性能,还有优化的余地。于是利用周末的时间,在原来NettyRPC框架的基础上,加以优化重构,本次主要优化改造点如下: 1、NettyRPC中对R转载 2016-11-29 17:20:51 · 1436 阅读 · 0 评论 -
Google 的开源技术protobuf 简介与例子
今天来介绍一下“Protocol Buffers ”(以下简称protobuf)这个玩意儿。本来俺在构思“生产者/消费者模式 ”系列的下一个帖子:关于生产者和消费者之间的数据传输格式。由于里面扯到了protobuf,想想干脆单独开一个帖子算了。 ★protobuf是啥玩意儿? 为了照顾从没听说过的同学,照例先来扫盲一把。 首先,protobuf是一个开源 项 目(官方站点转载 2016-09-08 10:01:56 · 306 阅读 · 0 评论