工業上的通訊協議之TCP UDP協議

2021-09-14 07:13:00 字數 1806 閱讀 9973

-如果你注定要成為厲害的人, 那問題的答案就深藏在你的血脈裡

tcp (transmission control protocol)和udp(user datagram protocol)協議屬於傳輸層協議。

其中tcp提供ip環境下的資料可靠傳輸,它提供的服務包括資料流傳送、可靠性、有效流控、全雙工操作和多路復用。通過面向連線、端到端和可靠的資料報傳送。

通俗說,它是事先為所傳送的資料開闢出連線好的通道,然後再進行資料傳送;而udp則不為ip提供可靠性、流控或差錯恢復功能。一般來說tcp對應的是可靠性要求高的應用,而udp對應的則是可靠性要求低、傳輸經濟的應用。

tcp支援的應用協議主要有:telnet、ftp、smtp等;udp支援的應用層協議主要有:nfs(網路檔案系統)、snmp(簡單網路管理協議)、dns(主網域名稱稱系統)、tftp(通用檔案傳輸協議)等。

tcp是面向連線的通訊協議,通過三次握手建立連線,通訊完成時要拆除連線,由於tcp是面向連線的所以只能用於端到端的通訊

tcp提供的是一種可靠的資料流服務,採用「帶重傳的肯定確認」技術來實現傳輸的可靠性。tcp還採用一種稱為「滑動視窗」的方式進行流量控制,所謂視窗實際表示接收能力,用以限制傳送方的傳送速度。

如果ip資料報中有已經封好的tcp資料報,那麼ip將把它們向『上』傳送到tcp層。

tcp將包排序並進行錯誤檢查,同時實現虛電路間的連線。tcp資料報中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。

tcp將它的資訊送到更高層的應用程式,例如telnet的服務程式和客戶程式。應用程式輪流將資訊送回tcp層,tcp層便將它們向下傳送到ip層,裝置驅動程式和物理介質,最後到接收方。

面向連線的服務(例如telnet、ftp、rlogin、x windows和smtp)需要高度的可靠性,所以它們使用了tcp。dns在某些情況下使用tcp(傳送和接收網域名稱資料庫),但使用udp傳送有關單個主機的資訊。

通俗大白話來理解tcp協議的三次握手和四次分手

udp是面向無連線的通訊協議,udp資料報括目的埠號和源埠號資訊,由於通訊不需要連線,所以可以實現廣播傳送。

udp通訊時不需要接收方確認,屬於不可靠的傳輸,可能會出現丟包現象,實際應用中要求程式設計師程式設計驗證。

udp與tcp位於同一層,但它不管資料報的順序、錯誤或重發。

因此,udp不被應用於那些使用虛電路的面向連線的服務,udp主要用於那些面向查詢---應答的服務,例如nfs。相對於ftp或telnet,這些服務需要交換的資訊量較小。使用udp的服務包括ntp(網路時間協議)和dns(dns也使用tcp)。

欺騙udp包比欺騙tcp包更容易,因為udp沒有建立初始化連線(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與udp相關的服務面臨著更大的危險。

資料幀:幀頭+ip資料報+幀尾 (幀頭包括源和目標主機mac初步位址及型別,幀尾是校驗字)

ip資料報:ip頭部+tcp資料資訊(ip頭包括源和目標主機ip位址、型別、生存期等)

tcp資料資訊:tcp頭部+實際資料 (tcp頭包括源和目標主機埠號、順序號、確認號、校驗字等)

udp(user data protocol,使用者資料報協議)是與tcp相對應的協議。它是面向非連線的協議,它不與對方建立連線,而是直接就把資料報傳送過去!

C 開發 ModBus通訊協議 工業4 0

公司在做乙個智慧型工廠專案,需要將不同廠家的機器裝置通過modbus協議連線起來,於是在網上找了個支援modbus協議的dll庫hslcommunication。將dll引入的c 專案中 廢話不多說,上 using system using system.collections.generic us...

TCP通訊協議(上)同步傳輸

直接上例子,學習資料來自net之美。服務端建立listener物件,客戶端建立client物件,服務端首先開始對本地埠監聽,客戶端傳送連線請求。當需要傳輸字串時,兩者均需要建立stream物件,將想說的話,寫在這片小紅葉上,小紅葉就飛到對方 了。using system using system.c...

基本通訊協議之 SOAP

通常乙個功能強大 技術全面的專案都會用到兩種或者以上的開發語言,或者有些時候為了管理的需要,會把專案分成很多小的模組。這就需要了我們能實現在不同程序間通訊的功能,soap的出現就是為了解決這個問題。一條 soap 訊息就是乙個普通的 xml 文件,包含下列元素 下面是乙個簡單的soap例項,功能是向...