IP協議

IP協議只負責傳送IP數據包,無法監視和控制網絡中出現的一些問題,這些工作由Internet的控制協議來完成
IP是T C P / I P協議族中最為核心的協議。所有的T C P、U D P、I C M P及I G M P數據都以I P數據
報格式傳輸。它的特點如下:

不可靠(u n r e l i a b l e)的意思是它不能保證 I P數據報能成功地到達目的地。 I P僅提供最好
的傳輸服務。如果發生某種錯誤時,如某個路由器暫時用完了緩沖區, I P有一個簡單的錯誤
處理算法:丟棄該數據報,然后發送 I C M P消息報給信源端。任何要求的可靠性必須由上層來
提供(如T C P) 。

無連接(c o n n e c t i o n l e s s)這個術語的意思是I P并不維護任何關于后續數據報的狀態信息。
每個數據報的處理是相互獨立的。這也說明, I P數據報可以不按發送順序接收。如果一信源
向相同的信宿發送兩個連續的數據報(先是 A,然后是B) ,每個數據報都是獨立地進行路由
選擇,可能選擇不同的路線,因此B可能在A到達之前先到達。

1.IP 頭格式

(1)版本 占4位,指IP協議的版本。通信雙方使用的IP協議版本必須一致。目前廣泛使用的IP協議版本號為4(即IPv4)。關于IPv6,目前還處于草案階段。?


(2)首部長度 占4位,可表示的最大十進制數值是15。請注意,這個字段所表示數的單位是32位字長(132位字長是4字節),因此,當IP的首部長度為1111時(即十進制的15),首部長度就達到60字節。當IP分組的首部長度不是4字節的整數倍時,必須利用最后的填充字段加以填充。因此數據部分永遠在4字節的整數倍開始,這樣在實現IP協議時較為方便。首部長度限制為60字節的缺點是有時可能不夠用。但這樣做是希望用戶盡量減少開銷。最常用的首部長度就是20字節(即首部長度為0101),這時不使用任何選項。?


(3)區分服務 占8位,用來獲得更好的服務。這個字段在舊標準中叫做服務類型,但實際上一直沒有被使用過。1998IETF把這個字段改名為區分服務DS(Differentiated?Services)。只有在使用區分服務時,這個字段才起作用。?


(4)總長度 總長度指首部和數據之和的長度,單位為字節。總長度字段為16位,因此數據報的最大長度為216-1=65535字節。?

IP層下面的每一種數據鏈路層都有自己的幀格式,其中包括幀格式中的數據字段的最大長度,這稱為最大傳送單元MTU(Maximum?Transfer?Unit)。當一個數據報封裝成鏈路層的幀時,此數據報的總長度(即首部加上數據部分)一定不能超過下面的數據鏈路層的MTU值。?


(5)標識(identification) 占16位。IP軟件在存儲器中維持一個計數器,每產生一個數據報,計數器就加1,并將此值賦給標識字段。但這個標識并不是序號,因為IP是無連接服務,數據報不存在按序接收的問題。當數據報由于長度超過網絡的MTU而必須分片時,這個標識字段的值就被復制到所有的數據報的標識字段中。相同的標識字段的值使分片后的各數據報片最后能正確地重裝成為原來的數據報。?


(6)標志(flag) 占3位,但目前只有2位有意義。?

 標志字段中的最低位記為MF(More?Fragment)MF=1即表示后面還有分片的數據報。MF=0表示這已是若干數據報片中的最后一個?

 標志字段中間的一位記為DF(Don’t?Fragment),意思是不能分片。只有當DF=0時才允許分片。?


(7)片偏移 占13位。片偏移指出:較長的分組在分片后,某片在原分組中的相對位置。也就是說,相對用戶數據字段的起點,該片從何處開始。片偏移以8個字節為偏移單位。這就是說,每個分片的長度一定是8字節(64位)的整數倍。?


(8)生存時間 占8位,生存時間字段常用的的英文縮寫是TTL(Time?To?Live),表明是數據報在網絡中的壽命。由發出數據報的源點設置這個字段。其目的是防止無法交付的數據報無限制地在因特網中兜圈子,因而白白消耗網絡資源。最初的設計是以秒作為TTL的單位。每經過一個路由器時,就把TTL減去數據報在路由器消耗掉的一段時間。若數據報在路由器消耗的時間小于1秒,就把TTL值減1。當TTL值為0時,就丟棄這個數據報。?


