IP協(xié)議是TCP/IP協(xié)議族的核心協(xié)議,也是socket網(wǎng)絡(luò)編程的基礎(chǔ)之一叛赚。
IP服務(wù)的主要特點(diǎn)
IP協(xié)議為上層協(xié)議提供無(wú)狀態(tài)舆瘪、無(wú)連接、不可靠的服務(wù)红伦。
-
無(wú)狀態(tài)
無(wú)狀態(tài)是指IP通信雙方不同步傳輸數(shù)據(jù)的狀態(tài)信息英古,所有IP數(shù)據(jù)報(bào)的發(fā)送、傳輸昙读、接受都是相互獨(dú)立召调、沒(méi)有上下文關(guān)系的。這種服務(wù)優(yōu)點(diǎn)在于簡(jiǎn)單、高效唠叛。最大的缺點(diǎn)是無(wú)法處理亂序和重復(fù)的IP數(shù)據(jù)報(bào)只嚣,確保IP數(shù)據(jù)報(bào)完整的工作只能交給上層協(xié)議來(lái)完成。
-
無(wú)連接
無(wú)連接是指IP通信雙方都不長(zhǎng)久地維持對(duì)方的任何信息艺沼。上層協(xié)議每次發(fā)送數(shù)據(jù)的時(shí)候册舞,都需要明確指出對(duì)方的IP地址。
-
不可靠
不可靠是指IP協(xié)議不能保證IP數(shù)據(jù)報(bào)準(zhǔn)確到達(dá)接收端障般,它指承諾盡最大努力交付调鲸。IP模塊一旦檢測(cè)到數(shù)據(jù)報(bào)發(fā)送失敗,就通知上層協(xié)議挽荡,而不會(huì)試圖重傳藐石。
IPv4頭部
部分說(shuō)明:
-
頭部長(zhǎng)度
標(biāo)識(shí)該IP頭部有多少個(gè)32位bit字(4字節(jié)),由于4位最大描述15定拟,所以IP頭部最大長(zhǎng)度為60字節(jié)于微。
-
8為服務(wù)位
包括3位優(yōu)先權(quán)位,4為T(mén)OS字段和1位保留字段青自。
4為T(mén)OS字段分別表示:最小延時(shí)株依,最大吞吐量、最高可靠性和最小費(fèi)用延窜。其中最多能選擇一位置1勺三,應(yīng)用程序根據(jù)實(shí)際需要來(lái)設(shè)置服務(wù)類(lèi)型。
-
16位標(biāo)識(shí)
唯一標(biāo)識(shí)主機(jī)發(fā)送的每一個(gè)數(shù)據(jù)報(bào)需曾。其初始值由系統(tǒng)隨機(jī)生成;每發(fā)一個(gè)數(shù)據(jù)報(bào)就加1祈远。每個(gè)分片中具有相同的標(biāo)識(shí)值呆万。
-
分片偏移
有3位用于標(biāo)識(shí)偏移,第一位保留车份,第二位DF字段(禁止分片標(biāo)識(shí))谋减,第三位MF字段(更多分片標(biāo)識(shí),最后一個(gè)分片為0扫沼,其他分片置1)出爹。13位偏移是勇敢將實(shí)際值左移三位得到的,因此要求數(shù)據(jù)部分的長(zhǎng)度是8的倍數(shù)缎除。
-
8位協(xié)議
標(biāo)識(shí)上層協(xié)議严就,1是ICMP,6是TCP器罐,17是UDP梢为。
-
16位頭部校驗(yàn)和
IP模塊接受數(shù)據(jù)后,首先對(duì)數(shù)據(jù)報(bào)頭部做CRC校驗(yàn),確保IP頭部在傳輸過(guò)程中無(wú)損壞后铸董,再分析其頭部具體信息祟印。
路由選擇
-
路由匹配
路由匹配順序:
1) 直接匹配,查找路由表中是否由與目標(biāo)IP地址完全匹配的主機(jī)IP地址粟害,找到則匹配成功蕴忆,沒(méi)有的話轉(zhuǎn)2;
2)查找是否有與目標(biāo)IP地址具有相同網(wǎng)絡(luò)ID的IP地址悲幅,找到則匹配成功套鹅,沒(méi)有的話轉(zhuǎn)3;
3)查看是否有默認(rèn)網(wǎng)關(guān)夺艰,有則轉(zhuǎn)發(fā)給它芋哭,沒(méi)有的話,路由查找失敗郁副,由ICMP返回錯(cuò)誤信息减牺。
-
路由更新
通過(guò)route命令或其他工具可以手工修改路由表,是靜態(tài)路由更新方式存谎。對(duì)于大型路由器拔疚,它們通常通過(guò)BGP、RIP既荚、OSPF等協(xié)議進(jìn)行動(dòng)態(tài)路由更新稚失。
IPv6頭部
IPv6協(xié)議并不是IPv4的簡(jiǎn)單擴(kuò)展,而是完全獨(dú)立的協(xié)議恰聘。從以太網(wǎng)幀封裝的數(shù)據(jù)類(lèi)型來(lái)看句各,前者類(lèi)型是0X86dd,后者是0x8600晴叨,是完全不同的類(lèi)型凿宾。
IPv6解決了網(wǎng)絡(luò)地址不足的問(wèn)題,其頭部增加了多播和流的功能兼蕊,引入了自動(dòng)配置功能初厚,還增加了網(wǎng)絡(luò)安全的功能。
其固定部分的頭部如下:
部分說(shuō)明:
-
流標(biāo)簽
是IPv6新增加的字段孙技,用于對(duì)某些連接的服務(wù)質(zhì)量有特殊要求的通信产禾,比如音頻或者視頻等實(shí)時(shí)數(shù)據(jù)傳遞。
-
下一個(gè)包頭
指出緊跟IPv6固定頭部后的包頭類(lèi)型牵啦,如拓展頭亚情,或者某個(gè)上層協(xié)議頭(ICMP,TCP哈雏,UDP)势似,它類(lèi)似IPv4中的協(xié)議字段拌夏,且相同的取值具有相同的含義。