TCP和UDP的比较

TCP和UDP是tcp/ip协议栈中传输层放入两个协议。他们使用IP路由功能,把数据包发送到目的地,从而为应用程序和应用层协议(HTTP超文本传输协议,SNMP网络管理,TFTP文件传输和Telnet远程登录)提供网络服务。
区别;

  1. TCP是面向连接的,UDP是无连接的传输
  2. TCP有流量控制,阻塞控制,监测数据按时到达,而UDP没有
  3. TCP的路由选择只发生在建立连接的时候,而UDP每次报文都要进行
  4. TCP是可靠的有超时重发,而UDP没有
  5. UDP因为少很多控制信息,所以传输慢

    TCP/UDP编程步骤不同
    TCP:
    TCP编程放入服务端一般步骤是:
    1.创建一个Socket,用函数socket();
    2.设置socket属性,用函数setsocket(); *可选
    3.绑定IP地址,端口等信息到socket上,用函数bind();
    4.开启监听,用函数listen();
    5.接收客户端上来的连接,用函数accept();
    6.收发数据,用函数send()和recv(),或者read()和write();
    7.关闭网络连接
    8.关闭监听

    TCP编程的客户端一般步骤
    1.创建一个socket,用函数socket();
    2.设置socket属性,用函数setsocket(); *可选
    3.绑定IP地址,端口等信息到socket上。用函数bind(); *可选
    4.设置要连接诶的对方的IP地址和端口属性
    5.连接服务器,用函数connect()
    6.收发数据,用函数send()和recv(),或者read()和write();
    7.关闭网络连接

UDP
UDP编程的服务器一般步骤是:
1.创建一个socket,用函数socket();
2.设置socket属性,用函数setsocket(); *可选
3.绑定IP地址,端口等信息到socket上,用函数bind();
4.循环接收数据,函数recvfrom();
5.关闭网络连接

UDP的客户端一般步骤:
1.创建一个socket,用函数socket();
2.设置socket属性,用函数setsocket(); *可选
3.绑定IP地址,端口等信息到socket上,用函数bind(); *可选
4.设置对方的IP地址和端口属性;
5.发送数据,函数sendto();
6.关闭连接网络;

为什么连接的时候是三次握手,关闭的时候却是四次握手?
答:因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,”你发的FIN报文我收到了”。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值