• 计算机网络基础知识1


    1、tcp三次握手
    SYN,标志位,用于建立TCP连接的握手过程中的标志位。
    ACK,确认位,用于说明整个包是确认报文。
    TCP/IP协议是传输层的一个面向连接提供可靠安全的传输协议。第一次握手有客户端发起,客户端向服务端发送一个报文,在报文里面,将SYN置为1,随机生成一个序列号x,当服务端收到这个报文后指导客户端要和我建立一个tcp连接,于是向客户端发送一个确认包,报文里面设置,SYN=1,ACK=1,ack=x+1,再随机生成一个序列号sep=y。基于上面两次握手,作为客户端我知道自己能发送消息和接收消息,对于服务端我可以收到消息,客户端能不能收到我发的消息我不知道,于是需要三次握手,第三次报文就是当客户端收到服务端发送的确认响应报文之后,还要继续给服务端进行回应,报文内容:seq=y+1,ACK=1,经过三次握手之后,这个连接就被安全的建立了。
    2、四次挥手?
    有客户端首先发起,第一次挥手客户端发送一个报文,在报文里面将FIN=1,根据之前发送报文生成的序列号这里将seq=x,当服务端收到这个报文后就知道了客户端想断开连接,但是此事服务端可能在发送数据导致不能立刻断开连接,服务端需要继续发送数据,服务端只进行一次消息queren(第二次挥手)报文内容ACK=1,ack=x+1,即告诉客户端我知道你要和我断开连接,但我没做好准备,你需要等我消息。服务端没有消息发送时,给客户端发送一个报文(第三次挥手),报文内容:seq=y,FIN=1。当这个报文到达客户端时,客户端需要给服务端发送一个消息确认报文(第四次挥手),报文内容:ACK=1,ack=y+1,经过四次挥手,双方都准备好了断开连接的准备,由此TCP/IP断开连接。
    3、http和https的区别?
    http是超文本传输协议,信息是明文传输,存在安全风险隐患,https在tcp和http的网络层加入了SSL/TLS安全协议,使得报文能够加密传输。
    TCP三次握手之后就能进行HTTP的报文传输,而HTTPS在TCP三次握手之后,还需要进行SSL/TLS的握手过程,才可进行加密的报文传输。
    HTTP的默认端口是80,HTTPS的默认端口上443。
    HTTPS协议需要向CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的,一般需要收费。
    4、加密算法有哪些?
    对称加密:加密和解密采用相同的密钥,是可逆的。例如:AES、DES
    优点:加密速度快。
    缺点:密钥容易泄露。
    非对称加密:加密和解密的密钥是不一样的,使用公钥加密私钥解密。例如:RSA、DSA。
    RSA:将两个大数相乘很容易,但是想要对乘积进行因式分解很难,可以将其乘积公开作为加密密钥。
    优点:安全性高。
    缺点:速度慢。
    5、输入URL后的一系列变化?
    a、首先进行DNS域名解析,得到域名对应的IP地址;
    b、浏览器与服务器建立TCP连接;
    c、向服务器发送请求;
    d、服务器处理请求,并返回响应;
    e、浏览器根据响应进行页面渲染;
    f、浏览器端开和服务器的连接。
    6、POST请求和GET请求的区别?
    a、post请求是向服务器发送数据,get请求是向服务器请求数据;
    b、get请求传输数据是通过url传输的,参数拼接在url地址栏上,post请求将字段和对应的值保存在请求体中,对用户是可不见的;
    c、get请求传输数据量是有限的,因为url的长度是有限的,post请求可以传输大量数据;
    d、get请求只能支持ascii,向服务器传输中文会出现乱码现象,中文要经过特殊处理比如经过url编码转换为16进制,post请求可以支持标准字符集;
    e、get请求不安全,url可见,容易被cache缓存,还会被保存在浏览器记录中,post请求不会被cache缓存也不会出现在浏览器记录中。
    7、拥塞控制的四个算法:
    慢启动、拥塞避免、用色发生、快速恢复
    慢启动:指数增长;
    拥塞避免:当拥塞窗口cwnd超过慢启动门限ssthresh,就会进入拥塞避免;
    超时重传:ssthresh=cwnd/2,cwnd=1,在执行慢启动;
    快重传:收到三个ACK确认包,发送端就进行快重传。cwnd=cwnd/2,ssthresh=cwnd,然后进入快恢复;
    快恢复:拥塞窗口cwnd=ssthresh+3(3个数据包已收到),直接进入到拥塞避免算法。
    在这里插入图片描述

  • 相关阅读:
    pycharm remote host显示nothing to show
    基于Composer的Laravel扩展包开发工作流 ,实现laravle项目的文件管理(记录成长)
    基于安卓android微信小程序的校园互助平台
    linux下使用crontab定时器,并且设置定时不执行的情况,附:项目启动遇到的一些问题和命令
    最长连续序列[中等]
    海贼王大学生HTML网页制作作品 学生动漫网页设计模板下载 简单漫画网页设计成品 dreamweaver学生网站模板
    pyflink1.18.0 keyby之后使用自定义keyedProcessfunction报错
    SpringBoot基于jackson对象映射器扩展mvc框架的消息转换器
    猿创征文|Spring Boot日志
    基于SpringBoot的健身房管理系统
  • 原文地址:https://blog.csdn.net/qq_41452177/article/details/134276780