(9)協議 占8位,協議字段指出此數據報攜帶的數據是使用何種協議,以便使目的主機的IP層知道應將數據部分上交給哪個處理過程。?


(10)首部檢驗和 占16位。這個字段只檢驗數據報的首部,但不包括數據部分。這是因為數據報每經過一個路由器,路由器都要重新計算一下首部檢驗和(一些字段,如生存時間、標志、片偏移等都可能發生變化)。不檢驗數據部分可減少計算的工作量。?


(11)源IP地址 占32位。?


(12)目的IP地址 占32位。


2.分片解釋

分片指的是需要傳送的數據大于最大傳輸單元(MTU)的時候,就需要分成多個包,然后一個個發送給對方。我們在說TCP的時候,說到MSS很多人不能區分它們。通過下面的圖,我想就可以完全區分它們了。


個人覺的如果通過TCP協議傳輸數據,到IP層的時候,可定不需要分片了。只有在通過UDP協議傳送大數據的時候,需要分片。

例如:用UDP協議傳送10240個字節數據


可以看到,但數據提交到網絡層的時候,由于數據超過了最大傳輸單元,就分片了。分成多個包通過IP協議發送個對方。每個數據包最大的字節為MTU - IP頭 = 1500 - 20 = 1480。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452955.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452955.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452955.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

職場故事和感悟

1. 獵頭烏龍事件 05年11月的時候,我做了一個招聘主管的職位,一位朋友T推薦了她的好友L。從條件上看人很合適,聰明肯干,就是資力淺些,如果工作努力應該提高很快。我與其它兩個候選人一起推薦給了客戶。L與其它兩人一…

zbb20180415 cs 1.6 half-life launcher已停止工作

控制面板->系統->高級系統設置->高級->性能 設置->數據保護->為除下列選定程序之外的所有程序和服務啟用->添加-> 找到你的CS客戶端 選擇就好了-》應用 -》確定轉載于:https://www.cnblogs.com/super-admin/p/8849581.html

python形參中的:*args和**kwargs區別

詳細參考文章: https://blog.csdn.net/u014513323/article/details/89450573 感謝樓主分享

gitlab修改用戶密碼_CRM用戶模塊(用戶密碼修改)

