
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
互联网协议是程序员在学习计算机网络基础的时候需要重点掌握的一个编程开发知识点,下面我们就通过案例分析来了解一下,互联网网络协议常见类型。
(1)TCP是可靠传输,UDP是不可靠传输
TCP是面向连接的,需要建立连接后才能收发数据,TCP在收发数据时有ACK机制,即数据接收方收到数据后会给数据发送方回一个ACK确认包,表示已经收到对方的数据,如果数据发送方没收到ACK包就会触发丢包重传机制,所以TCP是可靠的。从网络通信的socket套接字编程上看,必须先connect去连ip和端口先建立连接,才能使用send和recv收发数据!对于接收连接的服务端,需要先使用bind函数给socket套接字绑定端口,紧接着调用listen开启端口的监听,然后调用accept接收客户端的连接。
UDP不需要建立连接,可以直接收发数据,没有收发数据的ACK机制,所以UDP通信是不可靠的。从网络通信的socket套接字编程上看,客户端直接给sendto函数设置ip和端口,不需要建立连接,直接将数据投递过去,不管数据受到与否。对于服务端,只需要使用bind绑定端口,然后调用recvfrom接收数据即可!
(2)TCP传输的数据是有序的,UDP数据可能是乱序的
网络层的ip协议不能保证数据的有序收发,所以数据接收端ip协议层收到的网络数据都可能是乱序的,无论是TCP数据还是UDP数据。之所以TCP能得到有序的数据,是因为数据到达传输层时TCP协议会将乱序的包按前后顺序重组,即排好顺序后再投递给应用层,所以到应用层经过TCP传输的数据都是有序的。而UDP协议没有对数据包进行排序,所以经UDP传输的数据到达应用层后还是乱序的,需要应用层自己去排序!
(3)其他方面的区别
此外,TCP和UDP还有一些其他方面的区别:
TCP部长度是20个字节,而UDP的部长度是8个字节,所以TCP数据传输的网络传输开销大一些,UDP数据传输的开销小一些。
TCP有拥塞控制和流量控制,而UDP没有拥塞控制和流量控制。
TCP提供全双工通信,但不提供广播或多播服务;UDP则提供广播和多播,所以要广播或多播,都使用UDP。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。