tcpip内容摘要:

若為 0 表示可以分段,若為 1 表示不可分段 M:若為 0 表示此 IP 為最後分段,若為 1 表示非最後分段  Fragment Offset(分段偏移 ) 表示目前這個 IP 分段在原始的 IP 封包中所佔的位置。 就有點像是序號啦,有這個序號才能將所有的小 IP 分段組合成為原本的 IP 封包大小嘛。 透過 Total Length, Identification, Flags 以及這個 Fragment Offset 就能夠將小 IP 分段在收受端組合起來囉。  Time To Live(TTL, 存活時間 ) 表示這個 IP 封包的存活時間,範圍為 0255。 當這個 IP 封包通過一個路由器時, TTL 就會減一,當 TTL 為 0 時,這個封包將會被直接丟棄。 說實在的,要讓 IP 封包通過 255 個路由器,還挺難的~ ^_^  Protocol Number(協定代碼 ) 由於網路上面的封包協定太多了,每個協定都是裝在 IP 當中的, 所以 IP 當然就得在表頭上面告知收受端,這個 IP 內含有的資料是什麼協定才行。  Header Checksum(表頭檢查碼 ) 用來檢查這個 IP 表頭的錯誤檢驗之用  Source Address 來源的 IP 位址。  Destination Address 有來源還需要有目標才能傳送,這裡就是目標的 IP 位址。  Options (其他參數 ) 這個是額外的功能,提供包括安全處理機制、路由紀錄、時間戳記、 嚴格與寬鬆之來源路由等。  Padding(補齊項目 ) 由於 Options 的內容不一定有多大,但是我們知道 IP 每個資料都必須要是 32 bits, 所以,若 Options 的資料不足 32 bits 時,則由 padding 主動補齊 TCP  IP 與路由僅能將資料封包傳送到正確的目標而已, 但是這個目的地是否真的能夠收下來這個封包。 那可就不一定了。 要確認該資料能否正確的被目的端所接收, 就必須要在資料封包上面多加一些參數來判斷才行。  TCP協定會根據所傳送出去封包的狀態,來判斷該封包是否要重新傳送 (retransmit),當網路發生問題,在一定的時間內無法到達接收端,此時TCP也會告訴傳送者 “ 封包逾時 ” (timeout) 的訊息,它還能做到流量管制 (flow control) 的工作,確保傳送端所送出的封包,能夠適切的由接收端接受。  在網路層的 IP 之上則是傳送層,而傳送層的資料打包成什麼。 最常見的就是 TCP 封包了。 這個 TCP 封包資料必須要能夠放到 IP 的資料袋當中才行喔。 所以,我們可以將 MAC, IP 與 TCP 的封包資料這樣看:  所以說, IP 除了表頭之外的 Data 內容其實就是 TCP 封包的表頭與內容;而 MAC 的 Data 內容, 就是一個完整的 IP 封包資料。 ,最終還是得以 MAC 能夠支援的最大容許容量, 才能夠決定 IP 與 TCP 封包是否需要再進行分段的工作 TCP 封包的表頭資料  Source Port amp。 Destination Port ( 來源埠口 amp。 目標埠口 ) 什麼是埠口 (port)。 我們知道 IP 封包的傳送主要是藉由 IP 位址連接兩端, 但是到底這個連線的通道是連接到哪裡去呢。 沒錯。 就是連接到 port 上頭啦。 舉例來說,鳥站 ( 有開放 WWW 伺服器, 這表示鳥站的主機必須要啟動一個可以讓 client 端連接的端口,這個端口就是 port , 中文翻譯成為埠口。 同樣的,用戶端想要連接到鳥哥的鳥站時,就必須要在 client 主機上面啟動一個 port ,這樣這兩個主機才能夠利用這條 『 通道 』 來傳遞封包資料喔。 這個目標與來源 port 的紀錄,可以說是 TCP 封包上最重要的參數了。 下個小單元我們還會繼續介紹。  Sequence Number ( 封包序號 ) 由於 TCP 封包必須要帶入 IP 封包當中,所以如果 TCP 資料太大時(大於 IP 封包的容許程度 ), 就得要進行分段。 這個 Sequence Number 就是記錄每個封包的序號, 可以讓收受端重新將 TCP 的資料組合起來。  Acknowledge Number ( 回應序號 ) 為了確認主機端確實有收到我們 client 端所送出的封包資料,我們 client 端當然希望能夠收到主機方面的回應,那就是這個 Acknowledge Number 的用途了。 當 client 端收到這個確認碼時,就能夠確定之前傳遞的封包已經被正確的收下了。  Data Offset (資料補償 ) 在圖十二倒數第二行有個 Options 欄位對吧。 那個 Options 的欄位長度是非固定的, 而為了要確認整個 TCP 封包的大小,就需要這個標誌來說明整個封包區段的起始位置。  Reserved (保留 ) 未使用的保留欄位。  Code (Control Flag, 控制標誌碼 ) 當我們在進行網路連線的時候,必須要說明這個連線的狀態,好讓接收端瞭解這個封包的主要動作。 這可是一個非常重要的控制碼喔。 這個欄位共有 6 個 bits ,分別代表 6 個控制碼,若為 1 則為啟動。 分別說明如下:  URG(Urgent):若為 1 則代表該封包為緊急封包, 接收端應該要緊急處理,且圖十二當中的 Urgent Pointer 欄位也會被啟用。  ACK(Acknowledge):若為 1 代表這個封包為回應封包, 則與上面提到的 Acknowledge Number 有關。  PSH(Push function):若為 1 時, 代表要求對方立即傳送緩衝區內的其他對應封包,而無須等待緩衝區滿了才送。  RST(Reset):如果 RST 為 1 的時候, 表示連線會被馬上結束,而無需等待終止確認手續。 這也就是說,這是個強制結束的連線, 且發送端已斷線。  SYN(Synchronous):若為 1 , 表示發送端希望雙方建立同步處理,也就是要求建立連線。 通常帶有 SYN 標誌的封包表示 『 主動 』 要連接到對方的意思。  FIN(Finish):若為 1 ,表示傳送結束, 所以通知對方資料傳畢,是否同意斷線,只是發送者還在等待對方的回應而已。  Window (滑動視窗 ) 主要是用來控制封包的流量的,可以告知對方目前本身有的緩衝器容量 (Receive Buffer) 還可以接收封包。 當 Window=0 時,代表緩衝器已經額滿,所以應該要暫停傳輸資料。 Window 的單位是 byte。  Checksum(確認檢查碼 ) 當資料要由發送端送出前,會進行一個檢驗。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。