標題: 基于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