『壹』 python3 & TCP協議和UDP協議的特點和區別
優點:
(1)TCP是面向連接的運輸層協議;
(2)每一條TCP連接只能有兩個端點(即兩個套接字),只能是點對點的;
(3)TCP提供可靠的傳輸服務。傳送的數據無差錯、不丟失、不重復、按序到達;
(4)TCP提供全雙工通信。允許通信雙方的應用進程在任何時候都可以發送數據,因為兩端都設有發送緩存和接受緩存;
(5)面向位元組流。雖然應用程序與TCP交互是一次一個大小不等的數據塊,但TCP把這些數據看成一連串無結構的位元組流,它不保證接收方收到的數據塊和發送方發送的數據塊具有對應大小關系,例如,發送方應用程序交給發送方的TCP10個數據塊,但就受訪的TCP可能只用了4個數據塊久保收到的位元組流交付給上層的應用程序,但位元組流完全一樣。
缺點:
慢,效率低,佔用系統資源高,易被攻擊 TCP在傳遞數據之前,要先建連接,這會消耗時間,在數據傳遞時,確認機制、重傳機制、擁塞控制機制等都會消耗大量的時間,而且要在每台設備上維護所有的傳輸連接。事實上,每個連接都會佔用系統的CPU、內存等硬體資源。因為TCP有確認機制、三次握手機制,這些也導致TCP容易被人利用,實現DOS、DDOS、CC等攻擊。
TCP的應用場景:
當對網路通訊質量有要求的時候。例如:整個數據要准確無誤的傳遞給對方,這往往用於一些要求可靠的應用。如:用於文件傳輸(FTP HTTP 對數據准確性要求高,速度可以相對慢),發送或接收郵件(POP IMAP SMTP 對數據准確性要求高,非緊急應用),遠程登錄(TELNET SSH 對數據准確性有一定要求,有連接的概念)等等。
優點:
(1)UDP是無連接的傳輸層協議;
(2)UDP使用盡最大努力交付,不保證可靠交付;
(3)UDP是面向報文的,對應用層交下來的報文,不合並,不拆分,保留原報文的邊界;
(4)UDP沒有擁塞控制,因此即使網路出現擁塞也不會降低發送速率;
(5)UDP支持一對一一對多多對多的交互通信;
(6)UDP的首部開銷小,只有8位元組.
缺點:
不可靠,不穩定。 因為UDP沒有TCP那些可靠的機制,在數據傳遞時,如果網路質量不好,就會很容易丟包。
UDP的應用場景:
當對網路通訊質量要求不高的時候,要求網路通訊速度能盡量的快,這時就可以使用UDP。 UDP一般用於即時通信(QQ聊天 對數據准確性和丟包要求比較低,但速度必須快),在線視頻(RTSP 速度一定要快,保證視頻連續,但是偶爾花了一個圖像幀,人們還是能接受的),網路語音電話(VoIP 語音數據包一般比較小,需要高速發送,偶爾斷音或串音也沒有問題)等等。
(1)TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接
(2)TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付
(3)TCP面向位元組流,實際上是TCP把數據看成一連串無結構的位元組流;UDP是面向報文的UDP沒有擁塞控制,因此網路出現擁塞不會使源主機的發送速率降低(對實時應用很有用,如IP電話,實時視頻會議等)
(4)每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信
(5)TCP首部開銷20位元組;UDP的首部開銷小,只有8個位元組
(6)TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道
HTTP、HTTPS、FTP、TELNET、SMTP(簡單郵件傳輸協議)協議基於可靠的TCP協議。TFTP、DNS、DHCP、TFTP、SNMP(簡單網路管理協議)、RIP基於不可靠的UDP協議
『貳』 python如何調用IP攝像頭
正在用python+opencv做一個視頻採集程序,在一個區域網中有多個ip攝像頭和一個usb攝像頭,如何知道調用的是哪個攝像頭,檢查該攝像狀態,並且獲得該攝像頭的許可權,也就是收到該攝像頭的返回數據