建设移动端网站,津南房地产网站建设,seo综合,有一个做名片的网站1、请你说说TCP和UDP的区别
TCP提供面向连接的可靠传输#xff0c;UDP提供面向无连接的不可靠传输。UDP在很多实时性要求高的场景有很好的表现#xff0c;而TCP在要求数据准确、对速度没有硬件要求的场景有很好的表现。TCP和UDP都是传输层协议#xff0c;都是为应用层程序服…1、请你说说TCP和UDP的区别
TCP提供面向连接的可靠传输UDP提供面向无连接的不可靠传输。UDP在很多实时性要求高的场景有很好的表现而TCP在要求数据准确、对速度没有硬件要求的场景有很好的表现。TCP和UDP都是传输层协议都是为应用层程序服务都有复用不同应用层协议可以共用TCP和UDP协议和分用将数据报解析之后分发给不同的应用层程序的功能。UDP提供面向无连接基于数据报的不可靠传输TCP提供面向连接的基于字节流的可靠传输。
UDP协议
面向无连接不需要3次握手和4次挥手、尽最大努力交付、面向报文每次收发都是一整个报文段、没有拥塞控制不可靠只管发不管过程和结果、支持一对一、一对多、多对一和多对多的通信方式、首部开销很小8字节。优点快没有TCP各种机制受了很多首部信息和重复确认的过程节省了大量的网络资源。缺点不可靠不稳定只管数据的发送不管过程和结果网络不好的时候很容易造成数据丢失。网络不好的时候不会影响主机数据报的发送速率这对很多实时的应用程序很重要像语音通话、视频会议等要求源主机要以恒定的速率发送数据报允许网络不好的时候丢失一些数据但不允许太大的延迟UDP很适合这种要求。
TCP协议
面向连接3次握手和4次挥手、单播只能端对端的连接、可靠交付有大量的机制保护TCP连接数据的可靠性、全双工通讯允许双方同时发送信息4次挥手的原因、面向字节流不保留数据报边界的情况下以字节流的方式进行传输长连接的由来、头部开销大至少20字节。优点可靠、稳定、有确认、窗口、重传、拥塞控制机制在数据传完之后还会断开连接用来节约系统资源。缺点慢效率低占用系统资源高在传输数据之前要先建立连接这会消耗时间而且在数据传递时确认机制、重传机制、拥塞机制等都会消耗大量的时间要在每台设备上维护所有的传输连接。在要求数据准确、对速度没有硬性要求的场景有很好的表现比如在FTP文件传输、HTTP/HTTPS超文本传输TCP很适合这种要求。
2、请你说说TCP3次握手和4次挥手过程 为什么一定要3次握手而不是2次为什么客户端最后还需要发送一次确认报文呢
防止已经失效的连接请求报文突然又被传给了服务端然后产生错误假设客户端发出的第一个连接请求报文段并没有丢失而是在某些网络节点上被滞留了直到客户端和服务端的新连接已经释放后的某个时间点第一个连接请求报文段才到了服务端这时服务端以为客户端又发了一次请求于是服务端向客户端发起确认连接报文同意连接。假设不采用3次握手这时连接已经建立了但是客户端并不知道这个情况服务端会一直等待客户端的数据报文这样服务端的资源就会被浪费占用大量资源。3次握手可以防止这种现象保护网络和系统资源。
3、请你说说GET和POST的区别
用法不一样、参数显隐式、参数长度
get主要用来获取数据而post主要提交或修改数据get有长度限制2048字节而post没有get的参数时显示的post的参数时隐式的get的参数会附加在url中以?“分割url和传输数据多个参数用”连接而post会把参数放在http请求体中get是明文传输可以直接通过url看到参数信息post放在请求体中除非用工具才能看到get请求会保存在浏览器历史记录中也可以保存在web服务器日志中get在浏览器回退时是无害的而post会再次提交请求get请求会被浏览器主动缓存而post不会除非手动设置get请求只能进行url编码而post支持多种编码方式get请求的参数数据类型只接受ASCII字符而post没有限制
4、浏览器从输入URL开始到页面显示内容中间发生了什么
dns域名解析域名-ip地址ip寻址和arpip-mac找到服务器TCP三次握手建立连接浏览器生成http报文发送http请求等待服务器响应服务器处理请求并返回响应结果给浏览器根据http是否开启长连接进行tcp挥手过程浏览器解析thml浏览器布局渲染
dns地址解析
客户端首先向本地dns服务器进行查询如果不在本地缓存中则本地dns服务器会像根服务器进行查询根服务器返回顶级域名服务器的地址给本地dns服务器然后本地dns服务器查询顶级dns服务器返回权威dns服务器地址最终返回给客户端。 dns劫持 攻击者篡改结果使用户对域名的解析IP变成另一个IP
5、请你说说HTTP状态码及其含义
http状态码由3个十进制数字组成第一个十进制数字定义状态码的类型。响应分为5类信息响应100-199成功响应200-299重定向300-399客户端错误400-499、服务端错误500-599
1**信息服务端收到请求需要请求者继续执行操作2**成功操作被成功接收并处理3**重定向需要进一步的操作以完成请求4**客户端错误请求包含语法错误或无法完成请求5**服务端错误服务端在处理请求的过程中发生了错误
常见错误码
301永久重定向302临时重定向304资源没修改用之前缓存就行400.客户端请求的报文有错误403服务端禁止访问资源404请求的资源在服务器上不存在/未找到
6、请你说说HTTP和HTTPS的区别
HTTP简单快速当客户端向服务端请求数据的时候只需传送请求方法和路径就可以取得结果基于TCP默认端口号为80耗时可以简略计算为1RTT传递的数据全部是明文传输几乎没有安全性HTTPS是基于TLS的而TLS又基于TCP当客户端向服务端请求数据的时候服务端大概率会将客户端重定向到该服务器的443端口进行新的TCP连接此时服务器会返回一个证书文件而不是响应报文体。此时客户端验证证书文件紧接创建对称密钥之后重新和服务器建立TLS连接当服务器返回ACK确认之后连接正式建立上方整个过程耗时3RTT并且之后和服务器的通信数据都是通过对称密钥加密过的几乎无法破解。HTTP是基于TCP的而HTTPS是基于TLS的HTTP的往返时间为1RTT而HTTPS的往返时间为3RTTHTTP只需创建一次TCP连接而HTTPS需要创建两次TCP连接HTTP的默认端口为80HTTPS的默认端口为443HTTP的安全性很差而HTTPS的安全性很强
HTTPS虽然在安全方面有很大优势但是缺点也很明显
HTTPS握手阶段耗费时间几乎是HTTP的数倍会延长页面的首次绘制时间和增加耗电HTTPS的效率没有HTTP高如果部分数据内容实际上并不需要加密会平白浪费计算机资源HTTPS的证书需要购买功能越强大的证书价格越高HTTPS的加密并不能阻止某些网络攻击如黑客攻击、拒绝服务攻击等
7、请你说说TCP如何实现可靠传输
序列和、检验和、确认应答信号、重发机制、连接管理、窗口控制、流量控制、拥塞控制 可靠传输就是通过TCP连接传送的数据是没有差错的、不会丢失的、不重复并且按序到达的
应用层的数据会被分割成TCP认为最适合发送的数据块序列号TCP给发送的每一个包进行编号接收方对数据包进行排序把有序数据传送给应用层TCP的接收端会丢弃重复的数据检验和TCP将保持它首部和数据的检验和。这是一个端到端的检验和目的是检测数据在传输过程中的任何变化。确认应答如果收到的数据报报文段的检验和没有差错就确认收到如果有差错TCP就丢弃整个报文段和不确认收到此报文段。流量控制TCP连接的每一方都有固定大小的缓冲空间TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据会提示发送方降低发送的速率防止包丢失。TCP使用的流量控制协议是可变大小的滑动窗口协议。拥塞控制当网络拥塞时减少数据的发送。停止等待协议每发完一个分组就停止发送等待对方确认。在收到确认后再发下一个分组超时重传当TCP发出一个段后它启动一个定时器等待的目的端确认收到这个报文端。如果不能及时收到一个确认将重发这个报文段。
8、请你说说TIME_WAIT
4次挥手结束主动方进入TIME_WAIT
TCP连接第4次挥手结束时主动发起连接释放请求的一方进入TIME_WAIT状态此时主动发起连接释放请求的一方会等待2MSL最大报文生存期才会回到初始状态CLOSED。处理并丢弃迟来的信息
9、请你说说拥塞控制机制
拥塞一个/多个交换点的数据报超载TCP重传机制导致过载防止拥塞窗口cwnd增长过大引起网络拥塞设置慢开始门限ssthresh状态变量cwndssthresh慢开始算法cwndssthresh拥塞避免算法cwndssthresh慢开始/拥塞避免算法慢开始由小到大逐渐增加拥塞窗口大小每接一次报文cwnd指数增加拥塞避免cwnd缓慢增大每经过一个往返时间RTT就把发送方的拥塞窗口cwnd1快恢复之前的策略发送方判断网络出现拥塞就把ssthresh设为出现拥塞时发送方窗口值的一半继续执行慢开始之后进行拥塞避免快恢复发送方判断网络出现拥塞把ssthresh设为出现拥塞时发送方窗口的一半并把cwnd设为ssthresh之后进行拥塞避免
10、请你说说TCP/IP五层模型
应用层定义应用进程间通信和交互的规则运输层负责两个计算机进程的通信提供传输服务网络层负责为网络上不同的主机提供通信服务数据链路层将网络层交下来的数据报组装成帧物理层最底层的数据传输以比特流的形式进行
11、请你说说TCP粘包
TCP基于字节流无法判断发送方报文段边界
多个数据包被连续存储于连续的缓存中在对数据包进行读取时由于无法确定发送方的发送边界而采用某一估测值大小来进行数据读取若发送方发送数据包的长度和接收方在缓存中读取的数据包长度不一致就会发生粘包发送端可能对极了两次数据每次100字节一共在发送缓存对极了200字节的数据而接收方在接收缓存中一次读取120字节的数据这是接收端读取的数据就包括了下一个报文段的头部。
解决粘包的方法
发送方关闭Nagle算法使用TCP_NODELAY选项关闭Nagle功能发送定长的数据包。每次数据包的长度一样接收方可以很容易区分数据包的边界数据包末尾加上\r\n标记模仿FTP协议但若数据正文中也含有\r\n则会误判为消息的边界数据包头部加上数据包的长度。数据包头部定长4字节可以存储数据包的整体长度应用层自定义规则
原因
造成粘包的因素有很多有可能是发送方造成的也有可能是接收方造成的。比如接收方在接收缓存中读取数据不及时在下一个数据包到达之前没有读取上一个可能也会造成读取超过一个数据包的情况。
12、请你说说滑动窗口
TCP中采用滑动窗口来进行流量控制滑动窗口的大小意味着接收方还有多大缓冲区可以接收数据。发送方可以通过滑动窗口的大小来确认应该发送多少字节的数据。滑动窗口机制主要通过窗口大小实现流量控制进而解决发送方发送数据过快、过多导致的接收端缓存数据溢出导致的丢包现象。 流量控制 让发送方的发送速率不要过快让接收方来得及接收所有的数据。
13、请你说说ISO七层模型
应用层管理应用进程间的通信规则(HTTPS/HTTP)表示层对数据进行处理对从应用层获取到的数据报报文进行格式处理、安全处理和压缩处理会话层用来管理进程对当前主机进程和目标主机进程会话的建立、管理和终止行为传输层提供数据的传输服务定义了传输数据的进程端口号负责数据报的排序、差错检验和流量控制等TCP/UDP网络层进行逻辑地址的查询路由分组与转发路由器IP数据链路层建立相邻节点的逻辑连接进行逻辑地址寻址、数据封帧、差错校验网卡ARP物理层最底层的数据传输比特流网线
14、请你说说ARP协议协议是怎么实现的是怎么找到MAC地址的
IP地址获取MAC地址、ARP查询分组、广播
ARP协议完成主机或路由器IP地址到MAC地址的映射ARP协议使用过程检查ARP高速缓存有对应表项则写入MAC帧没有则用目的MAC地址未FF-FF-FF-FF-FF-FF的帧封装并广播ARP亲求分组同一局域网中所有主机都能都能收到该请求目的主机收到请求后就会向源主机单播一个ARP响应分组源主机收到后将此映射写入ARP缓存10-20min更新一次
15、请你说说CLOSE_WAIT
TCP连接中对方释放请求自身未发送FIN时
在TCP四次挥手阶段当对方提出连接释放请求时自身给予响应ACK确认应答但是TCP连接是全双工的也需自身发送连接释放请求即FIN。若自身没有立即发送FIN进入CLOSE_WAIT状态。产生CLOSE_WAIT的原因一般是对方关闭了连接但是自身还在读取数据或传输数据没有关闭连接
16、请你说说对称加密和非对称加密
**对称加密**加密和解密使用同一个密钥只有一个密钥作为私钥**非对称加密**加密和解密使用不同的密钥一把作为公开的公钥一把作为私钥。公钥加密的信息只有私钥才能解密私钥加密的信息只有公钥才能解密。更安全
17、请你说说HTTPS
HTTPS在HTTP的基础上加上TLS\SSL
内容加密混合加密方式对称加密和非对称加密身份验证通过证书认证客户端访问的是正确的服务器数据完整性防止传输的数据被中间人篡改
SSL/TLS用在传输层为数据通讯提供安全支持
SSLSecure Sockets Layers安全套接层TLSTransport Layers Security安全传输层协议
18、请你说说HTTP1.X和HTTP2.0的区别是什么
1、简述HTTP1.0
规定请求头/请求尾、响应头/响应尾 get/post每一个请求都是一个单独的连接做不到连接复用
2、http1.1的改进
默认开启长连接在一个tcp连接上可以传送多个http请求和响应tcp长连接改善http1.0短连接造成的性能开销支持管道(pipeline)网络传输只要第一个请求发出去了不必等其回来就可发第2个请求出去减少整体响应时间服务端无法主动push
3、http2.0的改进
头部压缩HTTP1.X的头部带有大量信息而且每次都要重复发送HTTP2.0使用encoder来减少需要传输的头部大小通讯双方各自缓存一部头部表既避免重复头部的传输又减小了需要传输的大小二进制数据帧帧对数据进行顺序标识序号id服务器进行并行传输数据。HTTP1.x的解析是基于文本但是基于文本协议的格式解析存在天然缺陷。文本的表现形式具有多样性要做到健壮性考虑的场景必然很多二进制则不同只人0和1的组合。基于这种考虑HTTP2.0协议决定采用二进制格式实现方便且健壮。多路复用连接共享每一个请求都是用作连接共享机制的。一个请求对应一个id这样一个连接上可以有多个请求每个连接的请求可以随机的混杂在一个接收方可以根据请求的id将请求再归属到各自不同的服务端请求里面。服务器推送如果请求了index、html文件服务器端会主动将它的依赖文件一起返回。
19、请你说说HTTPS加解密过程是怎么样的 20、请你说说TCP超时重传机制时间是多少
TCP每发送一条报文就会启动定时器如果在定时器超时前没能确认收到信息就会启动超时重传机制。RTO重传超时时间是影响超时重传的重要因素RTO过大不易启动重传机制RTO过小重传频率过快RTORTTS-4RTTdRTTs加权平均往返时间RTTd偏差的加权平均值
21、UDP怎么样可以实现可靠的传输
将运输层TCP的可靠传输机制在应用层实现确认机制、重传功能、流量控制、拥塞控制等功能实现在应用层
提供超时重传机制能避免数据报丢失的问题提供确认序列号保证数据拼接时候的正确排序。请求端首先在UDP数据报定义一个首部首部包含确认序列号的时间戳时间戳是用来计算RTT数据报传输的往返时间计算出合适的RTO重传超时时间然后以等-停的方式发送数据报收到对端的确认之后才发送下一个的数据报。当时间超时本端重传数据报同时RTO扩大为原来的两倍重新开始计时。响应端接受到一个数据报之后取下该数据报首部的时间戳和确认序列号并添加本端的确认数据报首部之后发送给对端根据此序列号对已收到的数据报进行排序并丢弃重复的数据报。
22、快重传
在超时重传定时器溢出之前接收到3个重复冗余ack发送端便知晓哪个报文段在传输过程中丢失了重发该报文不需等待超时重传计数器溢出再发送该报文
23、半连接队列
tcp握手中当服务器处于syn-rcvd状态服务器会把此种状态下请求放在一个队列里。
24、syn攻击
利用tcp协议缺陷通过发送大量半连接请求占用半连接队列耗费cpu和内存资源 优化
缩短syn timeout时间记录ip若连续收到某个ip的重复syn报文从这个ip地址来的包会被一概丢弃
25、简述cookie
http协议是无状态的为了能处理更加复杂的逻辑http 1.1引入cookie保存状态信息cookie是服务端产生发送给客户端保存当客户端再次访问时服务端可根据cookie辨识客户端是哪个做个性化推送免账号密码登录
26、简述session
标记特定客户端信息存在服务器的一个文件里客户端带cookie对服务器进行访问可通过cookie中的session id从整个session中查询到服务器记录的关于客户端的信息
27、转发和重定向
转发是服务器行为服务器直接向目标地址访问url将相应内容读取之后发给浏览器用户浏览器地址url不变重定向利用服务器返回的状态码来实现301/302浏览器收到新消息后自动跳转到新的地址重新请求资源用户地址栏url会发生改变不能共享资源
28、dos攻击
Denial of service拒绝服务攻击发送大量无用请求数据包给服务器耗尽服务器资源无法通过正常访问服务器资源导致服务器奔溃