網絡編程基礎 編程
計算機網絡功能主要包括實現資源共享,實現數據信息的快速傳遞。
OSI七層模型
>制定組織: ISO(國際標準化組織)
>做用:使網絡通訊工做流程標準化
>應用層 : 提供用戶服務,具體功能應用程序實現
>表示層 : 數據的壓縮優化加密
>會話層 : 創建用戶級的鏈接,選擇適當的傳輸服務
>傳輸層 : 提供傳輸服務
>網絡層 : 路由選擇,網絡互聯
>鏈路層 : 進行數據交換,控制具體數據的發送
>物理層 : 提供數據傳輸的硬件保證,網卡接口,傳輸介質
>優勢
>1. 創建了統一的工做流程
>2. 分部清晰,各司其職,每一個步驟分工明確
>3. 下降了各個模塊之間的耦合度,便於開發
四層模型(TCP/IP模型)
背景 : 實際工做中工程師沒法徹底按照七層模型要求操做,逐漸演化爲更符合實際狀況的四層
服務器
數據傳輸過程
1. 發送端由應用程序發送消息,逐層添加首部信息,最終在物理層發送消息包。
2. 發送的消息通過多個節點(交換機,路由器)傳輸,最終到達目標主機。
3. 目標主機由物理層逐層解析首部消息包,最終到應用程序呈現消息。
網絡協議
>在網絡數據傳輸中,都遵循的規定,包括創建什麼樣的數據結構,什麼樣的特殊標誌等。
網絡基礎概念
* IP地址
>功能:肯定一臺主機的網絡路由位置
>查看本機網絡地址命令: ifconfig
>結構
>>IPv4 點分十進制表示 172.40.91.185 每部分取值範圍0--255
>>IPv6 128位 擴大了地址範圍
* 域名
>定義: 給網絡服務器地址起的名字
>做用: 方便記憶,表達必定的含義
>ping [ip] : 測試和某個主機是否聯通 網絡
* 端口號(port)
>做用:端口是網絡地址的一部分,用於區分主機上不一樣的網絡應用程序。
>特色:一個系統中的應用監聽端口不能重複
>取值範圍: 1 -- 65535
>>1--1023 系統應用或者大衆程序監聽端口
>>1024--65535 自用端口
傳輸層服務
面向鏈接的傳輸服務(基於TCP協議的數據傳輸)
1. 傳輸特徵 : 提供了可靠的數據傳輸,可靠性指數據傳輸過程當中無丟失,無失序,無差錯,無重複。
2. 實現手段 : 在通訊前須要創建數據鏈接,通訊結束要正常斷開鏈接。
> 三次握手(創建鏈接)
>>客戶端向服務器發送消息報文請求鏈接
>>服務器收到請求後,回覆報文肯定能夠鏈接
>>客戶端收到回覆,發送最終報文鏈接創建
>四次揮手(斷開鏈接)
>>主動方發送報文請求斷開鏈接
>>被動方收到請求後,當即回覆,表示準備斷開
>>被動方準備就緒,再次發送報文表示能夠斷開
>>主動方收到肯定,發送最終報文完成斷開
數據結構
3. 適用狀況 : 對數據傳輸準確性有明確要求,傳數文件較大,須要確保可靠性的狀況。好比:網頁獲取,文件下載,郵件收發。
面向無鏈接的傳輸服務(基於UDP協議的數據傳輸)
1. 傳輸特色 : 不保證傳輸的可靠性,傳輸過程沒有鏈接和斷開,數據收發自由隨意。
2. 適用狀況 : 網絡較差,對傳輸可靠性要求不高。好比:網絡視頻,羣聊,廣播
測試