网络编程技术基础 网络编程基础知识( 二 )

  • 第三次握手:ACK标志被置位 。客户端向服务端发送n+1表示确认收到数据 。
  • 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++不同的知识 , 也可以看到最新更新和之前发表的文章哦 。如果足下基础比较差 , 不妨关注下人人都可以学习的视频教程
    通俗易懂 , 深入浅出 , 一个视频只讲一个知识点 。视频不深奥 , 不需要钻研 , 在公交、在地铁、在厕所都可以观看 , 随时随地涨姿势
    【网络编程技术基础 网络编程基础知识】

    推荐阅读