原创 Netty源碼分析-ChunkedFile和ChunkedWriteHandler
/* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache License,
原创 Netty源碼分析-NioEventLoop
/* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache License,
原创 Netty源碼分析-SingleThreadEventExecutor
/* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache License,
原创 wireshark無法識別出TSL SSL數據包
最近發現使用wireshark打開HTTPS流量包,在協議部分看不到SSL/TLS,數據流量顯示如下截圖:
原创 Netty源碼分析-MessageToMessageEncoder
消息到消息的編碼器 /* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache
原创 Netty源碼分析-AbstractUnsafe(register註冊流程)
Netty當中的Channel,對外提供的API都封裝再了AbstractUnsafe對象裏面。 我們分析一個新的客戶端連接NioSocketChannel是如何完成註冊的。 一個新的Channel註冊到EventLoop上面,調
原创 Netty源碼分析-AdaptiveRecvByteBufAllocator
這個類的核心目的就是根據從底層socket讀取的字節數量,動態調整分配空間,以及是否繼續從socket讀取字節流 @Override public final void read() {
原创 Netty源碼分析-ChannelInitializer
ChannelInitializer是一個PPLine的初始化工具,可以往PPLine裏面設置Handler。 protected abstract void initChannel(C ch) throws Exception; 我們
原创 Centos6-IPtables配置端口轉發
開啓IP轉發 首先開啓IP轉發功能,默認是關閉的。 臨時修改: # echo 1 >/proc/sys/net/ipv4/ip_forward 修改過後就馬上生效,但如果系統重啓後則又恢復爲默認值0。 永久修改: vi /etc/sysc
原创 以太網數據幀(802.3)最大與最小長度
轉載 https://blog.csdn.net/farmwang/article/details/64131318 以太網(IEEE 802.3)幀格式: 1、前導碼:7字節0x55,一串1、0間隔,用於信號同步 2、幀起始定界符:1字
原创 Netty-源碼分析ByteBuf-readSlice和readRetainedSlice使用細節
返回從當前readerIndex開始的此緩衝區的子區域的新分片,並將readerIndex增加新分片的大小(=長度)。 另請注意,此方法將不會調用retain(),因此不會增加引用計數。 跟slice極爲相似,只是把原始緩衝區的rea
原创 Netty-TCP握手與揮手研究
客戶端TCP狀態裝換時序圖 服務器端狀態裝換時序圖 package com.ht.web.tcp; import java.io.IOException; import java.net.Socket; import ja
原创 Netty-DirectByteBuffery源碼分析
JVM參數 -XX:MaxDirectMemorySize=1024M 來設置可以使用的堆外內存大小。 代碼中可以使用VM工具類獲取 VM.maxDirectMemory() DirectByteBuffer源碼分析 Direc
原创 Netty-(interestOps & readInterestOp) != 0寫法的意義
//OP_READ = 1 00000001 //OP_WRITE = 4 00000100 //OP_CONNECT = 8 00001000 //OP_ACCEPT = 16 00010000 pro
原创 Netty-源碼分析WeakReference用例
在研究Netty源碼是大量使用了WeakReference引用,它是一個弱引用對象,當GC發生以後,會根據內存情況回收WeakReference引用的對象,屆時WeakReference這個對象會被加入到隊列中,進行最後的資源清理。