美文网首页
面试总结 - TCP UDP HTTP HTTPS

面试总结 - TCP UDP HTTP HTTPS

作者: 刃之剑 | 来源:发表于2022-02-25 17:19 被阅读0次

    TCP/UDP区别:

    TCP
    image.png

    (传输控制协议,Transmission Control Protocol):(类似打电话)

    面向连接、传输可靠(保证数据正确性)、有序(保证数据顺序)、传输大量数据(流模式)、速度慢、对系统资源的要求多,程序结构较复杂,

    每一条TCP连接只能是点到点的,

    TCP首部开销20字节。

    为什么需要四次挥手呢?TCP是全双工模式,当client发出FIN报文段时,只是表示client已经没有数据要发送了,client告诉server,它的数据已经全部发送完毕了;但是,这个时候client还是可以接受来server的数据;当server返回ACK报文段时,表示它已经知道client没有数据发送了,但是server还是可以发送数据到client的;当server也发送了FIN报文段时,这个时候就表示server也没有数据要发送了,就会告诉client,我也没有数据要发送了,如果收到client确认报文段,之后彼此就会愉快的中断这次TCP连接。

    UDP

    (用户数据报协议,User Data Protocol):(类似发短信)

    面向非连接 、传输不可靠(可能丢包)、无序、传输少量数据(数据报模式)、速度快,对系统资源的要求少,程序结构较简单 ,

    UDP支持一对一,一对多,多对一和多对多的交互通信,

    UDP的首部开销小,只有8个字节。

    tcp三次握手建立连接:

    第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;

    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;

    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

    握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

    主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;

    主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;

    主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。

    三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

    image.png
    HTTP

    HTTP 协议:超文本传输协议,对应于应用层,用于如何封装数据.
    http 为短连接:客户端发送请求都需要服务器端回送响应.请求结束后,主动释放链接,因此为短连接。通常的做法是,不需要任何数据,也要保持每隔一段时间向服务器发送"保持连接"的请求。这样可以保证客户端在服务器端是"上线"状态。

    HTTP连接使用的是"请求-响应"方式,不仅在请求时建立连接,而且客户端向服务器端请求后,服务器才返回数据。
    HTTP特点:

    无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作
    无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
    基于请求和响应:基本的特性,由客户端发起请求,服务端响应
    简单快速、灵活
    通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性

    TCP/UDP 协议:传输控制协议,对应于传输层,主要解决数据在网络中的传输。

    IP 协议:对应于网络层,同样解决数据在网络中的传输。

    传输数据的时候只使用 TCP/IP 协议(传输层),如果没有应用层来识别数据内容,传输后的协议都是无用的。

    应用层协议很多 FTP,HTTP,TELNET等,可以自己定义应用层协议。

    web 使用 HTTP 作传输层协议,以封装 HTTP 文本信息,然后使用 TCP/IP 做传输层协议,将数据发送到网络上。

    HTTPS

    基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护

    内容加密:采用混合加密技术,中间者无法直接查看明文内容
    验证身份:通过证书认证客户端访问的是自己的服务器
    保护数据完整性:防止传输的内容被中间人冒充或者篡改
    收方能够证实发送方的真实身份;
    发送方事后不能否认所发送过的报文;
    收方或非法者不能伪造、篡改报文。


    image.png

    仅做面试总结 https://blog.csdn.net/xiaoming100001/article/details/81109617

    相关文章

      网友评论

          本文标题:面试总结 - TCP UDP HTTP HTTPS

          本文链接:https://www.haomeiwen.com/subject/wsnxrrtx.html