iT邦幫忙

0

Tracert 是每一個節點都會TCP握手一次嗎?

it
  • 分享至 

  • xImage

我知道 TCP會有三次握手、四次揮手
但是每一次 http 請求,用tracert去追蹤會經過很多站點,請問每一個站點都會握手回傳數據一次嗎? 只要有一個站點卡住所有 tcp 就會失效?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

14
Ray
iT邦大神 1 級 ‧ 2023-09-26 09:13:42
最佳解答

首先, Tracert 並不是用 TCP 協定去偵測與判讀, 她用的是 UDP 和 ICMP:

Wiki: Traceroute

Cisco: 瞭解Ping和Traceroute命令

Micorsoft: 如何使用 TRACERT 疑難排解 Windows 中的 TCP/IP 問題

所以她不會跟任何人有三方交握的行為....
詳細的 Traceroute 原理解說:
https://slinbody.pixnet.net/blog/post/3979792

看更多先前的回應...收起先前的回應...
小MIS iT邦研究生 1 級 ‧ 2023-09-26 10:11:16 檢舉

大神,所以 HTTP 跟 Tracert 走的 web 路徑不一致?

froce iT邦大師 1 級 ‧ 2023-09-26 10:29:36 檢舉

路徑一致方法不一致啊...
HTTP必須確保內容正確,trace只要結點超時就能確定有問題了,一個用TCP、另外一個用UDP很正常。
你寄信,掛號信和廣告信的區別。

Ray iT邦大神 1 級 ‧ 2023-09-26 10:40:07 檢舉

小MIS
封包路徑是由 Routing Table (路由表) 決定的, 上層的協定或應用, 不論是 ICMP/TCP/UDP/HTTP/SMTP/POP/IMAP/FTP....都沒有能力可以改變路由, 通通都要遵循路由表的指示去傳遞, 所以傳遞的路徑一定是相同的 (在路由表沒有改變的前提下).

這是在 OSI 的第三層 IP Protocol 內完成:

但是每個協定都有自己要通訊的 Port, Transport, Session, Application...等等, 是在 IP 協定之上, 由各協定自己定義, 跟傳送的IP路由(路徑)無關.

cmwang iT邦大師 1 級 ‧ 2023-09-27 09:24:19 檢舉

Linux或FreeBSD的traceroute也可以改成送TCP/SYN,主要的用意是用來觀察policy routing/FW ACL的影響(並不是真的要建connection),但Windows的tracert不支援這麼玩就是了....

我要發表回答

立即登入回答