订阅
纠错
加入自媒体

Session和cookie应该如何去选择适用场景?

2021-04-26 15:51
拓跋阿秀
关注

44、DDos 攻击了解吗?

客户端向服务端发送请求链接数据包,服务端向客户端发送确认数据包,客户端不向服务端发送确认数据包,服务器一直等待来自客户端的确认没有彻底根治的办法,除非不使用TCPDDos 预防:

1)限制同时打开SYN半链接的数目

2)缩短SYN半链接的Time out 时间

3)关闭不必要的服务

45、MTU和MSS分别是什么?

MTU:maximum transmission unit,最大传输单元,由硬件规定,如以太网的MTU为1500字节。

MSS:maximum segment size,最大分节大小,为TCP数据包每次传输的最大数据分段大小,一般由发送端向对端TCP通知对端在每个分节中能发送的最大TCP数据。MSS值为MTU值减去IPv4 Header(20 Byte)和TCP header(20 Byte)得到。

46、HTTP中有个缓存机制,但如何保证缓存是最新的呢?(缓存过期机制)

max-age 指令出现在请求报文,并且缓存资源的缓存时间小于该指令指定的时间,那么就能接受该缓存。

max-age 指令出现在响应报文,表示缓存资源在缓存服务器中保存的时间。

Cache-Control: max-age=31536000

Expires 首部字段也可以用于告知缓存服务器该资源什么时候会过期。

Expires: Wed, 04 Jul 2012 08:26:05 GMT
在 HTTP/1.1 中,会优先处理 max-age 指令;在 HTTP/1.0 中,max-age 指令会被忽略掉。

47、TCP头部中有哪些信息?

序号(32bit):传输方向上字节流的字节编号。初始时序号会被设置一个随机的初始值(ISN),之后每次发送数据时,序号值 = ISN + 数据在整个字节流中的偏移。假设A -> B且ISN = 1024,第一段数据512字节已经到 B,则第二段数据发送时序号为1024 + 512,用于解决网络包乱序问题。

确认号(32bit):接收方对发送方TCP报文段的响应,其值是收到的序号值 + 1。

首部长(4bit):标识首部有多少个4字节 * 首部长,最大为15,即60字节。

标志位(6bit):

URG:标志紧急指针是否有效。

ACK:标志确认号是否有效(确认报文段)。用于解决丢包问题。

PSH:提示接收端立即从缓冲读走数据。

RST:表示要求对方重新建立连接(复位报文段)。

SYN:表示请求建立一个连接(连接报文段)。

FIN:表示关闭连接(断开报文段)。

窗口(16bit):接收窗口。用于告知对方(发送方)本方的缓冲还能接收多少字节数据。用于解决流控。

校验和(16bit):接收端用CRC检验整个报文段有无损坏。

48、常见TCP的连接状态有哪些?

CLOSED:初始状态。LISTEN:服务器处于监听状态。SYN_SEND:客户端socket执行CONNECT连接,发送SYN包,进入此状态。SYN_RECV:服务端收到SYN包并发送服务端SYN包,进入此状态。ESTABLISH:表示连接建立。客户端发送了最后一个ACK包后进入此状态,服务端接收到ACK包后进入此状态。FIN_WAIT_1:终止连接的一方(通常是客户机)发送了FIN报文后进入。等待对方FIN。CLOSE_WAIT:(假设服务器)接收到客户机FIN包之后等待关闭的阶段。在接收到对方的FIN包之后,自然是需要立即回复ACK包的,表示已经知道断开请求。但是本方是否立即断开连接(发送FIN包)取决于是否还有数据需要发送给客户端,若有,则在发送FIN包之前均为此状态。FIN_WAIT_2:此时是半连接状态,即有一方要求关闭连接,等待另一方关闭。客户端接收到服务器的ACK包,但并没有立即接收到服务端的FIN包,进入FIN_WAIT_2状态。LAST_ACK:服务端发动最后的FIN包,等待最后的客户端ACK响应,进入此状态。TIME_WAIT:客户端收到服务端的FIN包,并立即发出ACK包做最后的确认,在此之后的2MSL时间称为TIME_WAIT状态。

49、网络的七层/五层模型主要的协议有哪些?

