TCP面向连接中的“连接”和“可靠”与“不可靠”
轉載自:http://blog.csdn.net/haizhongyun/article/details/7621199點擊打開鏈接
連接是對狀態的保持
實際上就是在客戶端和服務器端都維護一個變量,這個變量維護現在數據傳輸的狀態,例如傳輸了哪些數據,下一次需要傳輸哪些數據,等等,并不是真的我們想象中的真的有什么東西連接著這兩端,因為無論對于有連接還是無連接,都有網線連著呢(不包括無線網),所以連接根本就不是是否真的有什么東西把他們連接起來,真實的含義就是我上面說的,兩邊維護一個狀態變量。
UDP通訊有四個參數:源IP、源端口、目的IP和目的端口。而TCP通訊至少有有六個參數:源IP、源端口、目的IP和目的端口,以及序列號和應答號。
序列號和應答號是TCP通訊特有的參數,TCP通訊利用序列號和應答號來保持和確認數據的關聯與正確性,是在三次握手中確定的,不正確的序列號和應答號會導致無法正常通訊。因此對TCP連接的連接概念可以簡單理解成為同UDP通訊相比,用序列號和應答號確定了相互之間的連接特征,來保證數據傳輸的正確性。
TCP保證可靠,面向連接而UDP不保證可靠,非面向連接,UDP的報頭長度遠遠小于TCP的報頭長度。TCP使用了三種基礎機制來實現面向連接的服務:1 使用序列號進行標記,以便TCP接收服務在向目的應用傳遞數據之前修正錯序的報文排序;2 TCP使用確認,校驗,和定時器系統提供可靠性。3 TCP在應用層數據上附加了一個報頭,報頭包括序列號字段和這些機制的其他一些必要信息,如叫做端口號的地址字段,該字段可以標識數據的源點和目標應用程序。
UDP發出去的包是不管的,對方也不會應答是否收到.TCP發出包之后對方會應答是否完整收到
可以在發包的時候采取類似創建TCP連接那樣的操作,發消息,然后對方給一個ACK,然后發消息方再發一個ACK,這樣算發送成功。
通過最簡單的重傳確認即可達到QQ現在做到的效果,簡單說就是發送方一直發送數據,直到收到接收方的反饋再停止即可。?
總結
以上是生活随笔為你收集整理的TCP面向连接中的“连接”和“可靠”与“不可靠”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 农业大数据中心建设可行性方案
- 下一篇: python爬虫实例