1、ChannelOption.SO_BACKLOG
? ? ? ? ? ChannelOption.SO_BACKLOG對應(yīng)的是tcp/ip協(xié)議listen函數(shù)中的backlog參數(shù),函數(shù)listen(int socketfd,int backlog)用來初始化服務(wù)端可連接隊列,服務(wù)端處理客戶端連接請求是順序處理的续捂,所以同一時間只能處理一個客戶端連接,多個客戶端來的時候,服務(wù)端將不能處理的客戶端連接請求放在隊列中等待處理娩鹉,backlog參數(shù)指定了隊列的大小
2、ChannelOption.SO_REUSEADDR
? ? ? ? ? ?ChanneOption.SO_REUSEADDR對應(yīng)于套接字選項中的SO_REUSEADDR稚伍,這個參數(shù)表示允許重復(fù)使用本地地址和端口弯予,
? ? ? ? ? ?比如,某個服務(wù)器進程占用了TCP的80端口進行監(jiān)聽个曙,此時再次監(jiān)聽該端口就會返回錯誤锈嫩,使用該參數(shù)就可以解決問題,該參數(shù)允許共用該端口垦搬,這個在服務(wù)器程序中比較常使用呼寸,
? ? ? ? ? ?比如某個進程非正常退出,該程序占用的端口可能要被占用一段時間才能允許其他進程使用猴贰,而且程序死掉以后对雪,內(nèi)核一需要一定的時間才能夠釋放此端口,不設(shè)置SO_REUSEADDR就無法正常使用該端口米绕。
3瑟捣、ChannelOption.SO_KEEPALIVE
? ? ? ? ? ?Channeloption.SO_KEEPALIVE參數(shù)對應(yīng)于套接字選項中的SO_KEEPALIVE馋艺,該參數(shù)用于設(shè)置TCP連接,當設(shè)置該選項以后迈套,連接會測試鏈接的狀態(tài)丈钙,這個選項用于可能長時間沒有數(shù)據(jù)交流的連接。當設(shè)置該選項以后交汤,如果在兩小時內(nèi)沒有數(shù)據(jù)的通信時雏赦,TCP會自動發(fā)送一個活動探測數(shù)據(jù)報文。
4芙扎、ChannelOption.SO_SNDBUF和ChannelOption.SO_RCVBUF
? ? ? ? ? ?ChannelOption.SO_SNDBUF參數(shù)對應(yīng)于套接字選項中的SO_SNDBUF星岗,ChannelOption.SO_RCVBUF參數(shù)對應(yīng)于套接字選項中的SO_RCVBUF這兩個參數(shù)用于操作接收緩沖區(qū)和發(fā)送緩沖區(qū)的大小,接收緩沖區(qū)用于保存網(wǎng)絡(luò)協(xié)議站內(nèi)收到的數(shù)據(jù)戒洼,直到應(yīng)用程序讀取成功俏橘,發(fā)送緩沖區(qū)用于保存發(fā)送數(shù)據(jù),直到發(fā)送成功圈浇。
5寥掐、ChannelOption.SO_LINGER
? ? ? ? ? ?ChannelOption.SO_LINGER參數(shù)對應(yīng)于套接字選項中的SO_LINGER,Linux內(nèi)核默認的處理方式是當用戶調(diào)用close()方法的時候,函數(shù)返回磷蜀,在可能的情況下召耘,盡量發(fā)送數(shù)據(jù),不一定保證會發(fā)生剩余的數(shù)據(jù)褐隆,造成了數(shù)據(jù)的不確定性污它,使用SO_LINGER可以阻塞close()的調(diào)用時間,直到數(shù)據(jù)完全發(fā)送
6庶弃、ChannelOption.TCP_NODELAY
? ? ? ? ? ?ChannelOption.TCP_NODELAY參數(shù)對應(yīng)于套接字選項中的TCP_NODELAY,該參數(shù)的使用與Nagle算法有關(guān),Nagle算法是將小的數(shù)據(jù)包組裝為更大的幀然后進行發(fā)送衫贬,而不是輸入一次發(fā)送一次,因此在數(shù)據(jù)包不足的時候會等待其他數(shù)據(jù)的到了,組裝成大的數(shù)據(jù)包進行發(fā)送歇攻,雖然該方式有效提高網(wǎng)絡(luò)的有效負載固惯,但是卻造成了延時,而該參數(shù)的作用就是禁止使用Nagle算法缴守,使用于小數(shù)據(jù)即時傳輸葬毫,于TCP_NODELAY相對應(yīng)的是TCP_CORK,該選項是需要等到發(fā)送的數(shù)據(jù)量最大的時候斧散,一次性發(fā)送數(shù)據(jù)供常,適用于文件傳輸摊聋。
7鸡捐、IP_TOS
IP參數(shù),設(shè)置IP頭部的Type-of-Service字段麻裁,用于描述IP包的優(yōu)先級和QoS選項箍镜。
8源祈、ALLOW_HALF_CLOSURE
Netty參數(shù),一個連接的遠端關(guān)閉時本地端是否關(guān)閉色迂,默認值為False香缺。值為False時,連接自動關(guān)閉歇僧;為True時图张,觸發(fā)ChannelInboundHandler的userEventTriggered()方法箭启,事件為ChannelInputShutdownEvent佛嬉。