• Web中的网络协议是如何工作的


    互联网,实际上是一套理论和协议组成的体系架构。
    协议,是一套众所周知的规则和标准。
    数据是通过数据包来传输的,传输大文件,会将文件分割成一个个小数据包。
    数据包要在网络上进行传输,就要符合IP协议标准(网际协议, Internet Protocol)

    IP协议:传输数据包到计算机IP地址

    IP协议就是网际协议。
    计算机的地址就称为IP地址,请求任何一个网站,实际上是你的计算机向另外一台计算机发送请求。
    如果要想把一个数据包从主机A发送给主机B,那么在传输之前,数据包上会被附加上主机B的IP地址信息,这样在传输过程中才能正确寻址。额外地,数据包上还会附加上主机A本身的IP地址,有了这些信息主机B才可以回复信息给主机A。

    通过IP协议可以把数据包传输给对方电脑,但无法判断给对方电脑上的那个应用程序。
    要做到这件事情需要通过UDP协议

    UDP协议 传输数据包到计算机具体的应用程序

    UDP协议,即 User Datagram Protocol
    UDP一个很重要的信息是端口号,每个想访问网络的应用程序都会绑定一个端口号,通过端口号就可以把数据包发给计算机具体的目标应用程序了

    在使用UDP发送数据时,可能会出错,UDP能识别这种错误,但是UDP并没有提供重传机制,并且UDP在发送之后无法判断是否到达目的地
    因此,UDP的缺点是无法保证数据的可靠性,但是优点是传输速度非常快,因此在在线视频、互动游戏这方面有应用

    而TCP协议保证了数据可靠性,负责将数据完整地传输到应用程序

    TCP协议 将数据包完整地传输到应用程序

    对于浏览器请求,或者邮件这些对数据可靠性要求较高的应用来说,使用UDP会存在问题:

    1. 数据包在传输过程中容易丢失
    2. 对于一个大文件,数据包在不同的时间点到达应用,顺序混乱,UDP无法组装、还原成完整文件

    对于这种场景,需要使用TCP协议(Transmission Control Protocol 传输控制协议)

    • 针对数据包丢失这一问题, TCP提供重传机制
    • TCP引入排序机制,用序列号标记数据包,用于将乱序的数据包组装成完整的文件

    如何重传?
    接收方需要对每个操作进行确认,即接收方在接收到数据包之后,要发送确认包给发送端,如果发送端规定时间没有收到确认包,则触发重传机制

    TCP为了保证数据传输的可靠性,牺牲了数据包的传输速度 —————— 三次握手,数据包校验机制,将数据包的数量提高了一倍

    HTTP协议

    HTTP协议和TCP协议都是TCP/IP协议簇的子集。
    HTTP协议属于应用层,TCP协议属于传输层,HTTP协议位于TCP协议的上层。

    请求方要发送的数据包,在应用层加上HTTP头以后会交给传输层的TCP协议处理,应答方接收到的数据包,在传输层拆掉TCP头以后交给应用层的HTTP协议处理。建立 TCP 连接后会顺序收发数据,请求方和应答方都必须依据 HTTP 规范构建和解析HTTP报文

  • 相关阅读:
    QSslError 类
    QNetworkRequest 请求类
    QFTP走了以后QNetworkAccessManager出现了
    Android之SQLite总结
    Android之Handler机制
    Android之SeekBar总结(一)
    Android之测试相关知识点
    Android数据储存之SharedPreferences总结
    android studio的常用快捷键
    BitmapFactory.Options详解
  • 原文地址:https://www.cnblogs.com/ltfxy/p/16369375.html
Copyright © 2020-2023  润新知