当前位置: 首页 > news >正文

昆明网站seo公司做网站建设培训

昆明网站seo公司,做网站建设培训,网站引流.,网站建设英文名词TCP相关面试题 题目1 介绍一下TCP三次握手的过程 介绍TCP三次握手应该从3个方面进行回答#xff0c;分别是数据包名称#xff0c;客户端与服务端的状态变化#xff0c;数据包的序号变化。而不能只是简单回答发送的数据包名称。 TCP三次握手的过程如下#xff1a; 从数据…TCP相关面试题 题目1 介绍一下TCP三次握手的过程 介绍TCP三次握手应该从3个方面进行回答分别是数据包名称客户端与服务端的状态变化数据包的序号变化。而不能只是简单回答发送的数据包名称。 TCP三次握手的过程如下 从数据包名称上来讲在进行3次握手时首先客户端发送SYN报文服务端接收之后发送SYNACK报文客户端收到之后发送最后一次ACK报文从双方状态变化上来讲客户端在发送第一个SYN之后处于SYN_SENT状态服务端收到SYN之后处于SYN_RECV状态客户端收到服务端的SYNACK之后是ESTABLISHED状态认为连接建立完成服务端收到最后一个ACK才变为ESTABLISED状态从序号上讲客户端发送的SYN携带随机生成的序号x服务端发送的SYNACK携带随机生成的序号y以及对客户端的确认序号x1客户端发送的ACK携带确认序号y1其中序号x和y都由系统随机生成 题目2 TCP3次握手改为2次可以吗 不可以理由如下 2次握手对于服务端而言没有真正建立好连接因为服务端处于SYN_RECV状态此时若服务端收到客户端的数据会发送RST重置连接2次握手只能验证服务端具有收发数据的能力对于客户端不能验证其具有接收数据的能力只知道客户端具有发送数据的能力因为没有最后一次ACK不知道服务端发送的SYNACK客户端是否收到2次握手存在SYN洪水问题容易使服务器受到攻击 题目3 ACK数据包消耗TCP的序号吗 ACK数据包分为2类纯ACK数据包和携带数据的ACK数据包对于纯ACK数据包不消耗序号例如第三次握手。因为纯ACK数据包仅仅表示应答不携带任何有效数据对于携带数据的ACK数据包例如PSHACK的数据包由于这种数据包属于捎带应答TCP为给每一个字节的有效载荷进行编号这种数据包消耗TCP序号 题目4 TCP3次握手可以携带有效数据吗 第一次和第二次握手不能携带有效数据第三次可以原因如下 第一次和第二次握手客户端与服务端都不是ESTABLISHED状态 如果第一次和第二次可以携带数据的话那么服务器很容易受到攻击客户端可以在第一次发送的SYN中携带大量数据消耗服务端的资源如果第二次握手可以携带数据也会消耗服务端的资源。 第三次可以携带数据的原因是客户端处于ESTABLISHED状态认为连接已经建立完毕因此理论上可以携带数据不过实际上由于TCP的慢启动机制很少这样做 TCP3次握手从功能上讲是用来建立连接而非发送数据因此第3次握手虽然从理论上讲可以携带数据但是一般不携带 题目5 服务端不进行accept最多有多少个连接可以建立成功 服务端不进行accept最多可以建立成功的连接个数取决于listen函数的第2个参数listen函数的第2个参数1是全连接队列的最大长度。 全连接队列的最大长度有什么用为什么要有全连接队列全连接队列的长度为什么不能太长 全连接队列的最大长度是服务端不进行accpet或者来不及accpet时TCP底层能够能够保留的最大连接个数。全连接队列存在的意义是当服务端负载较重时能够尽可能多的保存来不及处理的连接当服务端处理完毕别的连接之后可以立即处理全连接队列中的连接。全连接队列的长度不能太长否则排在全连接队列尾部的客户端等待服务的时间会很长影响使用体验。 题目6 TCP3次握手中连接的序号一定要从0开始吗 不一定无论是客户端第一次SYN还是服务端的SYNACK其序号都是随机生成的主要是为了提高连接的安全性如果连接的序号都是从0开始那么攻击者很容易推算出双方数据通信的序号从而破坏连接。使用随机生成的序号可以防止被恶意攻击。 题目7 TCP通过3次握手最多可以建立多少个连接 TCP最多可以建立连接的数量取决于操作系统在Linux系统中socket的底层是通过文件的方式实现的每建立一个连接都会消耗一个文件描述符因此TCP底层最多可以建立连接的个数取决于一个进程最多能够打开的文件描述符个数在Linux中可以使用ulimit -a查看 题目8 介绍一下TCP四次挥手的过程 从3个方面介绍TCP四次挥手的过程 数据包的种类四次挥手时主动断开连接的一方向被动方发送FIN被动方接收到之后回复ACK接着被动方发送FIN主动方收到后回复ACK双方的状态变化主动断开连接的一方发送FIN之后处于FIN_WAIT1状态被动断开连接的一方收到FIN发送ACK之后处于CLOSE_WAIT状态主动断开连接的一方收到ACK之后处于FIN_WAIT2状态。当被动断开连接的一方发送FIN后处于LAST_ACK状态主动断开连接的一方收到FIN后发送最后一次ACK处于TIME_WAIT状态等待2MSL时长最终双方断开连接处于CLOSED状态双方的序号变化假设主动断开连接的一方发送的FIN序号是x则被动方的ACK序号是x1若被动方的FIN序号是y则主动方的ACK序号是y1 题目9 TCP3次握手的过程中为什么要协商MSS? TCP3次握手协商MSS的主要原因是避免数据包在IP层分片。 首先说明MSS和MTUMSS指的是maximum segment size即最大段尺寸MTU指的是maximum transmission unit即最大传输单元。其中MTU与数据链路层的硬件有密切关联大小一般是1500。一般MSSMTU-IP报头大小-TCP报头大小为1460MSS指的是在不分片的情况下TCP最多可以传输多少数据。TCP协商MSS的主要目的是为了避免IP分片当TCP传输的数据大于MSSIP会进行分片分片会加大丢包的概率导致TCP重传传的越多越要分片越分片丢包的概率越大造成恶性循环所以TCP3次握手要协商MSS 题目10 四次挥手阶段能否发送应用层数据 四次挥手阶段可以发送应用层数据。主动断开连接方发送FIN被动断开连接方回复ACK表示主动断开连接方不会发送数据但是依然可以接收数据被动断开连接方可以给主动断开连接方发送数据。 四次挥手的报文能否携带应用层数据 理论上而言可行主动断开连接方发送FIN表示后续主动断开连接方不会发送数据但是这个FIN报文可以携带应用层数据不过一般不这样做因为四次挥手的功能是用来断开连接的而不是用来传输数据的。 题目11 服务端出现大量的CLOSE_WAIT状态的链接是什么原因有什么危害 四次挥手的过程中被动断开连接的一方在收到第一个FIN之后会处于CLOSE_WAIT状态被动断开连接方调用close函数后TCP底层才会给主动断开连接一方发送FIN报文服务端出现大量CLOSE_WAIT状态的连接说明服务端是被动断开连接方且服务端没有调用close函数在这种情况下造成的直接后果就是文件描述符泄漏占用被动断开连接方的资源。 补充被动断开连接方忘记调用close关闭文件描述符这种情况下被动断开连接方会一直处于CLOSE_WAIT状态主动断开连接方会一直处于FIN_WAIT2状态称之为半开连接针对半开连接操作系统会在特定的超时时间后强制关掉这个链接 题目12 TCP四次挥手主动断开连接方为什么要等待2MSL(maximum survival time)的时间 相似问题 TCP四次挥手过程中主动断开连接方的TIME_WAIT状态有什么意义服务端为什么要等待2MSL时间 MSL指的报文的最大生存时间(maximum survival time)主动断开连接的一方需要等待2MSL主要原因是担心最后一个ACK丢失这个2MSL最后一个ACK报文的MSL被动断开连接方重传的FIN报文的MSL 题目13 TCP报文的序号是最大是多少超过这个值应该怎么办 在TCP报头中序号是32位无符号整数最大是232-1超过232-1会出发序号回绕的机制类似无符号char赋值257实际为1 题目14 什么是TCP的确认应答机制 TCP的确认应答机制是TCP保证可靠性的基础指的是接收方需要对发送方的数据进行ACK应答让发送发知道自己发送的数据已经被收到。确认应答是对数据和序号的确认体现在TCP报头中就是32位确认序号其含义是在确认序号之前的数据接收方都收到了 题目15 介绍一下TCP的滑动窗口机制 从以下几点介绍TCP的滑动窗口机制 从报头上讲32位窗口大小表明了接收方接收缓冲区的接收能力在三次握手期间发送方和接受方会交互各自的窗口大小以控制数据的发送速率从概念上讲TCP滑动窗口存在于TCP的发送缓冲区TCP发送缓冲区由4部分构成已经发送出去并且得到应答的数据、已经发送出去但是还没有得到应答的数据、可以发送但是还没有发送的数据、还没有发送并且暂时不能发送的数据其中第2、3部分称之为滑动窗口从功能上讲TCP的滑动窗口是TCP提高效率的重要手段TCP的滑动窗口机制允许发送方在暂时没有收到ACK的情况下发送批量数据从设计上讲TCP滑动窗口不仅考虑到了对方的接收能力也考虑到了网络的状况TCP会采取慢启动的机制对网络状况进行探测确定当前网络的最大承受能力这个值称为拥塞窗口。最终的滑动窗口大小取的是拥塞窗口大小和接收方接收缓冲区大小的较小值 题目16 什么是TCP的超时重传机制 TCP的超时重传机制指的是发送方在一定时间内没有收到接收方ACK的情况下会对数据进行补发引发超时重传主要有下面这2种情况 发送方发送的数据丢了此时发送方一定收不到ACK在一定时间之后重传数据包接收方回复的ACK丢了发送方也会重传接收方根据序号进行去重 超时重传的时间是如何确认的是固定的吗 TCP的超时重传时间不是确定的而是动态变化的超时重传时间RTO(retransmission timeout)与报文往返时间RTT(round trip time)密切相关一般而言网络状况越好RTT越小RTO越小网络状况越差RTT越大RTO也越大。 题目17 TCP如何提高传输效率 TCP在保证可靠性的前提下有多种手段可以提高效率 1是TCP的滑动窗口机制TCP滑动窗口可以让发送方在暂时没有收到ACK的情况下发送批量数据2是TCP的拥塞控制机制TCP的拥塞控制可以让TCP在网络状况良好的情况下尽可能的多发送数据3是TCP的流量控制机制TCP的流量控制可以根据接收方的接收能力动态调整发送数据的大小4是TCP的延迟应答机制接收方通过延迟应答的方式可以给发送方反馈更大的窗口大小 题目18 TCP如何保证可靠性 相似问题TCP有哪些保证可靠性的策略 TCP拥有众多策略保证可靠性 1是TCP的确认应答机制TCP的确认应答机制是TCP保证可靠性的基础2是TCP的超时重传机制TCP的超时重传机制保证了发送的数据对方一定可以收到3是TCP的快重传机制TCP的快重传机制是超时重传的补充快重传即可以保证可靠性又可提高效率4是TCP的流量控制机制TCP的流量控制可以控制发送方的发送速率避免出现大量报文丢包5是TCP的拥塞控制机制TCP的拥塞控制可以根据网络状态动态调整发送速率避免在网络状况差的情况下出现大量丢包 题目19 说一下TCP的快重传快重传与超时重传的区别 快重传指的是发送方收到3个相同的ACK确认报文时对数据进行补发的一种机制快重传与超时重传的区别如下 其一触发条件不同快重传是在收到3个相同的ACK确认报文时才出发超时重传是在超过RTO之后进行重传其二效率不同一般快重传效率要高于超时重传 虽然快重传的效率一般高于超时重传但是快重传也存在效率问题最典型的场景是在发送批量报文的时候中间报文大量丢失此时发送方会收到大量重复的ACK影响效率为了解决快重传的效率问题接收方在回复ACK时会在TCP报头的选项字段中向发送方说明哪些报文已经收到了你需要补发哪些报文具体操作是在40字节的选项字段中设置SACK字段SACK字段包含Left Edge和Right Edge属性left edge表示已经收到的不连续报文的第一个序号right edge表示已经收到的不连续报文的最后一个序号1通过SACK属性中的left edge和right edge发送方就可以知道哪些报文丢失了从而针对性的进行补发 题目20 SYN报文什么情况下会被丢弃 当全连接队列和半连接队列满了的时候SYN报文会被丢弃当一个连接处于第二次握手而没有完成三次握手时会被放入TCP的半连接队列半连接队列的大小由配置文件tcp_max_syn_backlog决定。 只有完成了3次握手连接才会从半连接队列转移到全连接队列全连接队列的大小由配置文件somaxconn和listen函数的第二个参数决定因此当SYN报文被丢失可以修改tcp_max_syn_backlog和somaxconn配置文件。 除此之外还可以通过使用syncookies功能在不使用半连接队列的情况下直接成功建立连接。 syncookies功能的作用开启了syncookies功能的话服务端收到第一个SYN之后在回复的SYNACK报文中会携带一个cookie值客户端的ACK需要携带这个cookie值进行校验校验通过直接将该连接放入全连接队列而不需要使用半连接队列。syncookies功能是否开启由配置文件tcp_syncookies决定。 0表示关闭syncookies功能 1表示只有当半连接队列满了才开启这个功能 2无条件开启这个功能这样的话半连接队列基本就没什么意义了 题目21 拔掉网线之后TCP链接还存在吗 拔掉网线之后双方主机认为TCP连接在存在如果拔掉网线之后还有数据传输那么会一直触发超时重传直到达到超时重传的最大次数tcp_retries2将会强制断开连接。 如果拔掉网线之后没有数据传输那么会触发TCP的心跳机制客户端/服务端主机会定期发送心跳报文以检测对方是否还在线如果心跳报文没有响应那么会强制断开连接。
http://www.zqtcl.cn/news/377093/

