#1、TCP、UDP、IP CP/IP協議棧主要分爲四層:應用層、傳輸層、網絡層、數據鏈路層,每層都有相應的協議,以下圖: java
TCP協議是面向鏈接、保證高可靠性(數據無丟失、數據無失序、數據無錯誤、數據無重複到達)傳輸層協議。網絡
UDP協議也是傳輸層協議,它是無鏈接,不保證可靠的傳輸層協議。socket
#2、NIO Java NIO和IO之間的主要差異:線程
IO NIO 面向流 面向緩衝 阻塞IO 非阻塞IO 無 選擇器
Java NIO: Channels and Buffers(通道和緩衝區)code
標準的IO基於字節流和字符流進行操做的,而NIO是基於通道(Channel)和緩衝區(Buffer)進行操做,數據老是從通道讀取到緩衝區中,或者從緩衝區寫入到通道中。server
Java NIO: Non-blocking IO(非阻塞IO)事件
Java NIO能夠讓你非阻塞的使用IO,例如:當線程從通道讀取數據到緩衝區時,線程仍是能夠進行其餘事情。當數據被寫入到緩衝區時,線程能夠繼續處理它。從緩衝區寫入通道也相似。圖片
Java NIO: Selectors(選擇器)ip
Java NIO引入了選擇器的概念,選擇器用於監聽多個通道的事件(好比:鏈接打開,數據到達)。所以,單個的線程能夠監聽多個數據通道。get
Java NIO系列文章: