03.04 tcp/ip數據包在互聯網傳輸過程中,有哪些頭會保持不變?

苑秀雲


“我是喲喲吼說科技,專注於數據網絡的回答,歡迎大家與我交流數據網絡的問題”

如題,數據包在互聯網傳輸的過程如下圖:

通過上圖來看,數據包在傳輸中主要是在TCP字段和IP字段可能會發生變化,下面喲喲分別來介紹:

TCP字段內:

1、源端口(Source Port):在有PAT設備時,會變

2、TCP Checksum:若覆蓋字段變化,那麼就會跟著變化

3、MSS option:為避免分片,默認是以最大值來定義,但可以通過雙向overwrite去定義此選項

IP字段內:

1、服務類型(TOS):數據包發送至運營商的網絡內,可以根據SLA去增加、減小或者清0

2、標誌(DF):在數據包分片時會變

3、TTL:在運營商網絡過的每一跳都會進行減1操作

4、源IP地址(Source IP):在NAT操作後會發生變化

5、目的IP地址(Destination IP):同樣是在NAT操作時,可能用於load balance到多臺服務器上,因此可能會發生變化

6、IP Checksum:在TTL進行減1操作時,這個字段會根據此變化而變化

歡迎大家多多關注我,在下方評論區說出自己的見解。


喲喲吼說科技


  • 初級工程師的回答

IP協議頭:

歸納一下,可能變化的協議字段:

  • Type of Service

企業網內部、或互聯網上運營商,可能會修改該字段(IP Precedence),以實現IP報文的優先級的差異化,進而影響被IP路由器處理該IP報文的優先級。

  • Time To Live (TTL)

IP報文每經過一臺三層設備,包括路由器、三層交換機,會將TTL -1。

為何TTL要減去1

為了防止IP網絡的三層環路,通過不斷的減1操作,可以將IP報文的TTL最終減到0。

當TTL = 0時,IP報文小命還在嗎?

不在了!IP路由器用皇上一般的口吻對IP

報文幽幽地說:朕賜你死!

於是,IP報文就被砍了,消失得無影無蹤,再也禍害不了網絡環路上的IP路由器!

如果IP報文不消失,會一直在環路里繞圈圈,與日月同輝!最苦的就是環路上的路由器,永遠都無法到達目的地的IP報文,無休止地佔用自己的硬件處理資源!

當三層環路發生時,TTL減1操作,是保護路由器的最後一根稻草!

  • Source IP Address

當企業/家庭內網IP報文,在奔向互聯網的時候,需要將內網IP,修改成互聯網IP,或公網IP、或全球IP。

  • Destination IP Address

在企業網裡,當不願意將互聯網上服務器的公網IP,出現在企業網裡,往往通過修改該字段來實現。

此外,當負載均衡設備將流量分配給某臺服務器時,也是通過修改該字段來實現的。

  • Header Checksum

IP Checksum用於校驗IP協議頭,只要IP協議頭有任何字段的變化,Checksum都會相應變化!

TCP

協議頭:

  • Source Port

當做網絡地址轉換時,單單做IP地址的替換是不夠的,需要藉助Source Port來唯一識別用戶的TCP會話。

  • Destination Port

同Source Port。

  • TCP Checksum

TCP Checksum 需要校驗保護的字段包括:

1. TCP報文頭

2. TCP報文選項

3. TCP報文數據

4. TCP偽首部

只要以上4部分有任何字段的變化,TCP Checksum都會相應變化!

讓人迷惑的是,TCP偽首部是幾個意思?

圖片就是TCP偽首部的成員組成:

  • 中級工程師的回答

變化字段的歸納:

  • IP Header Length

這個字段代表IP Header + IP Option 長度總和,以4個字節為單位。

IPHeader Length = 5,意味著是20個字節,只有20字節的IP Header

IPHeader Length = 15,意味著是60個字節。其中20

字節的IP Header,40字節的IP Option

為何這個字段要變?

路由器有可能增添或去除IP Option,比如增添“Router Alert”Option,毫無疑問會修改IP Header Length

“Router Alert”Option

接收到設置該選項的路由器,會更仔細地檢查該IP報文,一般會使用軟件來檢查IP報文。

  • IP Total Length

當IP報文需要分片時,會修改IP報文的總長度。

  • IP ECN Flag

當路由器遭遇擁塞時,通過設置該標誌位通知發送方,當前的網絡遭遇擁堵狀態。

  • IP Flags

當IP報文需要分片時,會修改IP Flags,比如Last /More Flags來完成分片。

  • IP Fragment Offset

當IP報文需要分片時,一定會修改該值,該值的單位為8個字節。

  • TCP Option

路由器有可能增添、去除、修改TCP Option,比如修改“TCP MSS”Option。

  • TCP Window

路由器為了控制雙方發送速率,可以通過修改Window來實現。

  • 高級工程師的回答

如果讀者喜歡這篇文章,請幫助轉發,也許我會把這部分的回答放出來。:)


車小胖談網絡


我覺得唯有數據包不會變,其餘的表頭尾部會被層層封裝和解封裝。按照OSI或者TCPIP模型,數據包都是被層層加了表頭和尾部,比如應用層產生數據, 傳輸層把數據分段壓縮加密等操作變成段,下傳到網絡層會加入源、目的IP變成包,數據鏈路層加入MAC源、目的地址變成幀。然後通過網線變成比特流。

然後對方網線收到了 會解封裝數據鏈路層加的MAC地址識別轉發,然後網絡層解封裝網絡層加的表頭尾部,就像這樣,一個數據包封裝下來,收到又解封裝上去,然後被對方應用軟件識別到裡面的數據。

…………………………………………………

來自於業務垃圾佬的回覆



分享到:


相關文章: