找回密码
 注册

[教學]TCP/IP如何確保資料傳送

[复制链接]
Persephone 发表于 19-1-2008 21:27:32 | 显示全部楼层 |阅读模式

马上注册成为YANBONG会员吧!
时下最热门的资讯、娱乐、贴图等分享都在这里等你发掘哦!

您需要 登录 才可以下载或查看,没有账号?注册

×
TCP採用三向式握手 (three-wayhandshake)以建立連線。首先由來源電腦發出SYN訊息要求雙方建立TCP連線,若果對方接納連線要求便會發出SYN/ACK訊息回應,來源電腦在接收到確認訊息便以ACK再回應及進行資料傳送。在傳輸過程中若果因為網路或不明因素而令資料封包出現掉失,故此TCP本身有一套完整的傳輸機制來解決這問題。

Acknowledge (Ack)
在一般網路所使用的TCP/IP協定下,每一個資料封包都需要有acknowledge訊息的回傳。即是網路上傳輸的資料都必須要有一個收到資料的訊息回覆,才能決定是否將後來的資料繼續傳送,及決定是否重新傳遞掉失的資料封包。因此其可靠性較高,這種一來一往的機制叫「握手」(Shakehand)。當接收端收到一段資料即會發出一個確認(Ack)訊息,其中包含一個收到資料段包含序號的認可號碼 (acknowledgementnumber),令TCP在回應時認可訊息附帶在可能有的資料段中一併傳給對方,藉以減少單獨的認可訊息對網路頻寬的清耗。

Retransmission (PAR)
TCP另一個確保資料正確傳輸的機制,就是當來源電腦所發出的資料在指定時間內仍未收到另一端發送出資料段的認可訊息時,便會重新送出相同的資料封包,直到對方回應認可訊息之後再送出下一個資料封包。若果重複多次也失敗,TCP便會通知應用層及發出無法連線之類的錯誤訊息。

Sequence Number
當發送一方在發出資料後收不到應答確認,便會重新送出相同的資料封包,但有時也會因為某些原因使得確認封包到達出現延遲情況,令資料在重發後才收到應答確認的封包。此種情況下,接收一方便會接收到多個互相重複的資料,為避免因而造成上層應用程式重新組合資料的時候發生混亂,故此必須把重複收到的資料封包棄掉。所以在資料傳輸時,TCP會將由上層應用程式傳來的資料,加入Sequence Number對資料傳輸加以管理及對所收到的資料進行識別。

Checksum
當TCP收到資料封包時核對表頭內的資料,若果正確便發出認可訊息表示接收無誤。否則便會自動忽略該資料封包及再次等待接收資料封包。

SlidinGWindow
在流量控制方面TCP會利用SlidinGWindow,由於每個資料封包在送出之後不會隨即到達目的地,而是會依據特定的路由路線傳送至目的地,為避免因等待接收端的認可訊息所造成的閒置,發送端可在未收到前一個資料封包凡認可訊息的情況下持續發出數個資料封包,SlidinGWindow的大小可以因應實際的網路連線質素自動調整。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

ADVERTISEMENT

Archiver|手机版|小黑屋|YANBONG

GMT+8, 22-11-2024 12:16

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

重要声明:本网站是以即时上载留言的方式运作,本站对所有留言的真实性、完整性及立场等,不负任何法律责任。而一切留言之言论只代表留言者个人意见,并非本网站之立场,用户不应信赖内容,并应自行判断内容之真实性。由于讨论区是受到「即时留言」运作方式所规限,故不能完全监察所有即时留言,若读者发现有留言出现问题,请联络我们。本站有权删除任何留言及拒绝任何人士留言,同时亦有不删除留言的权利。切勿撰写粗言秽语、诽谤、渲染色情暴力或人身攻击的言论,敬请自律。
Proudly hosted by
LinodeDigital Ocean
快速回复 返回顶部 返回列表