Socket IO與NIO(一)

7層網絡模型-OSI

Sending Computer:

Application應用層-->服務器

Presentation表示層 把應用的數據表示成對應的數據層面的東西 好比說字符串要轉換成Byte數據-->網絡

Session會話層 他主要目的是不一樣機器之間創建管理的做用,把不一樣機器之間創建一個會話的管理-->網站

Transport傳輸層 接受上一層的數據在必要的時候把數據進行分割並將這些數據交給網絡層,並保證這些數據段的有效性,有效性包括什麼呢?把你的數據有效的傳輸給對面。-->ui

Network網絡層 控制子網的運行,好比邏輯地址進行分組的傳輸,以及路由的選擇-->spa

Data Link數據鏈路層 做用是進行物理的地址尋找,同時將原始的bit流轉換爲邏輯傳輸路線。-->code

Physical物理層 進行機械的電子的定時的一個接口通訊上的原始的bit流傳輸,在這裏就是電信號的傳輸或者光信號的傳輸。接口

Receiving Computer

Physical物理層進程

Data Link數據鏈路層資源

Network網絡層路由

Transport傳輸層

Session會話層

Presentation表示層

Application應用層

基礎層:物理層、數據鏈路層、網絡層

傳輸層:TCP-UDP協議層、Socket

高級層:會話層、表示層、應用層

網絡模型-對應關係

OSI Model Layers

TCP/IP Protocol Architecture Layers

TCP/IP Protocol Suite(Telnet FTP SMTP DNS路由 RIP路由 SNMP是個管理層面的東西 用來進行你下屬的鏈接設備之間消息的做用)

Telnet FTP SMTP這三個用的是TCP

DNS RIP SNMP這三個用的是UDP

IP這部分包括ARP IGMP ICMP

網絡層有 Ethernet、 Token Ring、Frame Relay、ATM

Socket與TCP、UDP

Socket就是對TCP、UDP進行的封裝

什麼是Socket?

簡單來講就是IP地址與端口的結合協議(RFC 793),是一種地址與端口結合的描述協議。 Socket是TCP/IP協議相關API的總稱;是網絡API的集合實現。

Socket的做用與組成

在網絡傳輸中用於惟一標識兩個端點之間的連接。 端點包括(IP+Port),就比如IP是你的家 端口是你家的窗戶,你臥室的窗戶和對面女神房子的臥室窗戶進行連接,這時你就能夠進行對話。 4個要素:客戶端地址、客戶端端口、服務器地址、服務器端口。

Socket的傳輸原理

IP address + Port number = Socket

Socket 之 TCP

TCP是面向鏈接的通訊協議。

經過3次握手創建鏈接,通信完成時要拆除鏈接。好比你要和你的女神說話,你首先要問他一下有沒有空 可不能夠和你說會話,而後女神說有空, 那麼這時候纔會進行到第三次說好了 咱們進行鏈接了 開始談話。拆除鏈接就是說我要走了,對面就說好 那你走吧,而後你說我真走了,而後對面 好 你走吧,最後你走了 他斷開了 他也再也不關注你的窗戶了。 因爲TCP是面向鏈接的,因此只能用於端到端的通信。意思是你在和的女神進行交流的時候,你是不能去看其餘人的,這就是TCP的通訊,你在某一個 時刻 你只能鏈接到他的某個端口。

Socket 之 UDP

UDP是面向無鏈接的通信協議,不須要鏈接。

UDP數據包括目的端口號和源端口號信息,意思是UDP裏面涵蓋了目標端口號和你本身的一個端口號。好比你如今要說一句話對你的女神講,這時候你的女神 是不在的,你可能說給了他的媽媽,你說我想要對某某人說,我喜歡你這句話,首先你說這叫話的時候,你媽媽做爲一個轉接者,他給她女兒講的時候 怎麼說呢,某某男生對你說了我喜歡你這句話。 因爲通訊是不須要鏈接的,因此能夠實現廣播發送,並不侷限於端到端。假如說你是一個老師,如今要發一個通知到你的班,你是一個個的找學生對 他說某一個安排呢,仍是說你上課的時候對着全班說一下這樣來的好,這是UDP和TCP最大的區別。

TCP傳輸圖解: 首先是進行一個TCP數據的傳輸發送,同時他會收到一條TCP的回覆(ACK)表明這個數據收到了,這個回覆不是你來完成的,而是TCP層面 數據層面已經 完成了這個封裝。當你要發送一個數據到服務器的時候,其實這條數據只有兩種狀態,一種是發送成功,一種是發送失敗,這有這兩種狀態。

UDP傳輸圖解: UDP只管發送數據,他無論回送。

Client-Server Application:

TCP/IP協議中,兩個進程間的主要模式爲:CS模型。

主要目的:協議網絡中的計算機資源、服務器模式、進程間數據共享。

常見的:FTP、SMTP、HTTP

報文段:

報文段是指TCP/IP協議網絡傳輸過程當中,起着路由導航做用。

