题目>>基础>>1

1、常见的编码方式

计算机中存储的最小单元是一个字节(8bit),所能表示的字符范围为255个。
ASCII码:总共128个,用一个字节的低7位表示;
GBK:是GB2312(含有6763个汉字)的扩展板,含有21003个汉字;
UTF-8:采用一种变长编码技术,utf-8中中文占字节不确定。

2、http和https的区别?描述https的连接过程?加密算法是什么?

3、tcp和udp分别是怎样断开链接的?

4、tcp的报文结构?tcp三次握手?四次挥手?

4.1、tcp报文结构?

在这里插入图片描述

端口号

  • 前4个字节用来标识发送方的端口号和接收方的端口号。

序号

  • TCP是面向字节流的。在一个TCP连接中传送的字节流的每一个字节都按顺序编号。字节流的起始序号必须要在连接建立时设置。
  • 首部的序号值为本报文段所发送数据的第一个字节的序号。长度为4字节。

确认号(ack)

  • 确认收到信息的序号,第二次握手中server发送的信息。
  • 值为上次收到的确认号+1,只有确认标志位(ACK)为1时,确认序号才会有效。

数据偏移

  • 占4bit。指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。

保留

  • 占6位。为今后使用,默认值为0。

URG 紧急

  • 当URG=1时,表名紧急指针有效。
  • 告诉系统此报文包含紧急数据,高优先级发送。TCP会把紧急数据插入到本报文段数据的最前面。

ACK 确认

  • 当ACK=1时,确认号字段有效。
  • 在建立连接后所有传送的报文段都必须把ACK置为1。

PSH 推送

RST 复位

  • 当RST=1时,表示TCP连接中出现了严重错误,必须释放连接,再重新建立传输连接。

SYN 同步

  • 连接建立时用来同步的序号。当SYN=1 ACK=0时,表名是一个连接请求报文段。
  • SYN=1表名是一个连接请求连接接受报文。

FIN 终止

  • 用来释放一个连接。FIN=1表明此报文段的发送数据已完毕,要求释放运输连接。

窗口

  • 从本报文段的确认号算起接收方允许对方一次发送的数据量
  • 原因是接收方的
4.2、tcp三次握手?

tcp三次握手

  • 握手之前:
    • server端先创建TCB(传输控制块),时刻准备接受client的连接请求,server进入LISTEN状态;
  • 第一次握手:
    • client向server发送报文段1。报文内容为:SYN标志位值为1,序号字段seq被设置为初始序号x(TCP连接双方可随机选择初始序号)
    • client发送完成后,进入SYN-SENT状态,等待服务器的确认。
  • 第二次握手
    • server接收到client的请求后,向client发送报文段2作为应答。报文内容为:ACK标识值为1,表示对client做出应答,序号字段ack为x+1;SYN标识值为1,seq为server的初始序号y。
    • server发送完成后,进入SYN-RECEIVED状态。
  • 第三次握手
    • client在接收到server的报文段2后,向server发送报文段3。报文内容为:ACK标识值为1,代表对server做出应答,ack为y+1,seq为x+1。
    • 此报文发送完成后,双方都进入ESTABLISHED状态,表示连接已建立。
4.3、为什么要进行三次握手?

避免资源的浪费:

当client发出连接请求A,由于网络阻塞,A未能到达server;此时client发出了连接请求B到server,建立连接、传输数据、关闭连接;此时A请求到达server:

  • 若无三次握手,此时server将A请求的第二次握手返回,则建立连接;client处于CLOSE状态,连接被浪费;
  • 若存在三次握手,此时server将A请求的第二次握手返回,client处于CLOSE状态,无法返回ACK确认信息;此时连接未被建立,不浪费资源。
4.4、tcp四次挥手?

在这里插入图片描述

至少四次数据交互才能实现一个连接的彻底关闭。

详细过程如下:

  • client发送关闭连接的报文段。报文内容为:FIN标志位为1,请求关闭连接,并停止发送数据。seq=x(等于发送所有数据的最后一个字节序号+1)。而后client进入FINAL-WAIT-1状态。
  • server接收到FIN=1的报文后,发送确认报文。报文内容为:ACK=1,ack=x+1,并带上自己的序号seq=y。然后server进入CLOSE-WAIT状态。
  • client接收到server的ACK报文段后,进入到FINAL-WAIT-2状态,此时还能收到server发送的数据,直到接收到FIN报文段
  • server发送完所有数据后,向client发送报文段。内容为:ACK=1,FIN=1,ack=x+1,seq=z。之后server进入LAST-ACK状态。
  • client收到来自server的FIN报文段后,向server发送报文。内容为:ACK=1,ack=z+1,seq=x+1。之后client进入TIME-WAIT状态。等待2MSL(2倍报文段最大存活时间)后,客户端进入CLOSED状态。
  • server在接收到client的ACK报文后随即进入CLOSED状态。
4.5、为什么TCP关闭连接是四次不是三次?
  • server在接收到FIN报文后,可能还有数据要传输,不能马上关闭连接。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB基础代码题目包括了一系列涉及MATLAB基本操作的题目,其中涵盖了以下内容:MATLAB基本运算、矩阵的创建和运算、多项式的求导、求根和求值等运算、数值函数的求值、求零点、求最大最小值和求定积分、数值函数作图,以及符号变量和符号表达式的创建等。这些题目旨在帮助学习者熟悉和掌握MATLAB的基础操作和常用功能。 以下是一些MATLAB基础代码题目的例子: 1. 创建一个3x3的矩阵,并计算其行列式。 2. 定义一个多项式表达式,然后求其导数。 3. 创建一个符号变量,然后求解一个方程的根。 4. 定义一个数值函数,然后计算其在某个点的值。 5. 绘制一个函数的曲线图。 通过完成这些题目,学习者可以逐渐掌握MATLAB的基本操作,并逐步提升对MATLAB的理解和应用能力。同时,通过阅读和理解这些题目的解答过程,学习者还可以学到一些MATLAB的常用技巧和编程思路。 需要注意的是,MATLAB基础代码题目的难度和复杂度会逐渐增加,所以建议学习者按照顺序逐个完成这些题目,以便渐进式地提升自己的MATLAB编程能力。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [数学实验答案(十五题,matlab基础编程题)(题目见另一资源)](https://download.csdn.net/download/m0_61429346/87320891)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [MATLAB基础-符号变量的使用示例,提供三个例程代码,并给出示例图](https://download.csdn.net/download/li171049/88270197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值