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

西安网页设计培训学校佛山市seo网络推广公司

西安网页设计培训学校,佛山市seo网络推广公司,网站建设英文字体,服务器哪些端口可以做网站我梳理了50道计算机网络面试题#xff0c;每一道题目都特别经典#xff0c;大厂也非常喜欢问。相信大家看完#xff0c;会有新的收获滴~1. 说说HTTP常用的状态码及其含义#xff1f;思路: 这道面试题主要考察候选人#xff0c;是否掌握HTTP状态码这个基础知识点。不管是不… 我梳理了50道计算机网络面试题每一道题目都特别经典大厂也非常喜欢问。相信大家看完会有新的收获滴~1. 说说HTTP常用的状态码及其含义思路: 这道面试题主要考察候选人是否掌握HTTP状态码这个基础知识点。不管是不是面试需要我们都要知道日常开发中的这几个状态码的含义哈2. HTTP 常用的请求方式区别和用途思路: 这道题主要考察候选人是否掌握HTTP请求方式这个基础知识点我们用得比较多就是GET和POST啦。3. 请简单说一下你了解的端口及对应的服务4. 说下计算机网络体系结构思路: 这道题主要考察候选人计算机网络体系结构这个基础知识点。计算机网路体系结构呢有三层ISO七层模型、TCP/IP四层模型、五层体系结构。大家可以记住这个图如下计算机网络体系结构4.1 ISO七层模型ISO七层模型是国际标准化组织International Organization for Standardization制定的一个用于计算机或通信系统间互联的标准体系。★应用层网络服务与最终用户的一个接口常见的协议有HTTP FTP  SMTP SNMP DNS.表示层数据的表示、安全、压缩。确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。会话层建立、管理、终止会话,对应主机进程指本地主机与远程主机正在进行的会话.传输层定义传输数据的协议端口号以及流控和差错校验,协议有TCP UDP.网络层进行逻辑地址寻址实现不同网络之间的路径选择,协议有ICMP IGMP IP等.数据链路层在物理层提供比特流服务的基础上建立相邻结点之间的数据链路。物理层建立、维护、断开物理连接。”4.2 TCP/IP 四层模型★应用层对应于OSI参考模型的应用层、表示层、会话层。传输层: 对应OSI的传输层为应用层实体提供端到端的通信功能保证了数据包的顺序传送及数据的完整性。网际层对应于OSI参考模型的网络层主要解决主机到主机的通信问题。网络接口层与OSI参考模型的数据链路层、物理层对应。”4.3 五层体系结构★应用层对应于OSI参考模型的应用层、表示层、会话层。传输层对应OSI参考模型的的传输层网络层对应OSI参考模型的的网络层数据链路层对应OSI参考模型的的数据链路层物理层对应OSI参考模型的的物理层。”5 如何理解HTTP协议是无状态的思路: 这道题主要考察候选人是否理解Http协议它为什么是无状态的呢如何使它有状态呢如何理解无状态这个词呢★当浏览器第一次发送请求给服务器时服务器响应了如果同个浏览器发起第二次请求给服务器时它还是会响应但是呢服务器不知道你就是刚才的那个浏览器。简言之服务器不会去记住你是谁所以是无状态协议。”可以通过一个生活中的例子来更好理解并记住它有状态场景小红今天吃啥子小明罗非鱼~小红味道怎么样呀小明还不错好香。无状态的场景小红今天吃啥子小明罗非鱼~小红味道怎么样呀小明啊你说啥什么鬼什么味道怎么样Http加了Cookie的话小红今天吃啥子小明罗非鱼~小红你今天吃的罗非鱼味道怎么样呀小明还不错好香。6.从浏览器地址栏输入url到显示主页的过程思路: 这道题主要考察的知识点是HTTP的请求过程DNS解析TCP三次握手四次挥手这几个要点我们都可以讲下。DNS解析查找域名对应的IP地址。与服务器通过三次握手建立TCP连接向服务器发送HTTP请求服务器处理请求返回网页内容浏览器解析并渲染页面TCP四次挥手连接结束7. 说下HTTP/1.01.12.0的区别思路: 这道题主要考察的知识点是HTTP几个版本的区别我们记住HTTP/1.0默认是短连接可以强制开启HTTP/1.1默认长连接HTTP/2.0采用多路复用就差不多啦。HTTP/1.0默认使用短连接每次请求都需要建立一个TCP连接。它可以设置Connection: keep-alive 这个字段强制开启长连接。HTTP/1.1引入了持久连接即TCP连接默认不关闭可以被多个请求复用。分块传输编码即服务端没产生一块数据就发送一块用”流模式”取代”缓存模式”。管道机制即在同一个TCP连接里面客户端可以同时发送多个请求。HTTP/2.0二进制协议1.1版本的头信息是文本ASCII编码数据体可以是文本或者二进制2.0中头信息和数据体都是二进制。完全多路复用在一个连接里客户端和浏览器都可以同时发送多个请求或回应而且不用按照顺序一一对应。报头压缩HTTP协议不带有状态每次请求都必须附上所有信息。Http/2.0引入了头信息压缩机制使用gzip或compress压缩后再发送。服务端推送允许服务器未经请求主动向客户端发送资源。8.  POST和GET有哪些区别思路: 这道题主要考察的知识点是POST和GET的区别可以从数据包、编码方式、请求参数、收藏为书签、历史记录、安全性等几方面去回答哈。9. 在交互过程中如果数据传送完了还不想断开连接怎么办怎么维持这个问题记住keep-alive就好也就是说在HTTP中响应体的Connection字段指定为keep-alive即可10. HTTP 如何实现长连接在什么时候会超时思路: 这道题实际上是考察TCP长连接的知识点HTTP的长连接实质是指TCP的长连接。至于什么时候超时我们记住这几个参数如tcp_keepalive_time、tcp_keepalive_probes就好啦什么是HTTP的长连接HTTP分为长连接和短连接本质上说的是TCP的长短连接。TCP连接是一个双向的通道它是可以保持一段时间不关闭的因此TCP连接才具有真正的长连接和短连接这一说法哈。TCP长连接可以复用一个TCP连接来发起多次的HTTP请求这样就可以减少资源消耗比如一次请求HTML如果是短连接的话可能还需要请求后续的JS/CSS。如何设置长连接通过在头部请求和响应头设置Connection字段指定为keep-aliveHTTP/1.0协议支持但是是默认关闭的从HTTP/1.1以后连接默认都是长连接。在什么时候会超时呢★HTTP一般会有httpd守护进程里面可以设置keep-alive timeout当tcp连接闲置超过这个时间就会关闭也可以在HTTP的header里面设置超时时间TCP 的keep-alive包含三个参数支持在系统内核的net.ipv4里面设置当 TCP 连接之后闲置了tcp_keepalive_time则会发生侦测包如果没有收到对方的ACK那么会每隔 tcp_keepalive_intvl再发一次直到发送了tcp_keepalive_probes就会丢弃该连接。”1. tcp_keepalive_intvl  15 2. tcp_keepalive_probes  5 3. tcp_keepalive_time  180011. HTTP 与 HTTPS 的区别。思路: 这道题实际上考察的知识点是HTTP与HTTPS的区别这个知识点非常重要可以从安全性、数据是否加密、默认端口等这几个方面去回答哈。其实当你理解HTTPS的整个流程就可以很好回答这个问题啦。我的答案如下HTTP即超文本传输协议是一个基于TCP/IP通信协议来传递明文数据的协议。HTTP会存在这几个问题请求信息是明文传输容易被窃听截取。没有验证对方身份存在被冒充的风险数据的完整性未校验容易被中间人篡改为了解决Http存在的问题Https出现啦。Https是什么HTTPS HTTPSSL/TLS可以理解Https是身披SSL(Secure Socket Layer安全套接层)的HTTP。它们主要区别如下12 . Https流程是怎样的思路: 这道题实际上考察的知识点是HTTPS的工作流程大家需要回答这几个要点公私钥、数字证书、加密、对称加密、非对称加密。HTTPS HTTP SSL/TLS也就是用SSL/TLS对数据进行加密和解密Http进行传输。SSL即Secure Sockets Layer安全套接层协议是网络通信提供安全及数据完整性的一种安全协议。TLS即Transport Layer Security(安全传输层协议)它是SSL3.0的后续版本。Https工作流程客户端发起Https请求连接到服务器的443端口。服务器必须要有一套数字证书证书内容有公钥、证书颁发机构、失效日期等。服务器将自己的数字证书发送给客户端公钥在证书里面私钥由服务器持有。客户端收到数字证书之后会验证证书的合法性。如果证书验证通过就会生成一个随机的对称密钥用证书的公钥加密。客户端将公钥加密后的密钥发送到服务器。服务器接收到客户端发来的密文密钥之后用自己之前保留的私钥对其进行非对称解密解密之后就得到客户端的密钥然后用客户端密钥对返回数据进行对称加密酱紫传输的数据都是密文啦。服务器将加密后的密文返回到客户端。客户端收到后用自己的密钥对其进行对称解密得到服务器返回的数据。13. 说说HTTP的状态码301和302的区别思路: 这道题考查的知识点也是HTTP状态码302和301都有重定向的含义但是它们也是有区别的。301永久性转移请求的网页已被永久移动到新位置。服务器返回此响应时会自动将请求者转到新位置。302暂时性转移服务器目前正从不同位置的网页响应请求但请求者应继续使用原有位置来进行以后的请求。此代码与响应GET和HEAD请求的301代码类似会自动将请求者转到不同的位置。网上有个很形象的例子比喻★当一个网站或者网页24—48小时内临时移动到一个新的位置这时候就要进行302跳转打个比方说我有一套房子但是最近走亲戚去亲戚家住了过两天我还回来的。而使用301跳转的场景就是之前的网站因为某种原因需要移除掉然后要到新的地址访问是永久性的就比如你的那套房子其实是租的现在租期到了你又在另一个地方找到了房子之前租的房子不住了。”14. 说说什么是数字签名什么是数字证书思路: 这道题考查的知识点不仅仅是数字签名数字证书很可能面试官也会问你https的原理的因为https原理跟数字证书有关的哈大家需要掌握https原理哦。数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证人们可以在网上用它来识别对方的身份。它的出现是为了避免身份被篡改冒充的。比如Https的数字证书就是为了避免公钥被中间人冒充篡改数字证书构成公钥和个人等信息经过Hash摘要算法加密形成消息摘要将消息摘要拿到拥有公信力的认证中心CA用它的私钥对消息摘要加密形成数字签名。公钥和个人信息、数字签名共同构成数字证书。15. 对称加密与非对称加密有什么区别思路: 这道题考察的知识点是对称加密与非对称加密算法什么是对称加密什么是非对称加密呢对称加密指加密和解密使用同一密钥优点是运算速度较快缺点是如何安全将密钥传输给另一方。常见的对称加密算法有DES、AES等。对称加密非对称加密指的是加密和解密使用不同的密钥即公钥和私钥。公钥与私钥是成对存在的如果用公钥对数据进行加密只有对应的私钥才能解密。常见的非对称加密算法有RSA。非对称加密16. 说说DNS的解析过程思路: 这道题考察的知识点是DNS域名解析http请求的过程是涉及到DNS域名解析的这道面试题也挺经典的大家可以看下《图解HTTP》那本书哈。★DNS英文全称是domain name system域名解析系统是Internet上作为域名和IP相互映射的一个分布式数据库。它的作用很明确就是可以根据域名查出对应的IP地址。在浏览器缓存、本地DNS服务器、根域名服务器都是怎么查找的大家回答的时候都可以说下哈。”DNS的解析过程如下图DNS解析查找过程假设你要查询www.baidu.com的IP地址:★首先会查找浏览器的缓存,看看是否能找到www.baidu.com对应的IP地址找到就直接返回否则进行下一步。将请求发往给本地DNS服务器如果查找到也直接返回否则继续进行下一步本地DNS服务器向根域名服务器发送请求根域名服务器返回负责.com的顶级域名服务器的IP地址的列表。本地DNS服务器再向其中一个负责.com的顶级域名服务器发送一个请求返回负责.baidu的权威域名服务器的IP地址列表。本地DNS服务器再向其中一个权威域名服务器发送一个请求返回www.baidu.com所对应的IP地址。”17. 什么是CSRF攻击如何避免思路: 这道题考察的知识点是CSRF攻击它是属于网络安全这块的知识点还有Xss攻击、SQL注入、DDoS等这些常见的网络攻击我们都需要知道攻击的流程哈。什么是CSRF 攻击★CSRF跨站请求伪造英文全称是Cross-site request forgery是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。”CSRF是如何攻击的呢来看一个来自百度百科的例子哈Tom 登陆银行没有退出浏览器包含了Tom在银行的身份认证信息。黑客Jerry将伪造的转账请求包含在在帖子Tom在银行网站保持登陆的情况下浏览帖子将伪造的转账请求连同身份认证信息发送到银行网站银行网站看到身份认证信息以为就是Tom的合法操作最后造成Tom资金损失。怎么解决CSRF攻击呢检查Referer字段。添加校验token。18. 聊聊五层计算机网络体系结构中每一层对应的网络协议有哪些为了大家方便记忆我还是画个思维导图吧如下19. 说说 WebSocket与socket的区别思路: 这是一个比较基础的知识点经常有小伙伴会搞混。Socket其实就是等于IP地址 端口 协议。★具体来说Socket是一套标准它完成了对TCP/IP的高度封装屏蔽网络细节以方便开发者更好地进行网络编程。”WebSocket是一个持久化的协议它是伴随H5而出的协议用来解决http不支持持久化连接的问题。Socket一个是网编编程的标准接口而WebSocket则是应用层通信协议。20. 什么是DoS、DDoS、DRDoS攻击思路: 这是涉及网络安全的一个知识点DDos还会挺常见的如SYN Flood。★DOS: (Denial of Service),翻译过来就是拒绝服务,一切能引起DOS行为的攻击都被称为DOS攻击。最常见的DoS攻击就有计算机网络宽带攻击、连通性攻击。DDoS: (Distributed Denial of Service),翻译过来是分布式拒绝服务。是指处于不同位置的多个攻击者同时向一个或几个目标发动攻击或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。常见的DDos有SYN Flood、Ping of Death、ACK Flood、UDP Flood等。DRDoS: (Distributed Reflection Denial of Service)中文是分布式反射拒绝服务该方式靠的是发送大量带有被害者IP地址的数据包给攻击主机然后攻击主机对IP地址源做出大量回应从而形成拒绝服务攻击。”21. 什么是XSS攻击如何避免?思路: XSS攻击也是比较常见XSS叫跨站脚本攻击Cross-Site Scripting因为会与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆因此有人将跨站脚本攻击缩写为XSS。它指的是恶意攻击者往Web页面里插入恶意html代码当用户浏览该页之时嵌入其中Web里面的html代码会被执行从而达到恶意攻击用户的特殊目的。XSS攻击一般分三种类型存储型 、反射型 、DOM型XSS21.1 XSS是如何攻击的呢拿反射型举个例子吧流程图如下21.2 如何解决XSS攻击问题对输入进行过滤过滤标签等只允许合法值。HTML转义对于链接跳转如a hrefxxx 等要校验内容禁止以script开头的非法链接。限制输入长度22. Http请求的过程与原理思路: HTTP请求一个非常非常基础的知识点一定需要掌握的。其实觉得跟浏览器地址栏输入url到显示主页这道题有点类似。我的答案如下HTTP是一个基于TCP/IP协议来传递数据的超文本传输协议传输的数据类型有HTML,图片等。以访问百度有例子看下一次Http的请求过程吧Http请求过程客户端进行DNS域名解析得到对应的IP地址根据这个IP找到对应的服务器建立连接三次握手建立TCP连接后发起HTTP请求一个完整的http请求报文服务器响应HTTP请求客户端得到html代码客户端解析html代码用html代码中的资源(如js,css,图片等等)渲染页面。服务器关闭TCP连接四次挥手23.  forward和redirect的区别思路: 这道题有点偏Java web方向的。以前记得刚出来实习找工作的时候面试官可喜欢问这道题啦当时我记的答案就是forward是转发redirect是重定向。我的答案如下★直接转发方式Forward 客户端和浏览器只发出一次请求Servlet、HTML、JSP或其它信息资源由第二个信息资源响应该请求在请求对象request中保存的对象对于每个信息资源是共享的。间接转发方式Redirect 实际是两次HTTP请求服务器端在响应第一次请求的时候让浏览器再向另外一个URL发出请求从而达到转发的目的。”举个通俗的例子★直接转发就相当于“A找B借钱B说没有B去找C借借到借不到都会把消息传递给A”间接转发就相当于A找B借钱B说没有让A去找C借。**”看下这两个图可以更容易理解一些:Redirect 的工作原理forward 的工作原理24. 聊聊SQL注入思路: SQL注入是最经典的安全问题。无论你是前端开发还是后端开发都必须掌握的。★SQL注入是一种代码注入技术一般被应用于攻击web应用程序。它通过在web应用接口传入一些特殊参数字符来欺骗应用服务器执行恶意的SQL命令以达到非法获取系统信息的目的。它目前是黑客对数据库进行攻击的最常用手段之一。”24.1 SQL注入是如何攻击的举个常见的业务场景在web表单搜索框输入员工名字然后后台查询出对应名字的员工。这种场景下一般都是前端页面,把一个名字参数name传到后台然后后台通过SQL把结果查询出来name  田螺; //前端传过来的SQL select * from staff where name  name;  //根据前端传过来的name参数查询数据库员工表staff因为SQL是直接拼接的如果我们完全信任前端传的参数的话。假如前端传这么一个参数时 or 11SQL就变成酱紫的啦。select * from staff where name or 11;这个SQL会把所有的员工信息全都查出来了酱紫就请求用户已经越权啦。请求者可以获取所有员工的信息信息已经暴露了啦。24.2 如何预防SQL注入问题1). 使用#{}而不是 ${}在MyBatis中,使用#{}而不是${}可以很大程度防止sql注入。因为#{}是一个参数占位符对于字符串类型会自动加上其他类型不加。由于Mybatis采用预编译其后的参数不会再进行SQL编译所以一定程度上防止SQL注入。${}是一个简单的字符串替换字符串是什么就会解析成什么存在SQL注入风险2). 不要暴露一些不必要的日志或者安全信息比如避免直接响应一些sql异常信息。如果SQL发生异常了不要把这些信息暴露响应给用户可以自定义异常进行响应3). 不相信任何外部输入参数过滤参数中含有的一些数据库关键词关键词可以加个参数校验过滤的方法过滤unionor等数据库关键词4). 适当的权限控制在你查询信息时先校验下当前用户是否有这个权限。比如说实现代码的时候可以让用户多传一个企业Id什么的或者获取当前用户的session信息等在查询前先校验一下当前用户是否是这个企业下的等等是的话才有这个查询员工的权限。25. Session和Cookie的区别。我们先来看Session和Cookie的概念吧Cookie是保存在客户端的一小块文本串的数据。客户端向服务器发起请求时服务端会向客户端发送一个Cookie客户端就把Cookie保存起来。在客户端下次向同一服务器再发起请求时Cookie被携带发送到服务器。服务器就是根据这个Cookie来确认身份的。session指的就是服务器和客户端一次会话的过程。Session利用Cookie进行信息处理的当用户首先进行了请求后服务端就在用户浏览器上创建了一个Cookie当这个Session结束时其实就是意味着这个Cookie就过期了。Session对象存储着特定用户会话所需的属性及配置信息。Session 和Cookie的区别主要有这些来看个图吧★用户第一次请求服务器时服务器根据用户提交的信息创建对应的Session请求返回时将此Session的唯一标识信息SessionID返回给浏览器浏览器接收到服务器返回的SessionID信息后会将此信息存入Cookie中同时Cookie记录此SessionID是属于哪个域名。当用户第二次访问服务器时请求会自动判断此域名下是否存在Cookie信息如果存在则自动将Cookie信息也发送给服务端服务端会从Cookie中获取SessionID再根据 SessionID查找对应的 Session信息如果没有找到说明用户没有登录或者登录失效如果找到Session证明用户已经登录可执行后面操作。”26. IP地址有哪些分类一般可以这么认为IP地址网络号主机号。网络号它标志主机所连接的网络地址表示属于互联网的哪一个网络。主机号它标志主机地址表示其属于该网络中的哪一台主机。IP地址分为ABCDE五大类A类地址(1~126)以0开头网络号占前8位主机号占后面24位。B类地址(128~191)以10开头网络号占前16位主机号占后面16位。C类地址(192~223)以110开头网络号占前24位主机号占后面8位。D类地址(224~239)以1110开头保留位多播地址。E类地址(240~255)以11110开头保留位为将来使用IP地址分类27. 说下ARP 协议的工作过程ARP 协议协议Address Resolution Protocol地址解析协议它是用于实现IP地址到MAC地址的映射。★首先每台主机都会在自己的ARP缓冲区中建立一个ARP列表以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包要发送到目的主机时会首先检查自己的ARP列表是否存在该IP地址对应的MAC地址如果有﹐就直接将数据包发送到这个MAC地址如果没有就向本地网段发起一个ARP请求的广播包查询此目的主机对应的MAC地址。此ARP请求的数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。网络中所有的主机收到这个ARP请求后会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就会忽略此数据包如果相同该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中如果ARP表中已经存在该IP的信息则将其覆盖然后给源主机发送一个 ARP响应数据包告诉对方自己是它需要查找的MAC地址。源主机收到这个ARP响应数据包后将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包表示ARP查询失败。”28. 有了IP地址为什么还要用MAC地址★简而言之标识网络中的一台计算机比较常用的就是IP地址和MAC地址但计算机的IP地址可由用户自行更改管理起来就相对困难而MAC地址不可更改所以一般会把IP地址和MAC地址组合起来使用。那只使用MAC地址不用IP地址行不行呢不行的因为最早就是MAC地址先出现的并且当时并不用IP地址只用MAC地址后来随着网络中的设备越来越多整个路由过程越来越复杂便出现了子网的概念。对于目的地址在其他子网的数据包路由只需要将数据包送到那个子网即可。那为什么要用IP地址呢是因为IP地址是和地域相关的对于同一个子网上的设备IP地址的前缀都是一样的这样路由器通过IP地址的前缀就知道设备在在哪个子网上了而只用MAC地址的话路由器则需要记住每个MAC地址在哪个子网这需要路由器有极大的存储空间是无法实现的。IP地址可以比作为地址MAC地址为收件人在一次通信过程中两者是缺一不可的。”29. TCP 和 UDP 分别对应的常见应用层协议有哪些基于TCP的应用层协议有HTTP、FTP、SMTP、TELNET、SSHHTTPHyperText Transfer Protocol超文本传输协议默认端口80FTP: File Transfer Protocol (文件传输协议), 默认端口(20用于传输数据21用于传输控制信息)SMTP: Simple Mail Transfer Protocol (简单邮件传输协议) ,默认端口25TELNET: Teletype over the Network (网络电传), 默认端口23SSHSecure Shell安全外壳协议默认端口 22基于UDP的应用层协议DNS、TFTP、SNMPDNS : Domain Name Service (域名服务),默认端口 53TFTP: Trivial File Transfer Protocol (简单文件传输协议)默认端口69SNMPSimple Network Management Protocol简单网络管理协议通过UDP端口161接收只有Trap信息采用UDP端口162。30. 聊聊保活计时器的作用除时间等待计时器外TCP 还有一个保活计时器keepalive timer。设想这样的场景客户已主动与服务器建立了TCP连接。但后来客户端的主机突然发生故障。显然服务器以后就不能再收到客户端发来的数据。因此应当有措施使服务器不要再白白等待下去。这就需要使用保活计时器了。服务器每收到一次客户的数据就重新设置保活计时器时间的设置通常是两个小时。若两个小时都没有收到客户端的数据服务端就发送一个探测报文段以后则每隔 75秒钟发送一次。若连续发送10个探测报文段后仍然无客户端的响应服务端就认为客户端出了故障接着就关闭这个连接。31. 如果服务器出现了大量CLOSE_WAIT状态如何解决。我们先来复习下TCP的四次挥手服务器端收到客户端发送的FIN后TCP协议栈就会自动发送ACK接着进入CLOSE_WAIT状态。但是如果服务器端不执行socket的close()操作那么就没法进入LAST_ACK,导致大量连接处于CLOSE_WAIT状态所以如果服务器出现了大量CLOSE_WAIT状态一般是程序Bug或者关闭socket不及时。32. URI和URL的区别URI全称是Uniform Resource Identifier)中文翻译是统一资源标志符主要作用是唯一标识一个资源。URL全称是Uniform Resource Location)中文翻译是统一资源定位符主要作用是提供资源的路径。打个经典比喻吧URI像是身份证可以唯一标识一个人而URL更像一个住址可以通过URL找到这个人。33. ICMP协议的功能ICMP,Internet Control Message Protocol ,Internet控制消息协议。ICMP协议是一种面向无连接的协议用于传输出错报告控制信息。它是一个非常重要的协议它对于网络安全具有极其重要的意义。它属于网络层协议主要用于在主机与路由器之间传递控制信息包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时会自动发送ICMP消息。比如我们日常使用得比较多的ping就是基于ICMP的。35. 说下ping的原理★pingPacket Internet Groper是一种因特网包探索器用于测试网络连接量的程序。Ping是工作在TCP/IP网络体系结构中应用层的一个服务命令 主要是向特定的目的主机发送ICMPInternet Control Message Protocol 因特网报文控制协议 请求报文测试目的站是否可达及了解其有关状态”一般来说ping可以用来检测网络通不通。它是基于ICMP协议工作的。假设机器A ping机器B工作过程如下ping通知系统新建一个固定格式的ICMP请求数据包ICMP协议将该数据包和目标机器B的IP地址打包一起转交给IP协议层IP层协议将本机IP地址为源地址机器B的IP地址为目标地址加上一些其他的控制信息构建一个IP数据包先获取目标机器B的MAC地址。数据链路层构建一个数据帧目的地址是IP层传过来的MAC地址源地址是本机的MAC地址机器B收到后对比目标地址和自己本机的MAC地址是否一致符合就处理返回不符合就丢弃。根据目的主机返回的ICMP回送回答报文中的时间戳从而计算出往返时间最终显示结果有这几项发送到目的主机的IP地址、发送 收到 丢失的分组数、往返时间的最小、最大 平均值36. 请详细介绍一下TCP 的三次握手机制思路: TCP连接的三次握手机制最重要的知识点必须得会通讯过程以及客户端、服务器的对应的状态都需要记住哈。TCp提供可靠的连接服务连接是通过三次握手进行初始化的。三次握手的目的就是同步连接双方的序列号和确认号并交换TCP窗口大小信息。我们一起来看下流程图哈TCP三次握手第一次握手(SYN1, seqx)发送完毕后客户端就进入SYN_SEND状态第二次握手(SYN1, ACK1, seqy, ACKnumx1) 发送完毕后服务器端就进入SYN_RCV状态。第三次握手(ACK1ACKnumy1)发送完毕后客户端进入ESTABLISHED状态当服务器端接收到这个包时也进入ESTABLISHED状态。37. TCP握手为什么是三次为什么不能是两次不能是四次思路: TCP握手为什么不能是两次为什么不能是四次呢为了方便理解我们以男孩子和女孩子谈恋爱为例子两个人能走到一起最重要的事情就是相爱就是我爱你并且我知道你也爱我接下来我们以此来模拟三次握手的过程为什么握手不能是两次呢如果只有两次握手女孩子可能就不知道她的那句我也爱你男孩子是否收到恋爱关系就不能愉快展开。为什么握手不能是四次呢因为握手不能是四次呢因为三次已经够了三次已经能让双方都知道你爱我我也爱你。而四次就多余了。38. 说说TCP四次挥手过程思路: TCP的四次挥手也是最重要的知识点一般跟三次握手会一起考的必须得记住。TCP四次挥手过程第一次挥手(FIN1sequ)发送完毕后客户端进入FIN_WAIT_1状态。第二次挥手(ACK1acku1,seq v)发送完毕后服务器端进入CLOSE_WAIT状态客户端接收到这个确认包之后进入FIN_WAIT_2状态。第三次挥手(FIN1ACK1,seqw,acku1)发送完毕后服务器端进入LAST_ACK状态等待来自客户端的最后一个ACK。第四次挥手(ACK1sequ1,ackw1)客户端接收到来自服务器端的关闭请求发送一个确认包并进入TIME_WAIT状态等待了某个固定时间两个最大段生命周期2MSL2 Maximum Segment Lifetime之后没有收到服务器端的ACK 认为服务器端已经正常关闭连接于是自己也关闭连接进入CLOSED状态。服务器端接收到这个确认包之后关闭连接进入CLOSED状态。39. TCP挥手为什么需要四次呢思路 TCP挥手为什么需要四次呢为了方便大家理解再举个生活的例子吧。★小明和小红打电话聊天通话差不多要结束时小红说“我没啥要说的了”。小明回答“我知道了”。但是小明可能还有要说的话小红不能要求小明跟着她自己的节奏结束通话于是小明可能又叽叽歪歪说了一通最后小明说“我说完了”小红回答“我知道了”这样通话才算结束。”40. TCP四次挥手过程中为什么需要等待2MSL,才进入CLOSED关闭状态思路 这个问得频率特别高。去面试前一定要把这道题拿下哈。2MSLtwo Maximum Segment Lifetime即两个最大段生命周期。假设主动发起挥手的是客户端那么需要2MSL的原因是★1.为了保证客户端发送的最后一个ACK报文段能够到达服务端。 这个ACK报文段有可能丢失因而使处在LAST-ACK状态的服务端就收不到对已发送的FIN ACK报文段的确认。服务端会超时重传这个FINACK 报文段而客户端就能在 2MSL 时间内超时 1MSL 传输收到这个重传的 FINACK 报文段。接着客户端重传一次确认重新启动2MSL计时器。最后客户端和服务器都正常进入到CLOSED状态。2. 防止已失效的连接请求报文段出现在本连接中。客户端在发送完最后一个ACK报文段后再经过时间2MSL就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样就可以使下一个连接中不会出现这种旧的连接请求报文段。”41. TCP的粘包和拆包TCP是面向流没有界限的一串数据。TCP底层并不了解上层业务数据的具体含义它会根据TCP缓冲区的实际情况进行包的划分所以在业务上认为一个完整的包可能会被TCP拆分成多个包进行发送也有可能把多个小的包封装成一个大的数据包发送这就是所谓的TCP粘包和拆包问题。TCP的粘包和拆包为什么会产生粘包和拆包呢?要发送的数据小于TCP发送缓冲区的大小TCP将多次写入缓冲区的数据一次发送出去将会发生粘包接收数据端的应用层没有及时读取接收缓冲区中的数据将发生粘包要发送的数据大于TCP发送缓冲区剩余空间大小将会发生拆包待发送数据大于MSS最大报文长度TCP在传输前将进行拆包。即TCP报文长度-TCP头部长度MSS。解决方案发送端将每个数据包封装为固定长度在数据尾部增加特殊字符进行分割将数据分为两部分一部分是头部一部分是内容体其中头部结构大小固定且有一个字段声明内容体的大小。42. 聊聊TCP的流量控制TCP三次握手发送端和接收端进入到ESTABLISHED状态它们即可以愉快地传输数据啦。但是发送端不能疯狂地向接收端发送数据因为接收端接收不过来的话接收方只能把处理不过来的数据存在缓存区里。如果缓存区都满了发送方还在疯狂发送数据的话接收方只能把收到的数据包丢掉这就浪费了网络资源啦。★TCP 提供一种机制可以让发送端根据接收端的实际接收能力控制发送的数据量这就是流量控制。”TCP通过滑动窗口来控制流量我们看下流量控制的简要流程吧首先双方三次握手初始化各自的窗口大小均为 400 个字节。TCP的流量控制假如当前发送方给接收方发送了200个字节那么发送方的SND.NXT会右移200个字节也就是说当前的可用窗口减少了200 个字节。接受方收到后放到缓冲队列里面REV.WND 400-200200字节所以win200字节返回给发送方。接收方会在 ACK 的报文首部带上缩小后的滑动窗口200字节发送方又发送200字节过来200字节到达继续放到缓冲队列。不过这时候由于大量负载的原因接受方处理不了这么多字节只能处理100字节剩余的100字节继续放到缓冲队列。这时候REV.WND 400-200-100100字节即win100返回发送方。发送方继续干活发送100字节过来这时候接受窗口win变为0。发送方停止发送开启一个定时任务每隔一段时间就去询问接受方直到win大于0才继续开始发送。43. 说说半连接队列和 SYN Flood攻击的关系思路讲解 我以前面试的时候面试官就问我什么是半连接队列、什么是全连接队列哈哈。我们需要掌握半连接队列、全连接对列是啥还需要清楚半连接队列和 SYN Flood攻击有什么关系。我的答案如下TCP进入三次握手前服务端会从CLOSED状态变为LISTEN状态,同时在内部创建了两个队列半连接队列SYN队列和全连接队列ACCEPT队列。什么是半连接队列SYN队列 呢? 什么是全连接队列ACCEPT队列 呢回忆下TCP三次握手的图三次握手TCP三次握手时客户端发送SYN到服务端服务端收到之后便回复ACK和SYN状态由LISTEN变为SYN_RCVD此时这个连接就被推入了SYN队列即半连接队列。当客户端回复ACK, 服务端接收后三次握手就完成了。这时连接会等待被具体的应用取走在被取走之前它被推入ACCEPT队列即全连接队列。SYN Flood是一种典型的DDos攻击它在短时间内伪造不存在的IP地址,向服务器大量发起SYN报文。当服务器回复SYNACK报文后不会收到ACK回应报文导致服务器上建立大量的半连接半连接队列满了这就无法处理正常的TCP请求啦。那么有哪些方案应对呢主要有 syn cookie和SYN Proxy防火墙等。★syn cookie在收到SYN包后服务器根据一定的方法以数据包的源地址、端口等信息为参数计算出一个cookie值作为自己的SYNACK包的序列号回复SYNACK后服务器并不立即分配资源进行处理等收到发送方的ACK包后重新根据数据包的源地址、端口计算该包中的确认序列号是否正确如果正确则建立连接否则丢弃该包。SYN Proxy防火墙服务器防火墙会对收到的每一个SYN报文进行代理和回应并保持半连接。等发送方将ACK包返回后再重新构造SYN包发到服务器建立真正的TCP连接。”44. 聊聊TCP的滑动窗口思路讲解 TCP滑动窗口是个高频考点我们需要知道TCP报文首部有个字段win控制窗口大小的同时也需要掌握滑动窗口是怎么滑的。TCP 发送一个数据如果需要收到确认应答才会发送下一个数据。这样的话就会有个缺点效率会比较低。★这就好像我们面对面在聊天你说完一句我应答之后你才能说下一句。那么如果我在忙其他事情没有能够及时回复你呢你说完一句后要等到我忙完回复你你才说下句这显然不现实效率太低。”为了解决这个问题TCP引入了窗口它是操作系统开辟的一个缓存空间。窗口大小值表示无需等待确认应答而可以继续发送数据的最大值。TCP头部有个字段叫win也即那个16位的窗口大小它告诉对方本端的TCP接收缓冲区还能容纳多少字节的数据这样对方就可以控制发送数据的速度从而达到流量控制的目的。★通俗点讲就是接受方每次收到数据包在发送确认报文的时候同时告诉发送方自己的缓存区还有多少空余空间缓冲区的空余空间我们就称之为接受窗口大小。这就是win。”TCP 滑动窗口分为两种: 发送窗口和接收窗口。发送端的滑动窗口包含四大部分如下已发送且已收到ACK确认已发送但未收到ACK确认未发送但可以发送未发送也不可以发送虚线矩形框就是发送窗口。SND.WND: 表示发送窗口的大小,上图虚线框的格子数是14个即发送窗口大小是14。SND.NXT下一个发送的位置它指向未发送但可以发送的第一个字节的序列号。SND.UNA: 一个绝对指针它指向的是已发送但未确认的第一个字节的序列号。接收方的滑动窗口包含三大部分如下已成功接收并确认未收到数据但可以接收未收到数据并不可以接收的数据虚线矩形框就是接收窗口。REV.WND: 表示接收窗口的大小,上图虚线框的格子就是9个。REV.NXT:下一个接收的位置它指向未收到但可以接收的第一个字节的序列号。45. TCP的拥塞控制思路讲解 TCP拥塞机制也是个高频考点需要掌握它跟流量控制的区别也需要掌握拥塞控制的这几种算法慢启动算法、拥塞避免、拥塞发生、快速恢复算法。拥塞控制是作用于网络的防止过多的数据包注入到网络中避免出现网络负载过大的情况。它的目标主要是最大化利用网络上瓶颈链路的带宽。它跟流量控制又有什么区别呢流量控制是作用于接收者的根据接收端的实际接收能力控制发送速度防止分组丢失的。我们可以把网络链路比喻成一根水管如果我们想最大化利用网络来传输数据那就是尽快让水管达到最佳充满状态。发送方维护一个拥塞窗口cwndcongestion window 的变量用来估算在一段时间内这条链路水管可以承载和运输的数据水的数量。它大小代表着网络的拥塞程度并且是动态变化的但是为了达到最大的传输效率我们该如何知道这条水管的运送效率是多少呢一个比较简单的方法就是不断增加传输的水量直到水管快要爆裂为止对应到网络上就是发生丢包用 TCP的描述就是★只要网络中没有出现拥塞拥塞窗口的值就可以再增大一些以便把更多的数据包发送出去但只要网络出现拥塞拥塞窗口的值就应该减小一些以减少注入到网络中的数据包数。”实际上拥塞控制主要有这几种常用算法慢启动拥塞避免拥塞发生快速恢复45.1 慢启动算法慢启动算法表面意思就是别急慢慢来。它表示TCP建立连接完成后一开始不要发送大量的数据而是先探测一下网络的拥塞程度。由小到大逐渐增加拥塞窗口的大小如果没有出现丢包每收到一个ACK就将拥塞窗口cwnd大小就加1单位是MSS。每轮次发送窗口增加一倍呈指数增长如果出现丢包拥塞窗口就减半进入拥塞避免阶段。TCP连接完成初始化cwnd 1表明可以传一个MSS单位大小的数据。每当收到一个ACKcwnd就加一;每当过了一个RTTcwnd就增加一倍; 呈指数让升为了防止cwnd增长过大引起网络拥塞还需设置一个慢启动阀值ssthreshslow start threshold状态变量。当cwnd到达该阀值后就好像水管被关小了水龙头一样减少拥塞状态。即当cwnd ssthresh时进入了拥塞避免算法。45.2 拥塞避免算法一般来说慢启动阀值ssthresh是65535字节cwnd到达慢启动阀值后每收到一个ACK时cwnd cwnd 1/cwnd当每过一个RTT时cwnd cwnd 1显然这是一个线性上升的算法避免过快导致网络拥塞问题。45.3 拥塞发生当网络拥塞发生丢包时会有两种情况RTO超时重传快速重传如果是发生了RTO超时重传就会使用拥塞发生算法慢启动阀值sshthresh  cwnd /2cwnd 重置为 1进入新的慢启动过程这真的是辛辛苦苦几十年一朝回到解放前。其实还有更好的处理方式就是快速重传。发送方收到3个连续重复的ACK时就会快速地重传不必等待RTO超时再重传。image.png慢启动阀值ssthresh 和 cwnd 变化如下拥塞窗口大小 cwnd cwnd/2慢启动阀值 ssthresh cwnd进入快速恢复算法45.4 快速恢复快速重传和快速恢复算法一般同时使用。快速恢复算法认为还有3个重复ACK收到说明网络也没那么糟糕所以没有必要像RTO超时那么强烈。正如前面所说进入快速恢复之前cwnd 和 sshthresh已被更新- cwnd  cwnd /2 - sshthresh  cwnd然后真正的快速算法如下cwnd sshthresh   3重传重复的那几个ACK即丢失的那几个数据包如果再收到重复的 ACK那么 cwnd cwnd 1如果收到新数据的 ACK 后, cwnd sshthresh。因为收到新数据的 ACK表明恢复过程已经结束可以再次进入了拥塞避免的算法了。46.请简述TCP和UDP的区别思路 这道题校招的时候问的概率高点概念性的东西TCP是面向连接而UDP是无连接。TCP和UDP对比47. 说说TCP是如何确保可靠性的呢思路 TCP是可靠的连接为什么具有可靠性呢记住这些点连接和断开的可靠性三次握手四次挥手、有状态哪些数据发送了哪些没发、可控制超时重传、流量控制、拥塞控制等。首先TCP的连接是基于三次握手而断开则是基于四次挥手。确保连接和断开的可靠性。其次TCP的可靠性还体现在有状态;TCP会记录哪些数据发送了哪些数据被接收了哪些没有被接受并且保证数据包按序到达保证数据传输不出差错。再次TCP的可靠性还体现在可控制。它有数据包校验、ACK应答、超时重传(发送方)、失序数据重传接收方、丢弃重复数据、流量控制滑动窗口和拥塞控制等机制。48. 说说TCP报文首部有哪些字段其作用又分别是什么思路 小伙伴们可以记下这个图。16位端口号源端口号主机该报文段是来自哪里目标端口号要传给哪个上层协议或应用程序32位序号一次TCP通信从TCP连接建立到断开过程中某一个传输方向上的字节流的每个字节的编号。32位确认号用作对另一方发送的tcp报文段的响应。其值是收到的TCP报文段的序号值加1。4位头部长度表示tcp头部有多少个32bit字4字节。因为4位最大能标识15所以TCP头部最长是60字节。6位标志位URG(紧急指针是否有效)ACk表示确认号是否有效PSH缓冲区尚未填满RST表示要求对方重新建立连接SYN建立连接消息标志接FIN表示告知对方本端要关闭连接了16位窗口大小是TCP流量控制的一个手段。这里说的窗口指的是接收通告窗口。它告诉对方本端的TCP接收缓冲区还能容纳多少字节的数据这样对方就可以控制发送数据的速度。16位校验和由发送端填充接收端对TCP报文段执行CRC算法以检验TCP报文段在传输过程中是否损坏。注意这个校验不仅包括TCP头部也包括数据部分。这也是TCP可靠传输的一个重要保障。16位紧急指针一个正的偏移量。它和序号字段的值相加表示最后一个紧急数据的下一字节的序号。因此确切地说这个字段是紧急指针相对当前序号的偏移不妨称之为紧急偏移。TCP的紧急指针是发送端向接收端发送紧急数据的方法。49. Nagle 算法与延迟确认49.1 Nagle算法如果发送方疯狂地向接收方发送很小的数据包比如一次就发送1个字节那么显然会有问题。★TCP/IP协议中无论发送多少数据总是需要在数据前面加上协议头同时对方接收到数据也需要发送ACK表示确认。为了尽可能的利用网络带宽TCP总是希望尽可能的发送足够大的数据。Nagle算法就是为了尽可能发送大块数据避免网络中充斥着许多小数据块。”Nagle算法任意时刻最多只能有一个未被确认的小段。所谓“小段”指的是小于MSS尺寸的数据块所谓“未被确认”是指一个数据块发送出去后没有收到对方发送的ACK确认该数据已收到。Nagle算法的实现规则★如果包长度达到MSS则允许发送如果该包含有FIN则允许发送设置了TCP_NODELAY选项则允许发送未设置TCP_CORK选项时若所有发出去的小数据包包长度小于MSS均被确认则允许发送上述条件都未满足但发生了超时一般为200ms则立即发送。”49.2 延迟确认如果接受方刚接收到发送方的数据包在很短很短的时间内又接收到第二个包。那么请问接收方是一个一个地回复好点还是合在一起回复好呢★接收方收到数据包后如果暂时没有数据要发给对端它可以等一小段时间再确认Linux上默认是40ms。如果这段时间刚好有数据要传给对端ACK就随着数据传输而不需要单独发送一次ACK。如果超过时间还没有数据要发送也发送ACK避免对端以为丢包。”但是有些场景不能用延迟确认比如发现了乱序包、接收到了大于一个 frame 的报文且需要调整窗口大小等。一般情况下Nagle算法和延迟确认不能一起使用Nagle算法意味着延迟发延迟确认意味着延迟接收酱紫就会造成更大的延迟会产生性能问题。50. 说说TCP的重传机制思路讲解 TCP的重传机制也是道非常高频的面试题。重传包括超时重传、快速重传、带选择确认的重传SACK、重复SACK四种。50.1 超时重传超时重传是TCP协议保证数据可靠性的另一个重要机制其原理是在发送某一个数据以后就开启一个计时器在一定时间内如果没有得到发送的数据报的ACK报文那么就重新发送数据直到发送成功为止。这个一定时间内一般是多少比较合理呢来看下什么叫RTTRound-Trip Time往返时间。RTT就是数据完全发送完到收到确认信号的时间即数据包的一次往返时间。超时重传时间就是RTORetransmission Timeout)。那么RTO到底设置多大呢如果RTO设置很大等了很久都没重发这样肯定就不行。如果RTO设置很小那很可能数据都没有丢失就开始重发了这会导致网络阻塞从而恶性循环导致更多的超时出现。一般来说RTO略微大于RTT效果是最佳的。其实RTO有个标准方法的计算公式也叫Jacobson / Karels 算法。一起来看下吧1. 首先计算SRTT即计算平滑的RTTSRTT  (1 - α) * SRTT  α * RTT  //求 SRTT 的加权平均2. 其次计算RTTVAR (round-trip time variation)RTTVAR  (1 - β) * RTTVAR  β * (|RTT - SRTT|) //计算 SRTT 与真实值的差距3. 最后得出最终的RTORTO  µ * SRTT  ∂ * RTTVAR    SRTT  4·RTTVAR一般情况α、β等的参数取值如下α  0.125β  0.25 μ  1∂  4别问这些参数是怎么来的它们是大量实践调出的最优参数。超时重传不是十分完美的重传方案它有这些缺点★当一个报文丢失时会等待一定的超时周期才重传分组增加了端到端的时延。当一个报文丢失时在其等待超时的过程中可能会出现这种情况其后的报文段已经被接收端接收但却迟迟得不到确认发送端会认为也丢失了从而引起不必要的重传既浪费资源也浪费时间。”并且对于TCP如果发生一次超时重传时间间隔下次就会加倍。50.2 快速重传其实可以使用快速重传来解决超时重发的时间等待问题。它不以时间驱动而是以数据驱动。它是基于接收端的反馈信息来引发重传的。快速重传流程如下快速重传流程发送方发送了 12345,6份数据:第一份 Seq1 先送到了于是就 Ack回2第二份 Seq2 也送到了于是ACK回3第三份 Seq3 由于网络等某些原因没送到第四份 Seq4 送到了但是由于Seq3没收到。因此ACK还是回3后面的 Seq5,6的也送到了ACK还是回复3因为Seq3没有收到。发送方连着收到三个重复冗余ACK3的确认其实是4个哈但是因为前面的一个是正常的ACK后面三个才是重复冗余的于是知道哪个报文段在传输过程中丢失了发送方在定时器过期之前重传该报文段。最后接收方收到了 Seq3此时因为 Seq456都收到了于是它回ACK7。但是呢快速重传也可能有问题ACK只向告知发送方最大的有序报文段。到底是哪个报文丢失了呢并不确定那到底该重传多少个包呢★是重传 Seq3 还是重传 Seq3、Seq4、Seq5、Seq6 呢因为发送端并不清楚这三个连续的 ACK3 是谁传回来的。”50.3 带选择确认的重传SACK为了解决应该重传多少个包的问题? TCP提供了带选择确认的重传即SACKSelective Acknowledgment。★SACK机制就是在快速重传的基础上接收方返回最近收到报文段的序列号范围这样发送方就知道接收方哪些数据包是没收到的。这样就很清楚应该重传哪些数据包啦。”SACK机制如上图中发送方收到了三次同样的ACK30的确认报文于是就会触发快速重发机制通过SACK信息发现只有30~39这段数据丢失于是重发时就只选择了这个30~39的TCP报文段进行重发。50.4 重复SACKD-SACK★D-SACK英文是Duplicate SACK是在SACK的基础上做了一些扩展主要用来告诉发送方有哪些数据包自己重复接受了。DSACK的目的是帮助发送方判断是否发生了包失序、ACK丢失、包重复或伪重传。让TCP可以更好的做网络流控。来看个图吧”D-SACK简要流程觉得文章不错的欢迎点赞、在看和转发感谢感谢参考资料[1]http的长连接和短连接史上最通俗: https://www.jianshu.com/p/3fc3646fad80[2]Cookie和Session的区别: https://zhuanlan.zhihu.com/p/66754258[3]ARP协议的工作机制详解: http://c.biancheng.net/view/6388.html[4]ARP协议工作流程: https://blog.csdn.net/qq_44041062/article/details/109844155[5]一文搞定所有计算机网络面试题: https://segmentfault.com/a/1190000038526729
http://www.sadfv.cn/news/62260/

