数据如何在网络上传输?掌握这些小知识,编程将不再呆板无趣( 二 )

TCP断开(四次挥手)TCP断开连接时,客户端、服务端要完成四次数据交互工作才能建立连接,常称为四次挥手 。可形象比喻为如下对话:

【数据如何在网络上传输?掌握这些小知识,编程将不再呆板无趣】客户端:服务端您好,我发送数据完毕了,即将和您断开连接 。
服务端:客户端您好,我稍稍准备一下,再给您断开
服务端:客户端您好,我准备好了,您可以断开连接了 。
客户端:好的,合作愉快!
具体示意图为:
数据如何在网络上传输?掌握这些小知识,编程将不再呆板无趣

文章插图
 
这里的FIN也是一个标志位,代表断开连接 。具体说明类似三次握手 。
为什么建立连接只需要三次数据交互,而断开连接需要四次呢?
建立连接时,服务端在监听状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端 。
而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送 。
UDP协议
UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,可以保证通讯效率,传输延时小 。例如视频聊天应用中用的就是UDP协议,这样可以保证及时丢失少量数据,视频的显示也不受很大影响 。
4、什么是协议族?
协议族是多个协议的统称 。比如我们的TCP/IP协议族,其不仅仅是TCP协议、IP协议,而是多个协议的集合,其包含IP、TCP、UDP、FTP、SMTP等协议 。
TCP、UDP通信的socket编程过程图(1)TCP通信socket编程过程
数据如何在网络上传输?掌握这些小知识,编程将不再呆板无趣

文章插图
 
(2)UDP通信socket编程过程
数据如何在网络上传输?掌握这些小知识,编程将不再呆板无趣

文章插图
 
尾言由于篇幅问题,关于socket的编程应用实例敬请期待,文章都是手打原创,每天最浅显的介绍C语言、C++,windows知识,喜欢我的文章就关注一波吧,每天带你学习C/C++不同的知识,也可以看到最新更新和之前发表的文章哦 。如果足下基础比较差,不妨关注下人人都可以学习的视频教程




推荐阅读