日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tcp/ip IP数据报头详解

發布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tcp/ip IP数据报头详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下列兩幅圖是IP數據報頭結構:


在IP數據報頭中有三個字段與數據報的分片與重組有很大的關系,分別是標識符、標志和片偏移量。

  • 標識占16位,用于目的主機將數據報的各個分片重裝成原來的數據報。當數據報分片時,該標識字段的值被復制到所有的數據報片的標識字段中。這樣,目的就可以正確的將標識字段值相同的各數據報分片重裝成原來的數據報。

  • 其中標志占3位,該字段目前只有后兩位有意義,前一位字段保留。
    其中,最低位記為MF(More Fragment),用于把數據報最后一片與前面其它各片區分開來。MF = 1代表片未完,即鈣片不是原始數據報的最后一片;MF = 0表示鈣片是原始數據報的最后一片。
    次低位DF(Don’t Fragment),用來控制數據報是否允許分片。DF = 1表示該數據報不允許分片;DF = 0允許分片。
    其實,數據報的分片和重組都是由機器自動完成的,因此設置DF位的真正意義在于,程序員可以控制數據報的分片過程,這為程序調試提供了方便和靈活性。

  • 片偏移占13位,表示本片在原數據報中的偏移,偏移量以8字節為單位。由于各片數據均按照獨立數據報方式傳輸,因此到達目的站的片序是不定的,目的主機在重裝數據報時需要該字段提供偏移量

  • 例如:
    A: 有一數據報總長度4820字節,首部20字節,數據4800字節。某一網絡能傳送的數據報的最大長度是1420字節,該如何分片?

    B: 有一數據報總長度4500字節,ip報頭20字節,考慮到還有一種情況,分片的數據包還可能繼續進行分片, 如下截圖:

    所有片段的數據量: 1480+1000+1480+540 = 4500字節

    如何得片段偏移:
    A1: 0
    A2: 0 + 1480/8 = 185
    A3: 185+1000/8 = 310
    A4: 310+1480/8 = 495
    在分片時,除最后一片外,其他每一片的數據部分必須是8字節的整數倍

  • 如何重組:
    A1: 每個分段數據首部中,16位標識符 是相同的,接收端可以依靠此標識,來識別是否是同一組數據。
    A2: 3位標志位,用DF來區分是否允許分片,如果為0,繼續查看MF,接收端會把MF=1的分組數據放到緩存中,直到把所有16位標識符相同的分段讀取完為止。
    (根據網絡傳輸速度,接收端不一定最后收到MF=0的標識分段數據. 而因該是check16位標識符相同的分組,全部放到緩沖區 )
    A3: 然后根據13位偏移量,來重組緩存中的數據(可以通過MF=0來確定最后一段分組數據).
    所以重組前提依據上述三個步驟來確認。缺一不可.
  • 當需要進行分片時,在每個數據報片的首部存放著該數據報的標識、標志位和片偏移,在進行重組時,標識用來分辨該數據報片的原數據報是哪個,標志位中的MF用來分辨這是不是原數據報的最后一片,片偏移用來分辨這個數據報片相對原數據報的位置。通過這幾個字段,可以穩定的完成數據報的分片與重組操作

    總結

    以上是生活随笔為你收集整理的tcp/ip IP数据报头详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。