相关文章:

  • 合肥需要做网站的公司建设网站列表
  • 2_网站建设的一般步骤包含哪些动漫制作技术专业简历
  • 各大网站有哪些网站建设总结
  • 跨境电商网站建设主管岗位职责网站备案什么注销
  • 移动端的网站模板不会写程序如何做网站
  • 网站开发策划注册一个网站域名一年需要多少钱
  • 好的品牌设计网站有哪些wordpress实现分页代码
  • 泰安市建设职工培训中心网站进不去网站前端包括哪些
  • 动易网站论坛网站开发业绩
  • 核酸检测赚了七十亿seo发帖论坛
  • 学校校园网站建设实施方案广州专业展台制作
  • 做3d打印网站asp做网站很少
  • 本地环境建设网站营销型企业网站建设的流程是
  • 沈阳网站的优化南平武夷山网站建设
  • 做网站有没有效果房产官网查询系统
  • html视频网站模板做框图的网站
  • mvc4 做网站网站聊天系统怎么做
  • 东莞志豪建设公司网站学校网站建设需要多少钱
  • php免费网站建设科技霸主从带娃开始
  • 怎么创建个人网站网站建设运营期末考试
  • 怎么建个网站wordpress访问格式丢失
  • 太原网站建设小程序我的世界服务器网站建设
  • 凌源网站建设定制公众号需要多少钱
  • 烟台城乡建设住建局网站asp.net商务网站开发
  • 三河市建设局网站网页美工设计软件
  • 乐清哪里有做网站可以登陆的wordpress
  • 企业网站建设的成本构成常州微信网站建设流程
  • 旅游网站的建设的文献综述标签在数据库wordpress
  • 网站展现形式免费商标logo在线制作软件
  • 网站开发的基本技术阳江市招聘最新招聘