Python第十课 网络管理
一、常見(jiàn)的網(wǎng)絡(luò)物理組件
路由器
交換機(jī)(RJ-45連接器和pc)
pc
pc
交換機(jī)(網(wǎng)絡(luò)接口卡)
pc
pc
二、網(wǎng)絡(luò)應(yīng)用程序
1、Web瀏覽器(chrome、IE、Firefox等)
2、即時(shí)消息(QQ、微信、釘釘?shù)?#xff09;
3、電子郵件(Outlook、foxmail等)
4、協(xié)作(視頻會(huì)議、VNC、Netmeeting、WebEx等)
5、web網(wǎng)絡(luò)服務(wù)(apache、nginx,IIS)
6、文件網(wǎng)絡(luò)服務(wù)(ftp、nfs、samba)
7、數(shù)據(jù)庫(kù)服務(wù)(MySQL、MariaDB、MongoDB)
8、中間件服務(wù)(Tomcat、JBoss)
9、安全服務(wù)(Netfilter)
三、用戶(hù)應(yīng)用程序?qū)W(wǎng)絡(luò)的影響
1、批處理應(yīng)用程序
1、FTP、TFTP、庫(kù)存更新
2、無(wú)需直接人工交互
3、帶寬很重要,但并非關(guān)鍵因素
2、交互式應(yīng)用程序
1、庫(kù)存查詢(xún)、數(shù)據(jù)庫(kù)更新
2、人機(jī)交互
3、因?yàn)橛脩?hù)需等待響應(yīng),所以響應(yīng)時(shí)間很重要,但并非關(guān)鍵性因素,除非等待很長(zhǎng)時(shí)間
3、實(shí)施應(yīng)用程序
1、VoIP、視頻
2、人與人的交互
3、端到端的延遲至關(guān)重要
四、網(wǎng)絡(luò)的特征
1、速度
2、成本
3、安全性
4、可用性
5、可擴(kuò)展性
6、可靠性
7、拓?fù)?br />五、物理拓?fù)浞诸?lèi)
1、物理拓?fù)涿枋隽宋锢碓O(shè)備的布線(xiàn)方式
1、總線(xiàn)拓?fù)?br />總線(xiàn)拓?fù)涞木W(wǎng)絡(luò)結(jié)構(gòu)是將網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)設(shè)備用一根總線(xiàn)(如同軸電纜等)掛接起來(lái),實(shí)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)的功能。
任何連接在總線(xiàn)上的計(jì)算機(jī)都能在總線(xiàn)上發(fā)信號(hào),并且所有計(jì)算機(jī)都能接收信號(hào)。
六、了解主機(jī)到主機(jī)通信
1、舊模型
1、專(zhuān)有產(chǎn)品
2、由一個(gè)廠(chǎng)商控制應(yīng)用程序和嵌入的軟件
2、基于標(biāo)準(zhǔn)的模型
1、多廠(chǎng)商軟件
2、分層方法
七、網(wǎng)絡(luò)模型分層
OSI 模型的七層解構(gòu)
降低復(fù)雜性、標(biāo)準(zhǔn)化接口、簡(jiǎn)化模塊化設(shè)計(jì)、確保技術(shù)的互操作性、加快發(fā)展速度、簡(jiǎn)化教學(xué)
分層名稱(chēng)
功能
每層功能概覽
7 應(yīng)用層
(網(wǎng)絡(luò)進(jìn)程訪(fǎng)問(wèn)應(yīng)用層)
為應(yīng)用程序進(jìn)程(例如電子郵件、文件傳輸和終端仿真
提供網(wǎng)絡(luò)服務(wù))
提供用戶(hù)身份驗(yàn)證
針對(duì)每個(gè)應(yīng)用的協(xié)議
電子郵件<-------------------->電子郵件協(xié)議
遠(yuǎn)程登錄<-------------------->遠(yuǎn)程登錄協(xié)議
文件傳輸<-------------------->文件傳輸協(xié)議
6 表示層(數(shù)據(jù)表示)
確保接收系統(tǒng)可以讀出該數(shù)據(jù)
格式化數(shù)據(jù)
構(gòu)建數(shù)據(jù)
協(xié)商用于應(yīng)用層的數(shù)據(jù)傳輸語(yǔ)法
提供加密
(o′┏▽┓`o) ---網(wǎng)絡(luò)標(biāo)準(zhǔn)格式--->?????????
接收不同表現(xiàn)形式的信息,如文字流、圖像、聲音等
5 會(huì)話(huà)層 (主機(jī)間通信)
建立、管理和終止在應(yīng)用程序間的會(huì)話(huà)
何時(shí)建立連接,何時(shí)斷開(kāi)連接以及保持多久的連接
設(shè)備<------------------------------------>設(shè)備
4 傳輸層(傳輸問(wèn)題)
確保數(shù)據(jù)傳輸?shù)目煽啃?br />建立、維護(hù)和終止虛擬電路
通過(guò)錯(cuò)誤檢測(cè)和恢復(fù)
信息流控制來(lái)保障可靠性
是否有數(shù)據(jù)丟失
設(shè)備--------->--------->---------->設(shè)備
3 網(wǎng)絡(luò)層(數(shù)據(jù)傳輸)
路由數(shù)據(jù)包
選擇傳遞數(shù)據(jù)的最佳路徑
支持邏輯尋址和路徑選擇
經(jīng)過(guò)哪個(gè)路由器傳送到目標(biāo)地址
|----路由器-------路由器
設(shè)備----路由器------路由器----路由器----設(shè)備
2 數(shù)據(jù)鏈路層(訪(fǎng)問(wèn)介質(zhì))
定義如何格式化數(shù)據(jù)以便進(jìn)行傳輸以及如何控制對(duì)網(wǎng)絡(luò)
的訪(fǎng)問(wèn)
支持錯(cuò)誤檢測(cè)
數(shù)據(jù)幀--------->0101--------->比特流
數(shù)據(jù)幀和比特流之間的轉(zhuǎn)換
設(shè)備----|------|-------->設(shè)備
|分段轉(zhuǎn)發(fā)|
1 物理層(二進(jìn)制傳輸)
為啟動(dòng)、維護(hù)以及關(guān)閉物理鏈路定義了電氣規(guī)范,機(jī)械
規(guī)范,過(guò)程規(guī)范和功能規(guī)范
0101---------0101
比特流與電子信號(hào)之間的切換
連接器與網(wǎng)線(xiàn)的規(guī)格
數(shù)據(jù)封裝
八、PDU
1、PDU:Protocol Data Unit,協(xié)議數(shù)據(jù)單元,對(duì)等層次之間傳遞的數(shù)據(jù)單位
2、物理層的PDU是數(shù)據(jù)位 bit
3、數(shù)據(jù)鏈路層的PDU是數(shù)據(jù)幀 frame
4、網(wǎng)絡(luò)層的PDU是數(shù)據(jù)包 packet
5、傳輸層的PDU是數(shù)據(jù)段segment
6、其他更高層次的PDU是消息 message
九、三種通訊模式
1、單播
2、組播
3、廣播
十、TCP包頭
1、源端口、目標(biāo)端口:計(jì)算機(jī)上的進(jìn)程要和其他進(jìn)程通信是要通過(guò)計(jì)算機(jī)端口的,而一個(gè)算機(jī)端口某個(gè)時(shí)刻只能被一個(gè)進(jìn)程占用,所以通過(guò)指定源端口和目標(biāo)端口,就可以知道是哪兩個(gè)進(jìn)程需要通信。源端口、目標(biāo)端口是用16位表示的,可推算計(jì)算機(jī)的端口個(gè)數(shù)為2^16個(gè)
2、序列號(hào):表示本報(bào)文段所發(fā)送數(shù)據(jù)的第一個(gè)字節(jié)的編號(hào)。在TCP連接中所傳送的字節(jié)流的每一個(gè)字節(jié)都會(huì)按順序編號(hào)。由于序列號(hào)由32位表示,所以每2^32個(gè)字節(jié),就會(huì)出現(xiàn)序列號(hào)回繞,再次從 0 開(kāi)始
3、確認(rèn)號(hào):表示接收方期望收到發(fā)送方下一個(gè)報(bào)文段的第一個(gè)字節(jié)數(shù)據(jù)的編號(hào)。也就是告訴發(fā)送發(fā):我希望你(指發(fā)送方)下次發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)數(shù)據(jù)的編號(hào)是這個(gè)確認(rèn)號(hào)
4、數(shù)據(jù)偏移:表示TCP報(bào)文段的首部長(zhǎng)度,共4位,由于TCP首部包含一個(gè)長(zhǎng)度可變的選項(xiàng)部分,需要指定這個(gè)TCP報(bào)文段到底有多長(zhǎng)。它指出 TCP 報(bào)文段的數(shù)據(jù)起始處距離 TCP 報(bào)文段的起始處有多遠(yuǎn)。該字段的單位是32位(即4個(gè)字節(jié)為計(jì)算單位),4位二進(jìn)制最大表示15,所以數(shù)據(jù)偏移也就是TCP首部最大60字節(jié)
十一、TCP包頭
1、URG:表示本報(bào)文段中發(fā)送的數(shù)據(jù)是否包含緊急數(shù)據(jù)。后面的緊急指針字段(urgent pointer)只有當(dāng)URG=1時(shí)才有效
2、ACK:表示是否前面的確認(rèn)號(hào)字段是否有效。ACK=1,表示有效。只有當(dāng)ACK=1時(shí),前面的確認(rèn)號(hào)字段才有效。TCP規(guī)定,連接建立后,ACK必須為1,帶ACK標(biāo)志的TCP報(bào)文段稱(chēng)為確認(rèn)報(bào)文段
3、PSH:提示接收端應(yīng)用程序應(yīng)該立即從TCP接收緩沖區(qū)中讀走數(shù)據(jù),為接收后續(xù)數(shù)據(jù)騰出空間。如果為1,則表示對(duì)方應(yīng)當(dāng)立即把數(shù)據(jù)提交給上層應(yīng)用,而不是緩存起來(lái),如果應(yīng)用程序不將接收到的數(shù)據(jù)讀走,就會(huì)一直停留在TCP接收緩沖區(qū)中
4、RST:如果收到一個(gè)RST=1的報(bào)文,說(shuō)明與主機(jī)的連接出現(xiàn)了嚴(yán)重錯(cuò)誤(如主機(jī)崩潰),必須釋放連接,然后再重新建立連接。或者說(shuō)明上次發(fā)送給主機(jī)的數(shù)據(jù)有問(wèn)題,主機(jī)拒絕響應(yīng),帶RST標(biāo)志的TCP報(bào)文段稱(chēng)為復(fù)位報(bào)文段
5、SYN:在建立連接時(shí)使用,用來(lái)同步序號(hào)。當(dāng)SYN=1,ACK=0時(shí),表示這是一個(gè)請(qǐng)求建立連接的報(bào)文段;當(dāng)SYN=1,ACK=1時(shí),表示對(duì)方同意建立連接。SYN=1,說(shuō)明這是一個(gè)請(qǐng)求建立連接或同意建立連接的報(bào)文。只有在前兩次握手中SYN才置為1,帶SYN標(biāo)志的TCP報(bào)文段稱(chēng)為同步報(bào)文段
6、FIN:表示通知對(duì)方本端要關(guān)閉連接了,標(biāo)記數(shù)據(jù)是否發(fā)送完畢。如果FIN=1,即告訴對(duì)方:“我的數(shù)據(jù)已經(jīng)發(fā)送完畢,你可以釋放連接了”,帶FIN標(biāo)志的TCP報(bào)文段稱(chēng)為結(jié)束報(bào)文段
? 窗口大小:表示現(xiàn)在允許對(duì)方發(fā)送的數(shù)據(jù)量,也就是告訴對(duì)方,從本報(bào)文段的確認(rèn)號(hào)開(kāi)始允許對(duì)方發(fā)送的數(shù)據(jù)量
? 校驗(yàn)和:提供額外的可靠性
? 緊急指針:標(biāo)記緊急數(shù)據(jù)在數(shù)據(jù)字段中的位置
? 選項(xiàng)部分:其最大長(zhǎng)度可根據(jù)TCP首部長(zhǎng)度進(jìn)行推算。TCP首部長(zhǎng)度用4位表示,選項(xiàng)部分最長(zhǎng)為:(2^4-1)*4-20=40字節(jié)
常見(jiàn)選項(xiàng):
? 最大報(bào)文段長(zhǎng)度:Maxium Segment Size,MSS
? 窗口擴(kuò)大:Windows Scaling
? 時(shí)間戳: Timestamps
1 最大報(bào)文段長(zhǎng)度指明自己期望對(duì)方發(fā)送TCP報(bào)文段時(shí)那個(gè)數(shù)據(jù)字段的長(zhǎng)度。默認(rèn)是536字節(jié)。數(shù)據(jù)字段的長(zhǎng)度加上TCP首部的長(zhǎng)度才等于整個(gè)TCP報(bào)文段的長(zhǎng)度。MSS不宜設(shè)的太大也不宜設(shè)的太小。若選擇太小,極端情況下,TCP報(bào)文段只含有1字節(jié)數(shù)據(jù),在IP層傳輸?shù)臄?shù)據(jù)報(bào)的開(kāi)銷(xiāo)至少有40字節(jié)(包括TCP報(bào)文段的首部和IP數(shù)據(jù)報(bào)的首部)。這樣,網(wǎng)絡(luò)的利用率就不會(huì)超過(guò)1/41。若TCP報(bào)文段非常長(zhǎng),那么在IP層傳輸時(shí)就有可能要分解成多個(gè)短數(shù)據(jù)報(bào)片。在終點(diǎn)要把收到的各個(gè)短數(shù)據(jù)報(bào)片裝配成原來(lái)的TCP報(bào)文段。當(dāng)傳輸出錯(cuò)時(shí)還要進(jìn)行重傳,這些也都會(huì)使開(kāi)銷(xiāo)增大。因此MSS應(yīng)盡可能大,只要在IP層傳輸時(shí)不需要再分片就行。在連接建立過(guò)程中,雙方都把自己能夠支持的MSS寫(xiě)入這一字段。 MSS只出現(xiàn)在SYN報(bào)文中。即:MSS出現(xiàn)在SYN=1的報(bào)文段中
2 窗口擴(kuò)大
為了擴(kuò)大窗口,由于TCP首部的窗口大小字段長(zhǎng)度是16位,所以其表示的最大數(shù)是65535。但是隨著時(shí)延和帶寬比較大的通信產(chǎn)生(如衛(wèi)星通信),需要更大的窗口來(lái)滿(mǎn)足性能和吞吐率,所以產(chǎn)生了這個(gè)窗口擴(kuò)大選項(xiàng)
3 時(shí)間戳可以用來(lái)計(jì)算RTT(往返時(shí)間),發(fā)送方發(fā)送TCP報(bào)文時(shí),把當(dāng)前的時(shí)間值放入時(shí)間戳字段,接收方收到后發(fā)送確認(rèn)報(bào)文時(shí),把這個(gè)時(shí)間戳字段的值復(fù)制到確認(rèn)報(bào)文中,當(dāng)發(fā)送方收到確認(rèn)報(bào)文后即可計(jì)算出RTT。也可以用來(lái)防止回繞序號(hào)PAWS,也可以說(shuō)可以用來(lái)區(qū)分相同序列號(hào)的不同報(bào)文。因?yàn)樾蛄刑?hào)用32為表示,每2^32個(gè)序列號(hào)就會(huì)產(chǎn)生回繞,那么使用時(shí)間戳字段就很容易區(qū)分相同序列號(hào)的不同報(bào)文
十一、TCP三次握手
SYN-SENT同步已發(fā)送
LISTEN收聽(tīng)
SYN-RCVD同步收到
ESRAB-LISHED已建立連接
十二、TCP的四次揮手
十三、有限狀態(tài)機(jī)
? CLOSED 沒(méi)有任何連接狀態(tài)
? LISTEN 偵聽(tīng)狀態(tài),等待來(lái)自遠(yuǎn)方TCP端口的連接請(qǐng)求
? SYN-SENT 在發(fā)送連接請(qǐng)求后,等待對(duì)方確認(rèn)
? SYN-RECEIVED 在收到和發(fā)送一個(gè)連接請(qǐng)求后,等待對(duì)方確認(rèn)
? ESTABLISHED 代表傳輸連接建立,雙方進(jìn)入數(shù)據(jù)傳送狀態(tài)
? FIN-WAIT-1 主動(dòng)關(guān)閉,主機(jī)已發(fā)送關(guān)閉連接請(qǐng)求,等待對(duì)方確認(rèn)
? FIN-WAIT-2 主動(dòng)關(guān)閉,主機(jī)已收到對(duì)方關(guān)閉傳輸連接確認(rèn),等待對(duì)方發(fā)送關(guān)閉傳輸連接請(qǐng)求
? TIME-WAIT 完成雙向傳輸連接關(guān)閉,等待所有分組消失
? CLOSE-WAIT 被動(dòng)關(guān)閉,收到對(duì)方發(fā)來(lái)的關(guān)閉連接請(qǐng)求,并已確認(rèn)
? LAST-ACK 被動(dòng)關(guān)閉,等待最后一個(gè)關(guān)閉傳輸連接確認(rèn),并等待所有分組消失
? CLOSING 雙方同時(shí)嘗試關(guān)閉傳輸連接,等待對(duì)方確認(rèn)
? 客戶(hù)端先發(fā)送一個(gè)FIN給服務(wù)端,自己進(jìn)入了FIN_WAIT_1狀態(tài),這時(shí)等待接收服務(wù)端的報(bào)文,該報(bào)文會(huì)有三種可能:
? 只有服務(wù)端的ACK
? 只有服務(wù)端的FIN
? 基于服務(wù)端的ACK,又有FIN
? 1、只收到服務(wù)器的ACK,客戶(hù)端會(huì)進(jìn)入FIN_WAIT_2狀態(tài),后續(xù)當(dāng)收到服務(wù)端的FIN時(shí),回應(yīng)發(fā)送一個(gè)ACK,會(huì)進(jìn)入到TIME_WAIT狀態(tài),這個(gè)狀態(tài)會(huì)持續(xù)2MSL(TCP報(bào)文段在網(wǎng)絡(luò)中的最大生存時(shí)間,RFC 1122標(biāo)準(zhǔn)的建議值是2min).客戶(hù)端等待2MSL,是為了當(dāng)最后一個(gè)ACK丟失時(shí),可以再發(fā)送一次。因?yàn)榉?wù)端在等待超時(shí)后會(huì)再發(fā)送一個(gè)FIN給客戶(hù)端,進(jìn)而客戶(hù)端知道ACK已丟失
? 2、只有服務(wù)端的FIN時(shí),回應(yīng)一個(gè)ACK給服務(wù)端,進(jìn)入CLOSING狀態(tài),然后接收到服務(wù)端的ACK時(shí),進(jìn)入TIME_WAIT狀態(tài)
? 3、同時(shí)收到服務(wù)端的ACK和FIN,直接進(jìn)入TIME_WAIT狀態(tài)
十四:客戶(hù)端的典型狀態(tài)轉(zhuǎn)移
? 客戶(hù)端通過(guò)connect系統(tǒng)調(diào)用主動(dòng)與服務(wù)器建立連接connect系統(tǒng)調(diào)用首先給服務(wù)器發(fā)送一個(gè)同步報(bào)文段,使連接轉(zhuǎn)移到SYN_SENT狀態(tài)
? 此后connect系統(tǒng)調(diào)用可能因?yàn)槿缦聝蓚€(gè)原因失敗返回:
? 1、如果connect連接的目標(biāo)端口不存在(未被任何進(jìn)程監(jiān)聽(tīng)),或者該端口仍被處于TIME_WAIT狀態(tài)的連接所占用(見(jiàn)后文),則服務(wù)器將給客戶(hù)端發(fā)送一個(gè)復(fù)位報(bào)文段,connect調(diào)用失敗。
? 2、如果目標(biāo)端口存在,但connect在超時(shí)時(shí)間內(nèi)未收到服務(wù)器的確認(rèn)報(bào)文段,則connect調(diào)用失敗。
? connect調(diào)用失敗將使連接立即返回到初始的CLOSED狀態(tài)。如果客戶(hù)端成功收到服務(wù)器的同步報(bào)文段和確認(rèn),則connect調(diào)用成功返回,連接轉(zhuǎn)移至ESTABLISHED狀態(tài)
? 當(dāng)客戶(hù)端執(zhí)行主動(dòng)關(guān)閉時(shí),它將向服務(wù)器發(fā)送一個(gè)結(jié)束報(bào)文段,同時(shí)連接進(jìn)入FIN_WAIT_1狀態(tài)。若此時(shí)客戶(hù)端收到服務(wù)器專(zhuān)門(mén)用于確認(rèn)目的的確認(rèn)報(bào)文段,則連接轉(zhuǎn)移至FIN_WAIT_2狀態(tài)。當(dāng)客戶(hù)端處于FIN_WAIT_2狀態(tài)時(shí),服務(wù)器處于CLOSE_WAIT狀態(tài),這一對(duì)狀態(tài)是可能發(fā)生半關(guān)閉的狀態(tài)。此時(shí)如果服務(wù)器也關(guān)閉連接(發(fā)送結(jié)束報(bào)文段),則客戶(hù)端將給予確認(rèn)并進(jìn)入TIME_WAIT狀態(tài)
? 客戶(hù)端從FIN_WAIT_1狀態(tài)可能直接進(jìn)入TIME_WAIT狀態(tài)(不經(jīng)過(guò)FIN_WAIT_2狀態(tài)),前提是處于FIN_WAIT_1狀態(tài)的服務(wù)器直接收到帶確認(rèn)信息的結(jié)束報(bào)文段(而不是先收到確認(rèn)報(bào)文段,再收到結(jié)束報(bào)文段)
? 處于FIN_WAIT_2狀態(tài)的客戶(hù)端需要等待服務(wù)器發(fā)送結(jié)束報(bào)文段,才能轉(zhuǎn)移至TIME_WAIT狀態(tài),否則它將一直停留在這個(gè)狀態(tài)。如果不是為了在半關(guān)閉狀態(tài)下繼續(xù)接收數(shù)據(jù),連接長(zhǎng)時(shí)間地停留在FIN_WAIT_2狀態(tài)并無(wú)益處。連接停留在FIN_WAIT_2狀態(tài)的情況可能發(fā)生在:客戶(hù)端執(zhí)行半關(guān)閉后
,未等服務(wù)器關(guān)閉連接就強(qiáng)行退出了。此時(shí)客戶(hù)端連接由內(nèi)核來(lái)接管,可稱(chēng)之為孤兒連接(和孤兒進(jìn)程類(lèi)似)
? Linux為了防止孤兒連接長(zhǎng)時(shí)間存留在內(nèi)核中,定義了兩個(gè)內(nèi)核參數(shù):
? /proc/sys/net/ipv4/tcp_max_orphans 指定內(nèi)核能接管的孤兒連接數(shù)目
? /proc/sys/net/ipv4/tcp_fin_timeout 指定孤兒連接在內(nèi)核中生存的時(shí)間
十五:TCP超時(shí)重傳
? 異常網(wǎng)絡(luò)狀況下(開(kāi)始出現(xiàn)超時(shí)或丟包),TCP控制數(shù)據(jù)傳輸以保證其承諾的可靠服務(wù)
? TCP服務(wù)必須能夠重傳超時(shí)時(shí)間內(nèi)未收到確認(rèn)的TCP報(bào)文段。為此,TCP模塊為每個(gè)TCP報(bào)文段都維護(hù)一個(gè)重傳定時(shí)器,該定時(shí)器在TCP報(bào)文段第一次被發(fā)送時(shí)啟動(dòng)。如果超時(shí)時(shí)間內(nèi)未收到接收方的應(yīng)答,TCP模塊將重傳TCP報(bào)文段并重置定時(shí)器。至于下次重傳的超時(shí)時(shí)間如何選擇,以及最多執(zhí)行多少次重傳,就是TCP的重傳策略
? 與TCP超時(shí)重傳相關(guān)的兩個(gè)內(nèi)核參數(shù):
? /proc/sys/net/ipv4/tcp_retries1,指定在底層IP接管之前TCP最少執(zhí)行的重傳次數(shù),默認(rèn)值是3
? /proc/sys/net/ipv4/tcp_retries2,指定連接放棄前TCP最多可以執(zhí)行的重傳次數(shù),默認(rèn)值15(一般對(duì)應(yīng)13~30min)
十六、UDP特性
? 工作在傳輸層
? 提供不可靠的網(wǎng)絡(luò)訪(fǎng)問(wèn)
? 非面向連接協(xié)議
? 有限的錯(cuò)誤檢查
? 傳輸性能高
? 無(wú)數(shù)據(jù)恢復(fù)特性
十七、Internet協(xié)議特征
? 運(yùn)行于 OSI 網(wǎng)絡(luò)層
? 面向無(wú)連接的協(xié)議
? 獨(dú)立處理數(shù)據(jù)包
? 分層編址
? 盡力而為傳輸
? 無(wú)數(shù)據(jù)恢復(fù)功能
IP PDU報(bào)頭
1、 版本:占4位,指 IP 協(xié)議的版本目前的IP協(xié)議版本號(hào)為4
2、首部長(zhǎng)度:占4位,可表示的最大數(shù)值是15個(gè)單位,一個(gè)單位為4字節(jié),因此IP 的首部長(zhǎng)度的最大值是60字節(jié)
3、區(qū)分服務(wù):占8位,用來(lái)獲得更好的服務(wù),在舊標(biāo)準(zhǔn)中叫做服務(wù)類(lèi)型,但實(shí)際上一直未被使用過(guò).后改名為區(qū)分服務(wù).只有在使用區(qū)分服務(wù)(DiffServ)時(shí),這個(gè)字段才起作用.一般的情況下都不使用
4、總長(zhǎng)度:占16位,指首部和數(shù)據(jù)之和的長(zhǎng)度,單位為字節(jié),因此數(shù)據(jù)報(bào)的最大長(zhǎng)度為 65535 字節(jié).總長(zhǎng)度必須不超過(guò)最大傳送單元 MTU
5、標(biāo)識(shí):占16位,它是一個(gè)計(jì)數(shù)器,通常,每發(fā)送一個(gè)報(bào)文,該值會(huì)加1, 也用于數(shù)據(jù)包分片,在同一個(gè)包的若干分片中,該值是相同的
6、標(biāo)志(flag):占3位,目前只有后兩位有意義
7、DF: Don‘t Fragment,中間的一位,只有當(dāng) DF=0 時(shí)才允許分片
8、MF: More Fragment,最高位,MF=1表示后面還有分片。MF=0表示最后一個(gè)分片
9、片偏移:占12位,指較長(zhǎng)的分組在分片后,該分片在原分組中的相對(duì)位置.片偏移以8個(gè)字節(jié)為偏移單位
10、生存時(shí)間:占8位,記為T(mén)TL (Time To Live) 數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中可通過(guò)的路由器數(shù)的最大值,TTL 字段是由發(fā)送端初始設(shè)置一個(gè) 8 bit字段.推薦的初始值由分配數(shù)字 RFC 指定,當(dāng)前值為64.發(fā)送 ICMP 回顯應(yīng)答時(shí)經(jīng)常把 TTL 設(shè)為最大值 255
11、協(xié)議:占8位,指出此數(shù)據(jù)報(bào)攜帶的數(shù)據(jù)使用何種協(xié)議以便目的主機(jī)的IP層將數(shù)據(jù)部分上交給哪個(gè)處理過(guò)程, 1表示為 ICMP協(xié)議, 2表示為 IGMP 協(xié)議, 6表示為 TCP 協(xié)議, 17表示為UDP 協(xié)議
12、首部檢驗(yàn)和:占16位,只檢驗(yàn)數(shù)據(jù)報(bào)的首部不檢驗(yàn)數(shù)據(jù)部分.這里不采用 CRC 檢驗(yàn)碼而采用簡(jiǎn)單的計(jì)算方法
13、源地址和目的地址:都各占4字節(jié),分別記錄源地址和目的地址
14、片偏移以8個(gè)字節(jié)為偏移單位
15、假定MTU=1400,三個(gè)包id=100相同, 前兩個(gè) mf=1,最后一個(gè)mf=0
十八、IP地址
1、它們可唯一標(biāo)識(shí) IP 網(wǎng)絡(luò)中的每臺(tái)設(shè)備
2、每臺(tái)主機(jī)(計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備、外圍設(shè)備)必須具有唯一的地址
3、IP地址由兩部分組成:
? 網(wǎng)絡(luò)ID:
? 標(biāo)識(shí)網(wǎng)絡(luò)
? 每個(gè)網(wǎng)段分配一個(gè)網(wǎng)絡(luò)ID
? 主機(jī) ID:
? 標(biāo)識(shí)單個(gè)主機(jī)
? 由組織分配給各設(shè)備
轉(zhuǎn)載于:https://blog.51cto.com/13287682/2044869
總結(jié)
以上是生活随笔為你收集整理的Python第十课 网络管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何安全的存储用户密码?(中)代码篇
- 下一篇: 21-Heartbeat配置文件auth