fbpx
维基百科

魔術新手症候群

魔術新手症候群(英語:Sorcerer's Apprentice Syndrome,簡稱SAS)是一個糟糕的網路協議瑕疵,在原先的TFTPRFC 783)版本裡發現。會被如此命名是因為SAS的細節很像《幻想曲》电影裡,魔法師的學徒中學徒所引發的災難:造成在傳送的過程封包不斷的被複製增長。這個問題的產生是因為一個在網路上已知的錯誤,由於協定的設計者在設計協定時沒有考慮到,與TFTP的機制細節互相影響而產生SAS。

技術背景 编辑

TFTP以一種很簡單的方式運作:在任一時刻外部網絡中只有一個數據包處于傳輸中,並且任一方每接收到一個包,就要又發送一個新的包來作為回復(一直到文件傳輸完畢)。TFTP的技術文檔上說,任何時間收到一個包,接收者必須發送相應的“應答包”。於是,一個數據塊的接受觸發了一個“確認”,而“確認”又觸發了下一個數據塊的發送。這聽起來可能相當正常,但實際上卻導致了災難的發生。

TFTP,同一切建立在不可信連接上的協議一樣,包含有超時機制。比方說,如果它做了某件事並期待接收者應答(一個很平常的例子是它發送了一個數據包),它就開啟一個計時器,如果預定時間已到卻仍沒有回復,它就要采取某些行動:通常,就是指把原來的數據包再發送一次。

SAS的細節 编辑

當一個數據包在網絡傳輸中只是延遲,而不是丟失時,魔術新手癥候群就發生了。此時超時已經發生,于是原來的數據包的一個副本被重新發送,為了去代替那個“丟失”的包。但是,第一個數據包并沒有丟失,于是,根據TFTP的文檔的“收到任何的數據包都強制性地回復一個應答包”的規定,產生了兩個回復(每個對應一個副本)。這又導致兩個新的回復,等等。一個典型的場景是這樣的:

電腦S(source)發送了“數據塊X”給電腦D(destination)。

電腦D收到“數據塊X”,發送收到“數據塊X”的確認給電腦S。

不幸的是包含有對“數據塊X”的確認的包在傳輸中延遲了。

電腦S的計時器超時,重新向電腦D發送“數據塊X”。

電腦S收到了延遲到達的對“數據塊X”的確認,然后發送下一個數據塊——“數據塊X+1”。

電腦D收到了“數據塊X”的第二份副本,又發了一個“確認”給電腦S。

電腦D收到了“數據塊X+1”,向電腦S發送了對“數據塊X+1”的確認。

電腦S收到對第二份對“數據塊X”的確認,又重新發送數據塊“數據塊X+1”。

電腦S收到對“數據塊X+1”的確認,發送“數據塊X+2”。

電腦D收到了“數據塊X+1”的第二個副本,又向電腦S發送了第二個對“數據塊X+1”的確認。

電腦D收到了“數據塊X+2”,向電腦S發送對“數據塊X+2”的確認。

可以看出現在情形穩定下來了,并不斷重復:之后的每一個包都加倍了(就是說,有兩個一樣的副本都通過互聯網的傳輸)。

更糟的是,包數量的增加很有可能導致堵塞,可能又會導致新的包的延遲,而這又會導致新一輪的包數量的加倍。不用說,如今,情況就像滾雪球一樣,新的副本會不斷地產生——這就是“魔術新手症候群”這一名稱的由來。

對一個小的文件來說,傳輸會完成,而那些同樣的包最終會在互聯網上消失。而如果文件較大,充血性崩潰就會發生;只有當傳輸最終失敗后,大量的包才從互聯網上消失。

修正SAS 编辑

修正SAS十分地簡單:在第二版的TFTP(RFC 1350)說明裡指出只有第一個ACK會被承認並引發下一個資料區塊的傳送,同一份資料的ACK將被直接忽略。

另見 编辑

延伸閱讀 编辑

  • Bob Braden(editor),Requirements for Internet Hosts -- Application and SupportRFC 1123, USC/Information Sciences Institute, October 1989)See section 4.2

魔術新手症候群, 此條目没有列出任何参考或来源, 2020年8月20日, 維基百科所有的內容都應該可供查證, 请协助補充可靠来源以改善这篇条目, 无法查证的內容可能會因為異議提出而被移除, 英語, sorcerer, apprentice, syndrome, 簡稱sas, 是一個糟糕的網路協議瑕疵, 在原先的tftp, 版本裡發現, 會被如此命名是因為sas的細節很像, 幻想曲, 电影裡, 魔法師的學徒中學徒所引發的災難, 造成在傳送的過程封包不斷的被複製增長, 這個問題的產生是因為一個在網路上已知的錯誤, 由於. 此條目没有列出任何参考或来源 2020年8月20日 維基百科所有的內容都應該可供查證 请协助補充可靠来源以改善这篇条目 无法查证的內容可能會因為異議提出而被移除 魔術新手症候群 英語 Sorcerer s Apprentice Syndrome 簡稱SAS 是一個糟糕的網路協議瑕疵 在原先的TFTP RFC 783 版本裡發現 會被如此命名是因為SAS的細節很像 幻想曲 电影裡 魔法師的學徒中學徒所引發的災難 造成在傳送的過程封包不斷的被複製增長 這個問題的產生是因為一個在網路上已知的錯誤 由於協定的設計者在設計協定時沒有考慮到 與TFTP的機制細節互相影響而產生SAS 目录 1 技術背景 2 SAS的細節 3 修正SAS 4 另見 5 延伸閱讀技術背景 编辑TFTP以一種很簡單的方式運作 在任一時刻外部網絡中只有一個數據包處于傳輸中 並且任一方每接收到一個包 就要又發送一個新的包來作為回復 一直到文件傳輸完畢 TFTP的技術文檔上說 任何時間收到一個包 接收者必須發送相應的 應答包 於是 一個數據塊的接受觸發了一個 確認 而 確認 又觸發了下一個數據塊的發送 這聽起來可能相當正常 但實際上卻導致了災難的發生 TFTP 同一切建立在不可信連接上的協議一樣 包含有超時機制 比方說 如果它做了某件事並期待接收者應答 一個很平常的例子是它發送了一個數據包 它就開啟一個計時器 如果預定時間已到卻仍沒有回復 它就要采取某些行動 通常 就是指把原來的數據包再發送一次 SAS的細節 编辑當一個數據包在網絡傳輸中只是延遲 而不是丟失時 魔術新手癥候群就發生了 此時超時已經發生 于是原來的數據包的一個副本被重新發送 為了去代替那個 丟失 的包 但是 第一個數據包并沒有丟失 于是 根據TFTP的文檔的 收到任何的數據包都強制性地回復一個應答包 的規定 產生了兩個回復 每個對應一個副本 這又導致兩個新的回復 等等 一個典型的場景是這樣的 電腦S source 發送了 數據塊X 給電腦D destination 電腦D收到 數據塊X 發送收到 數據塊X 的確認給電腦S 不幸的是包含有對 數據塊X 的確認的包在傳輸中延遲了 電腦S的計時器超時 重新向電腦D發送 數據塊X 電腦S收到了延遲到達的對 數據塊X 的確認 然后發送下一個數據塊 數據塊X 1 電腦D收到了 數據塊X 的第二份副本 又發了一個 確認 給電腦S 電腦D收到了 數據塊X 1 向電腦S發送了對 數據塊X 1 的確認 電腦S收到對第二份對 數據塊X 的確認 又重新發送數據塊 數據塊X 1 電腦S收到對 數據塊X 1 的確認 發送 數據塊X 2 電腦D收到了 數據塊X 1 的第二個副本 又向電腦S發送了第二個對 數據塊X 1 的確認 電腦D收到了 數據塊X 2 向電腦S發送對 數據塊X 2 的確認 可以看出現在情形穩定下來了 并不斷重復 之后的每一個包都加倍了 就是說 有兩個一樣的副本都通過互聯網的傳輸 更糟的是 包數量的增加很有可能導致堵塞 可能又會導致新的包的延遲 而這又會導致新一輪的包數量的加倍 不用說 如今 情況就像滾雪球一樣 新的副本會不斷地產生 這就是 魔術新手症候群 這一名稱的由來 對一個小的文件來說 傳輸會完成 而那些同樣的包最終會在互聯網上消失 而如果文件較大 充血性崩潰就會發生 只有當傳輸最終失敗后 大量的包才從互聯網上消失 修正SAS 编辑修正SAS十分地簡單 在第二版的TFTP RFC 1350 說明裡指出只有第一個ACK會被承認並引發下一個資料區塊的傳送 同一份資料的ACK將被直接忽略 另見 编辑廣播風暴延伸閱讀 编辑Bob Braden editor Requirements for Internet Hosts Application and Support RFC 1123 USC Information Sciences Institute October 1989 See section 4 2 取自 https zh wikipedia org w index php title 魔術新手症候群 amp oldid 76711022, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。