四 密碼修改1 需求分析修改當前登陸用戶的登陸密碼2 頁面原型3 流程圖 4 編寫ControllerResponseBodyRequestMapping("updatePwd")public MessageModel updatePwd(HttpServletRequest request, String oldPassword, String newPassword, String confirmPassword){Mes…

ICMP協議簡介

ICMP是Internet Control Message Protocol,因特網控制報文協議。它是TCP/IP協議族的一個子協議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由器是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用戶數據&…

vue之vuex

vuex負責vue的數據管理和共享,適用于大型項目 安裝vuex npm install vuex --save; 運用vuex 主要有五大金剛: export default new Vuex.Store({//$store為了讓外部可以引用state,//數據存儲mutations,//行為動作actions,//異步改變state狀態,也就是提交m…

項目管理中的特殊———例外管理

概念 例外管理由管理學引入領導學,也就是指領導人應將主要精力和時間用來處理首次出現的、模糊隨機、十分重要需要立即處理的非程序化問題。而對于決策對象反復出現的,決策者已有固定的或例行的程序來處理的問題,即常例,由于在職業…

mysql 5.6.23 源碼包安裝報錯_CentOS6.5_64bit下編譯安裝MySQL-5.6.23

標簽:************************************************************CentOS6.5_64bit下編譯安裝MySQL-5.6.23**************************************************************一、關閉防火墻chkconfig iptables offservice iptables stop二、下載mysql源碼包&…

third day- 01--文件操作

1 1、請分別介紹文件操作中不同的打開方式之間的區別:2 3 模式 含義4 r 文本只讀模式5 rb 二進制模式  #這種方法,是用來傳輸或存儲,不給人看的。6 r r 是讀寫模式,只要沾上r,文件必須存在7 rb …

什么是TTL

TTL是指生存時間,簡單來說,它表示了數據包在網絡中的時間,經過一個路由器后TTL就減一,這樣TTL最終會減為0,當TTL為0時,則將數據包丟棄,這樣也就是因為兩個路由器之間可能形成環,如果…

python中itsdangerous模塊

使用itsdangerous生成臨時身份令牌 準備工作: 安裝pip install itsdangerous import itsdangeroussaltsdaf#加鹽,指定一個鹽值,別讓別人知道哦,否則就可以解密出來了 titsdangerous.TimedJSONWebSignatureSerializer(salt,expire…

微信小程序中form 表單提交和取值實例詳解

2019獨角獸企業重金招聘Python工程師標準>>> 我們知道&#xff0c;如果我們直接給 input 添加 bindinput&#xff0c;比如&#xff1a;<input bindinput"onUsernameInput" />&#xff0c;那么可以在 onUsernameInput 中直接使用 e.detail.value&…

matlab如何用代碼導入文件_20+行Matlab代碼實現文件掃描

最近剛好看到一篇回答&#xff0c;用閾值二值化處理圖片水印&#xff0c;受到啟發寫此代碼。閾值二值化適合處理只有黑白兩色的圖片&#xff0c;考慮到文件蓋章&#xff0c;這里作者使用像素顏色替換及灰度值處理圖片&#xff0c;進一步提高處理精度和能力。我們需要&#xff1…

聊聊Code Review

轉載&#xff1a;https://richardcao.me/2016/09/30/Talk-About-Codereview/ 最近思考一個問題&#xff0c;如何進行高效的codereview&#xff0c;有沒有好的工具可以使用&#xff0c;于是花了兩三天時間在Google里淘了一番&#xff0c;這里留下記錄。 Phabricator 首屈一指的c…

項目管理十大趨勢

趨勢一、更多中國企業成立項目管理辦公室&#xff0c;項目管理辦公室也發揮更大的作用 在國內&#xff0c;仍有很多企業每年有成百上千的項目實施&#xff0c;而公司卻沒有成立項目管理辦公室&#xff0c;或者已經有了PMO&#xff0c;但是PMO仍在履行一些較為基礎的職能。 沒…

啟動django服務器報錯raise errorclass(errno, errval) django.db.utils.InternalError

問題描述&#xff1a; 啟動django服務器python manage.py runserver報錯: raise errorclass(errno, errval) django.db.utils.InternalError: (1366, “Incorrect string value: ‘\xE7\x94\xA8\xE6\x88\xB7’ for column ‘name’ at row 1”) 原因&#xff1a;與mysql數據庫…

java單例模式之線程安全問題

單例的目的是為了保證運行時Singleton類只有唯一的一個實例&#xff0c;用于一些較大開銷的操作。 餓漢式&#xff08;沒有線程安全問題&#xff09;: ‘ 由于使用static關鍵字進行了修飾&#xff0c;只能獲取到一個對象&#xff0c;從而達到了單例&#xff0c;并且在Singleton…

路由協議和路由算法的不同

網絡上的主機、路由器通過路由選擇算法形成路由表&#xff0c;以確定發送分組的傳輸路徑。而路由選擇協議是路由器用來完成路由表建立和路由信息更新的通信協議。

2003 r2 64 iis php mysql_關于在win2003中,iis+php+mysql 配置的問題

IIS中配置PHP服務器(iis6.0php5.2.6mysql)&#xff0c;步驟如下&#xff1a;1.我下的是php5.2.6_win32 &#xff0c;下載后&#xff0c;解壓到d:\phpwin下面2.然后從其中找到一個叫php.ini-recommended的文件,更名為php.ini3.打開該文件&#xff0c;找到extension_dir ".…

448. Find All Numbers Disappeared in an Array 尋找有界數組[1,n]中的缺失數

&#xff3b;抄題&#xff3d;&#xff1a; Given an array of integers where 1 ≤ a[i] ≤ n (n size of array), some elements appear twice and others appear once. Find all the elements of [1, n] inclusive that do not appear in this array. Could you do it with…