• HTTP、TCP、SOCKET三者之间区别和原理


    7层网络模型

    网络在世界范围内实现互联的标准框架
    7层为理想模型,一般实际运用没有7层
    详细内容

    HTTP属于7层应用层

    BSD socket属于5层会话层

    TCP/IP属于4成传输层

    TCP/IP协议

    三次握手

    在这里插入图片描述

    笔者解析:

    1. 第一次握手:实现第一步需要客户端主动打开,服务器在监听,然后发送SYN=1 seq=x等待服务器确认
    2. 第二次握手:服务器监听到,返回确认信息:SYN=1 ask=x+1,以及发送seq=y和ACK=1等待客户端确认。
    3. 第三次握手:客户端返回确认信息:ACK=1 ask=y+1 seq=x+1。至此客户端与服务器连接上,可以进行数据传输。

    四次挥手

    在这里插入图片描述

    笔者解析

    1. 第一次挥手:发送需确认的请求:FIN=1 seq=u
    2. 第二次挥手:发送接收到服务器请求的信息:ACK=1 seq=v 需确认的请求ack=u+1,然后等待服务器处理完信息,再进行第三次挥手确认才能完成服务器的确认。
    3. 第三次挥手:处理完信息,发送确认接收到请求FIN=1 ack=u+1,以及需要确认的请求ACK=1 和seq=w
    4. 第四次挥手:发送确认接收到请求的信息ACK=1和ask=w+1以及seq=u+1。至此服务器与客户端断开。

    总结

    客户端发送的需要确认的信息(请求)标志位:SYN和FIN
    服务器发送的需要确认的信息(请求)标志位:ACK
    两者在请求和确认时有标志数据seq和ask,两者通用:seq为请求携带的标志数据,ask为确认的标志数据,ask=上一个seq+1。

    常见问题

    如果建立了连接,但客户端出现故障:
    服务器每收到一次客户端的请求后都会重新复位保活计时器,时间通常为两个小时,若两个小时还没收到客户端的任何信息、数据,服务器会发送一个探报文段,以后每隔75秒发一次,连发10个探测器报文仍没反应,服务器就认定客户端出了故障,接着就关闭连接。

    SCOKET原理概念

    socket是通信的基石,是支持TCP/IP协议的网络通讯的基本操作单元,工程师要进行TCP/IP连接通信时通过socket进行操作。
    socket相当于TCP/IP或UDP的封装、调用接口

    应用层HTTP协议:

    Wab联网的基础,也是设计联网常用的协议之一。

    SOCKET和TCP/IP让工程师实现网络客户端和服务器的数据传输,但未约定协议,所以不能对数据进行翻译解码,数据不能转换为信息,在经过应用层HTTP后才能完成通讯。

    HTTP连接最显著的特点是:客户端每次请求都需要服务器回送响应,在请求结束后,会主动释放连接,从建立连接到释放连接的过程称为“一次连接”,由于HTTP的“一次连接”特性,所以HTTP属于一种“短连接”,要保持客户端程序在线状态,需要不断向服务器发送连接请求,通常做法是即使不需要获取任何数据,客户端也保持一段时间向服务器发送一次“保持连接”的请求,服务器在接收到该请求后对客户端进行返回,表明知道客户端“在线”。若服务器长时间无法收到客户端请求,则认为客户端“下线”,若客户端长时间无法接收到服务器回复,则认为网络断开。

  • 相关阅读:
    智慧应管理信息化 平台建设方案
    Go Map有序输出
    一篇文章理解 Java 中的 Unsafe 类
    docker配置http proxy代理
    【Vue入门】MVVM数据双向绑定与Vue的生命周期
    公务员备考(二十九) 申论强化
    PHP | imagettftext() 函数
    【数据库】oracle安装步骤(详细)
    JS数组at函数(获取最后一个元素的方法)介绍
    Arduino开发实例-SR04T/SR04M 防水超声波传感器驱动
  • 原文地址:https://blog.csdn.net/weixin_70042862/article/details/133212858