描述TCP和UDP區別 Linux0503
UDP,在傳送資料前不需要先建立連線,遠地的主機在收到UDP報文後也不需要給出任何確認。雖然UDP不提供可靠交付,但是正是因為這樣,省去和很多的開銷,使得它的速度比較快,比如一些對實時性要求較高的服務,就常常使用的是UDP。對應的應用層的協議主要有 DNS,TFTP,DHCP,SNMP,NFS 等。
TCP,提供面向連線的服務,在傳送資料之前必須先建立連線,資料傳送完成後要釋放連線。因此TCP是一種可靠的的運輸服務,但是正因為這樣,不可避免的增加了許多的開銷,比如確認,流量控制等。對應的應用層的協議主要有 SMTP,TELNET,HTTP,FTP 等。
tcp | udp | |
連線型別 | tcp確認是否已連線再傳資料 | udp直接發資料,不檢查連線 |
序列 | tcp有序列編號 | 無 |
主要用途 | tcp-email,檔案分享,下載 | udp聊天,視訊 |
效率 | 較低 | 更高 |
可靠性 | 較高 | 較低 |
-
TCP和UDP區別
-
TCP和UDP程式設計區別
TCP程式設計的伺服器端一般步驟是:
1、建立一個socket,用函式socket();
2、設定socket屬性,用函式setsockopt(); * 可選
3、繫結IP地址、埠等資訊到socket上,用函式bind();
4、開啟監聽,用函式listen();
5、接收客戶端上來的連線,用函式accept();
6、收發資料,用函式send()和recv(),或者read()和write();
7、關閉網路連線;
8、關閉監聽;
TCP程式設計的客戶端一般步驟是:
1、建立一個socket,用函式socket();
2、設定socket屬性,用函式setsockopt();* 可選
3、繫結IP地址、埠等資訊到socket上,用函式bind();* 可選
4、設定要連線的對方的IP地址和埠等屬性;
5、連線伺服器,用函式connect();
6、收發資料,用函式send()和recv(),或者read()和write();
7、關閉網路連線;
與之對應的UDP程式設計步驟要簡單許多,分別如下:
UDP程式設計的伺服器端一般步驟是:
1、建立一個socket,用函式socket();
2、設定socket屬性,用函式setsockopt();* 可選
3、繫結IP地址、埠等資訊到socket上,用函式bind();
4、迴圈接收資料,用函式recvfrom();
5、關閉網路連線;
UDP程式設計的客戶端一般步驟是:
1、建立一個socket,用函式socket();
2、設定socket屬性,用函式setsockopt();* 可選
3、繫結IP地址、埠等資訊到socket上,用函式bind();* 可選
4、設定對方的IP地址和埠等屬性;
5、傳送資料,用函式sendto();
6、關閉網路連線;
※Wireshark tcpdump -i 都可抓包比較檢視