標題:
基于Socket的UDP和TCP編程介紹
[打印本頁]
作者:
51黑tt
時間:
2016-3-6 00:11
標題:
基于Socket的UDP和TCP編程介紹
一、概述
TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議是網(wǎng)絡體系結(jié)構TCP/IP模型中傳輸層一層中的兩個不同的通信協(xié)議。
TCP:傳輸控制協(xié)議,一種面向連接的協(xié)議,給用戶進程提供可靠的全雙工的字節(jié)流,TCP套接口是字節(jié)流套接口(stream socket)的一種。
UDP:用戶數(shù)據(jù)報協(xié)議。UDP是一種無連接協(xié)議。UDP套接口是數(shù)據(jù)報套接口(datagram socket)的一種。
二、TCP和UDP介紹
1)基本TCP客戶—服務器程序設計基本框架
說明:(三路握手)
1.客戶端發(fā)送一個SYN段(同步序號)指明客戶打算連接的服務器端口,以及初始化序號(ISN) 。
2.服務器發(fā)回包含服務器的初始序號的SYN報文段作為應答。同時,將確認序號(ACK)設置為客戶的ISN加1以對客戶的SYN 報文段進行確認。一個SYN將占用一個序號。
3.客戶必須將確認序號設置為服務器的ISN加1以對服務器的SYN報文段進行確認。
2) 基本TCP客戶—服務器程序設計基本框架流程圖
3) UDP和TCP的對比:
從上面的流程圖比較我們可以很明顯的看出UDP沒有三次握手過程。
簡單點說。UDP處理的細節(jié)比TCP少。UDP不能保證消息被傳送到(它也報告消息沒有傳送到)目的地。UDP也不保證數(shù)據(jù)包的傳送順序。UDP把數(shù)據(jù)發(fā)出去后只能希望它能夠抵達目的地。
TCP優(yōu)缺點:
優(yōu)點:
1.TCP提供以認可的方式顯式地創(chuàng)建和終止連接。
2.TCP保證可靠的、順序的(數(shù)據(jù)包以發(fā)送的順序接收)以及不會重復的數(shù)據(jù)傳輸。
3.TCP處理流控制。
4.允許數(shù)據(jù)優(yōu)先
5.如果數(shù)據(jù)沒有傳送到,則TCP套接口返回一個出錯狀態(tài)條件。
6.TCP通過保持連續(xù)并將數(shù)據(jù)塊分成更小的分片來處理大數(shù)據(jù)塊!獰o需程序員知道
缺點: TCP在轉(zhuǎn)移數(shù)據(jù)時必須創(chuàng)建(并保持)一個連接。這個連接給通信進程增加了開銷,讓它比UDP速度要慢。
UDP優(yōu)缺點:
1.UDP不要求保持一個連接
2.UDP沒有因接收方認可收到數(shù)據(jù)包(或者當數(shù)據(jù)包沒有正確抵達而自動重傳)而帶來的開銷。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1