TCP/UDP socket

摘要:
TCP是为了确保发送的数据能够到达目的地,例如快递,这需要您签名。TCP的优点和缺点:1.TCP以经批准的方式提供显式的连接创建和终止。3.TCP处理流程控制。4.允许数据优先级。5.如果数据未传输到,TCP套接字将返回错误状态条件。6.TCP通过保持大数据块的连续性并将其分割成较小的块来处理大数据块。3.UDP设计用于短应用程序和控制消息。4.在将一个分组连接到另一个分组的基础上,UDP需要比TDP更少的网络带宽。

TCP socket:有链接,绑定端口,接着去侦听,若有请求,那么accept(),获得新的socket,并且去接收/发送数据报.

TCP/UDP socket第1张

UDP socket:无连接,不需要侦听,也不用一个新的socket去接收/发送数据包,但发送时就取决本身绑定的端口.

TCP/UDP socket第2张

UDP和TCP的对比:
从以上的流程图看出,tcp步骤会比udp多,(tcp三次握手我没有列出来)
UDP不能保证发送的data能到目的地,比如送信,邮递员只保证将信件投递到你家的邮筒,而不能保证你本人是否能收到,并且这个发送是没有顺序的。

TCP则是确保发送的data能到达目的地,比如快递,需要你本人签收才行。
TCP优缺点:
优点:
1.TCP提供以认可的方式显式地创建和终止连接。
2.TCP保证可靠的、顺序的(数据包以发送的顺序接收)以及不会重复的数据传输。
3.TCP处理流控制。
4.允许数据优先
5.如果数据没有传送到,则TCP套接口返回一个出错状态条件。
6.TCP通过保持连续并将数据块分成更小的分片来处理大数据块。—无需程序员知道
缺点: TCP在转移数据时必须创建(并保持)一个连接。这个连接给通信进程增加了开销,让它比UDP速度要慢。
UDP优缺点:
1.UDP不要求保持一个连接
2.UDP没有因接收方认可收到数据包(或者当数据包没有正确抵达而自动重传)而带来的开销。
3.设计UDP的目的是用于短应用和控制消息
4.在一个数据包连接一个数据包的基础上,UDP要求的网络带宽比TDP更小。

免责声明:文章转载自《TCP/UDP socket》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL实现类似于自动刷新数据的功能C++接口定义及实现举例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下iptables 禁止端口和开放端口

1、关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。下面是命令实现: iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP 再用命令 iptables -L -n 查看 是否设置好, 好看到全部 DROP 了 这样的设置好了,我们只是临时...

C-Sharp网络编程案例解析(Socket类的使用)

Server端: using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace Server {     class Program     {         static v...

node.js的net模块实现socket通信

本文实例讲述了通过node.js的net模块实现nodejs socket服务端和客户端简单通信功能,可以用作客户端对服务端的端口监听以及事件回执。 server端代码 var net = require('net'); //模块引入 var listenPort = 8080;//监听端口 var server = net.createServer(fu...

Centos6.5 设置nfs

安装 rpcbind 和 nfs-utils 1 yum install rpcbind 2 yum install nfs-utils 设置共享目录 [root@bogon ~]# vim /etc/exports #修改/etc/exports文件,输出共享目录 添加一行, 例如 /mnt/share *(rw,sync,n...

C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)

原文引自:http://www.cnblogs.com/DebugLZQ/archive/2011/08/09/2132423.htmlC# code namespace UDPServer { class Program { static void Main(string[] args) { int recv; byte[] data = new byt...

lscpu 查看 CPU 信息

lscpu 显示 CPU 的架构信息 lscpu 从 sysfs 和 proc/cpuinfo 中收集信息。这个命令的输出是规范的可以用来解析,或者给人来阅读。该命令显示的信息包括,CPU 的数量,线程 (thread),核心 (core),Socket 还有 Non-Uniform Memory Access (NUMA) 节点数。 Socket 具体...