用於查詢各個網絡路由網段、IP地址、交換協議等IP數據包。

報文段充當整個TCP/IP協議數據包的導航路由功能。

報文在傳輸過程當中會不斷地封裝成 分組 包 幀來傳輸。當你的數據太大的時候,它會把你一批大的數據轉換成組或包或幀,而後解析成一個一個 數據點,而後經過小的數據點傳輸過去。例如你想發送我須要先發送一部分過去,再會送這部分是否成功。在這整個過程中,他會把你的 整個buffer解析成不少不少的小的buffer,而後在前面加上一個小的報文頭,而後進行一個批量的發送,每一批數據都有必定的校驗做用。 封裝方式就是添加一些控制信息組成的首部,即報文頭。

傳輸協議:

協議顧名思義,一種規定,約束。

約定大於配置,在網絡傳輸中依然適用;網絡的傳輸流程是健壯的 穩定的,得益於基礎的協議構成。 簡單來講:A->B的傳輸數據,B能識別,反之B->A的傳輸數據A也能識別,這就是協議。例如你去訪問一個網站,首先是須要輸入網站的地址,而後 他須要進行一個網站的地址查詢,而後去訪問這個網站對應的服務器IP+端口號,而後網站會返回他的首頁信息給你,這個過程依次往下進行 交互,因此這樣的過程就稱之爲傳輸協議。

MAC地址:

Media Access Conntrol或者Medium Access Control。

意譯爲媒體訪問控制,或稱爲物理地址、硬件地址。

用來定義網絡設備的位置。

形如:44-45-53-54-00-00;與身份證相似。

IP地址:

互聯網協議地(Internet Protocol Address,又譯爲國際協議地址),縮寫爲IP地址(IP Address)。

是分配給網絡上使用國際協議的設備的數字標籤。

常見的IP地址分爲IPv4與IPv6兩大類。

IP地址由32位二進制組成,常以XXX.XXX.XXX.XXX形式表現,每組XXX表明小於或等於255的10進制數。 分爲A、B、C、D、E五大類,其中E類屬於特殊保留地址。

IP地址-IPv4:

總數量:4,294,967,296(即232):42億個;最終於2011年2月3日用盡。

若是主機號全是1,那麼這個地址爲直接廣播地址。表明整個因特網的廣播地址,若是你往這個地址發信息他會被局域網的防火牆攔截。

IP地址 255.255.255.255 爲受限的廣播地址。表明你局域網的廣播地址。

IP地址-IPv6:

總共有128位長,IPv6地址的表達形式,通常採用32個16進制數,也能夠想象爲1632個。

由兩個邏輯部分組成:一個64位的網絡前綴和一個64位的主機地址,主機地址一般根據物理地址自動生成,叫作EUI-64(或者64位擴展惟一標識)。

IPv4轉換爲IPv6必定可行,IPv6轉換爲IPv4不必定可行。

端口:

若是把IP地址比做一間房子,端口就是出入這間房子的門或者窗戶。

在不一樣的窗戶後有不一樣的人,房子中的用戶與外界交流的出口。

外界鴿子(信息)飛到不一樣的窗口也就是給不一樣的人傳遞信息。

0到1023號端口以及1024到49151號端口都是特殊端口。

特殊端口:

FTP 20,21 TCP

SSH 22 TCP

Telnet 23 TCP

SMTP 25 TCP

DNS 53 UDP

TFTP 69 UDP

HTTP 80 TCP

POP3 110 TCP

IMAP4 143 TCP

HTTPS 443 TCP

計算機之間依照互聯網傳輸層TCP/IP協議的協議通訊,不一樣的協議都對應不一樣的端口。

49152到65535號端口屬於「動態端口」範圍,沒有端口能夠被正式註冊佔用。

問題:端口總數65536,鏈接能創建多少個?65536個?

不是,65536表明的是你本地電腦的端口號。對於服務器而言端口是複用的,好比說服務器他監聽80端口,不管多少個客戶端來,他都是經過80號端口進行通訊,不會建立而外多餘的端口。

數據傳輸層:

Data -->
                                        UDP header + UDP data -->
                           IP header    +     IP data  -->
            Frame header            + Frame data               + Frame footer
複製代碼

遠程服務器:

局域網:通常而言,家裏的環境以及公司相互電腦之間環境都屬於局域網。

我與大家電腦之間是屬於互聯網,而不是局域網。

默認:個人電腦沒法直接連接到大家的電腦。由於你的電腦在你的局域網中,個人電腦在我局域網中,你的電腦IP地址不是互聯網的IP地址,而是 你的局域網IP地址,個人IP同樣。 兩個局域網之間內部電腦要進行通訊須要一臺擁有外網IP的服務器,他的地址是固定的,並且是對外全部的設備都有效的一個IP地址, 你的電腦鏈接到服務器,而後服務器也鏈接到個人電腦。

相關文章
相關標籤/搜索