50、TCP是什么?

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

51、TCP头部报文字段介绍几个?各自的功能?

source port 和 destination port两者分别为「源端口号」和「目的端口号」。源端口号就是指本地端口,目的端口就是远程端口。

可以这么理解,我们有很多软件,每个软件都对应一个端口,假如,你想和我数据交互,咱们得互相知道你我的端口号。

再来一个很官方的:

扩展:应用程序的端口号和应用程序所在主机的 IP 地址统称为 socket(套接字),IP:端口号, 在互联网上 socket 唯一标识每一个应用程序,源端口+源IP+目的端口+目的IP称为”套接字对“,一对套接字就是一个连接,一个客户端与服务器之间的连接。

Sequence Number称为「序列号」。用于 TCP 通信过程中某一传输方向上字节流的每个字节的编号,为了确保数据通信的有序性,避免网络中乱序的问题。接收端根据这个编号进行确认,保证分割的数据段在原始数据包的位置。初始序列号由自己定,而后绪的序列号由对端的 ACK 决定:SN_x = ACK_y (x 的序列号 = y 发给 x 的 ACK)。

说白了,类似于身份证一样,而且还得发送此时此刻的所在的位置,就相当于身份证上的地址一样。

Acknowledge Number称为「确认序列号」。确认序列号是接收确认端所期望收到的下一序列号。确认序号应当是上次已成功收到数据字节序号加1,只有当标志位中的 ACK 标志为 1 时该确认序列号的字段才有效。主要用来解决不丢包的问题。

TCP Flag

TCP 首部中有 6 个标志比特,它们中的多个可同时被设置为 1,主要是用于操控 TCP 的状态机的,依次为URG,ACK,PSH,RST,SYN,FIN。

当然只介绍三个:

ACK:这个标识可以理解为发送端发送数据到接收端,发送的时候 ACK 为 0,标识接收端还未应答,一旦接收端接收数据之后,就将 ACK 置为 1,发送端接收到之后,就知道了接收端已经接收了数据。SYN:表示「同步序列号」,是 TCP 握手的发送的第一个数据包。用来建立 TCP 的连接。SYN 标志位和 ACK 标志位搭配使用,当连接请求的时候,SYN=1,ACK=0连接被响应的时候,SYN=1,ACK=1;这个标志的数据包经常被用来进行端口扫描。扫描者发送一个只有 SYN 的数据包,如果对方主机响应了一个数据包回来 ,就表明这台主机存在这个端口。FIN:表示发送端已经达到数据末尾,也就是说双方的数据传送完成,没有数据可以传送了,发送FIN标志位的 TCP 数据包后,连接将被断开。这个标志的数据包也经常被用于进行端口扫描。发送端只剩最后的一段数据了,同时要告诉接收端后边没有数据可以接受了,所以用FIN标识一下,接收端看到这个FIN之后,哦!这是接受的最后的数据,接受完就关闭了;TCP四次分手必然问。

Window size称为滑动窗口大小。所说的滑动窗口,用来进行流量控制。

52、OSI 的七层模型的主要功能?

物理层:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。数据链路层:接收来自物理层的位流形式的数据,并封装成帧,传送到上一层网络层:将网络地址翻译成对应的物理地址,并通过路由选择算法为分组通过通信子网选择最适当的路径。传输层:在源端与目的端之间提供可靠的透明数据传输会话层:负责在网络中的两节点之间建立、维持和终止通信表示层:处理用户信息的表示问题,数据的编码,压缩和解压缩,数据的加密和解密应用层:为用户的应用进程提供网络通信服务

53、应用层常见协议知道多少?了解几个?

协议名称默认端口底层协议HTTP超文本传输协议80TCPHTTPS超文本传输安全协议443TCPTelnet远程登录服务的标准协议23TCPFTP文件传输协议20传输和21连接TCPTFTP简单文件传输协议21UDPSMTP简单邮件传输协议(发送用)25TCPPOP邮局协议(接收用)110TCPDNS域名解析服务53服务器间进行域传输的时候用TCP
客户端查询DNS服务器时用 UDP

<上一页  1  2  3  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

人工智能 猎头职位 更多
扫码关注公众号
OFweek人工智能网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号