相关文章:

  • 商城类网站备案四川全网推网络推广
  • 好设计购物网站wordpress 公网访问不了
  • 局域网网站建设需要什么条件wordpress文章列表高度
  • 长春怎样建网站?学服装设计培训机构
  • 怎么用织梦制作响应式布局网站阳江网红
  • 洛阳网站建站72建站网
  • 网站版权信息修改app开发公司资质
  • 用vs2015做网站教程天津红桥网站建设
  • 触屏网站开发四川住房建设厅网站
  • 百度商桥怎么接网站wordpress电影自动采集主题
  • 丽水做网站公司用vps建网站备案
  • 西安网站制作机构视频网站 备案
  • 北京城乡建设学校网站国内外贸网站建设公司
  • 万峰科技著.asp.net网站开发四酷全书电子工业出版社专业网站制作定制
  • 如何做好一个网站运营建公司网站的详细步骤
  • python开发做网站代理注册公司怎么样
  • 网站开发技术简介深圳市市场监督管理局官网
  • 有那种网站的浏览器wordpress调用当前分类文章
  • 电子商务网站推广论文网站规划思想方法有哪些内容
  • adsl做网站无锡免费网站制作
  • 怎么利用网站开发app免费软件库合集软件资料网站
  • 做变形字的网站工程公司简介模板
  • 网站建设网页怎么排列顺序网站制作 用户登录系统
  • 音乐网站用什么语言做深圳网站排名优化公司
  • h5响应式网站建设方案南京做微网站
  • 建设班级网站首页查注册公司什么网站
  • 中小企业网站建设平台网站开发技术大学教材
  • 有四川建设人才网这个网站吗青岛外贸网站运营哪家好
  • 网站建设j介绍ppt模板注册企业公司流程及费用
  • 建网站多少费用设计公司推荐