奇趣网做网站,电脑网络题搜网站怎么做,深圳p2p网站开发,app软件开发合同范本计算机网络体系架构#xff1f;
OSI结构#xff1a;理论上的 7应用层#xff1a;定义了应用进程间通信和交互的规则#xff0c;常见协议有HTTP、SFTP、DNS、WebSocket6表示层#xff1a;数据的表示、安全、压缩。确保一个系统的应用层所发消息能被另一个系统的应用层读取…计算机网络体系架构
OSI结构理论上的 7应用层定义了应用进程间通信和交互的规则常见协议有HTTP、SFTP、DNS、WebSocket6表示层数据的表示、安全、压缩。确保一个系统的应用层所发消息能被另一个系统的应用层读取。GIF、JEPG5会话层建立、管理、终止会话是用户应用程序和网络之间的接口。RPC、SQL4传输层提供源端和目的端之间提供可靠的透明数据传输传输层协议为不同主机上运行的进程提供了逻辑通信。TCP、UDP、SSH3网络层将网络地址翻译成对应的物理地址实现不同网络之间的路径选择。ICMP、IGMP、IP等2数据链路层在物理层提供比特流服务的基础上、建立像零件点之间的数据链路。1物理层建立、维护、断开物理连接。TCP/IP结构实际上的 应用 传输 网络 链路层五层结构为了介绍原理而折中的在这个基础上层层包装层层拆包
DNS的迭代查询和递归查询
递归查询举例
客户端想要解析 www.example.com 的IP地址发送请求到本地DNS解析器 本地解析器查询根DNS服务器。 根DNS服务器返回 .com TLD服务器地址。 本地解析器查询 .com TLD服务器。 .com TLD服务器返回 example.com 的权威DNS服务器地址。 本地解析器查询 example.com 的权威DNS服务器。 权威DNS服务器返回 www.example.com 的IP地址。 本地解析器将IP地址返回给客户端。
迭代查询举例
客户端想要解析 www.example.com 的IP地址依次查询各个DNS服务器 客户端查询本地DNS解析器。 本地解析器查询根DNS服务器。 根DNS服务器返回 .com TLD服务器地址。 本地解析器将 .com TLD服务器地址返回给客户端。 客户端查询 .com TLD服务器。 .com TLD服务器返回 example.com 的权威DNS服务器地址。 客户端查询 example.com 的权威DNS服务器。 权威DNS服务器返回 www.example.com 的IP地址。 客户端获取到IP地址。
结论
递归查询和迭代查询是DNS查询的两种方式各有优缺点。递归查询对客户端友好但增加了DNS解析器的负担迭代查询对解析器负担小但增加了客户端的复杂性。实际应用中客户端通常会使用递归查询通过本地DNS解析器处理大部分的查询过程。
DNS解析过程 常见端口
21FTP22SSH53DNS解析80HTTP443HTTPS1080sockets3306mysql
常见状态码
1XX临时的响应客户端应继续请求。2XX请求已成功被服务器接收。3XX用来重定向。4XX请求可能出错。5XX服务器在尝试处理请求时发生了错误。 404表示客户端如浏览器请求的资源在服务器上不存在
GET和POST的区别
传参方式不同一个在URL一个在请求体幂等性GET大部分都被CDN缓存起来了
HTTP报文结构
请求报文 报文首部 请求行请求首部字段通用首部字段实体首部字段 GET /index.html HTTP/1.1
Host: www.javabetter.cn
Accept: text/html
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3报文主体响应报文 报文首部 状态行响应首部字段通用首部字段实体首部字段 HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 137582
Expires: Thu, 05 Dec 1997 16:00:00 GMT
Last-Modified: Wed, 5 August 1996 15:55:28 GMT
Server: Apache 0.84
htmlbody沉默王二很天真/body
/html报文主体
URI 和 URL 有什么区别?
URI统一资源标识符(Uniform Resource Identifier URI)URL统一资源定位符Uniform Resource Location它是 URI 的一种子集主要作用是提供资源的路径。
HTTP 1-3的区别
1.0 无状态协议非持久连接可设置Connection:keep-alive强制开启长连接1.1 持久连接支持在前一个响应到达之前发送下一个队头阻塞问题如果第一个响应阻塞了那么即使后面的响应准备好了也发不出去2.0 采用二进制协议所以grpc基于2.0的话传递的时候是通过byteArray实现的以前的是文本多路复用一个TCP连接上进行多个HTTP请求或者相应多个请求分解成独立的帧交错发送减轻了HTTP 1.x的队头阻塞问题还是依赖顺序的头部压缩减少带宽消耗表示层实现gzip压缩3.0 3.0 基于 QUIC 协议Quick UDP Connections真正实现了不同的流之间独立传输2.0仍然需要保证顺序在传输过程就完成了TLS三次握手
HTTP长连接相关参数
keep-alivekeep-alive timeoutTCP中也有三个参数闲置多久之后就会间隔一个时间发送侦测包发生这么多次没有响应就断开连接
HTTP和HTTPS
在HTTP的基础上加入了SSL安全套接字/TLS传输层安全协议确保传输过程是加密的。解决了什么问题 安全问题TLS握手 客户端相服务器发送ClientHello消息包括支持的TLS版本、随机数等等服务器回应ServerHello选择一个客户端提议的版本并发送数字证书客户端验证证书的合法性生成一个对话密钥通过公钥加密后发送给服务器服务器私钥解密得到对话密钥加密通信涉及到了对称加密和非对称加密 握手阶段密钥交换就是非对称传输就是对称
TCP的流量控制
三次握手协商窗口大小单位是字节最大是(2^16-1)14有个窗口扩展选项大概1G会约定每次最多能发多少接收方窗口 发送方窗口
拥塞控制
避免出现拥堵时发送方的数据填满整个网络发送方维护一个cwnd发送窗口的值是cwnd和滑动窗口可以接收窗口的min这里单位是MSS慢启动 探测网络拥堵情况每收到一个ACKcwnd1单位是MSS呈指数递增拥塞避免 当cwnd到达慢启动阈值sshresh进入拥塞避免每收到一个ACKcwndcwnd1/cwnd每个RTT就是1拥塞发生 如果是RTO超时重传 sshreshcwnd/2cwnd1进去慢启动如果是快速重传 cwndcwnd/2sshreshcwnd进入快速恢复快速恢复 快速恢复算法认为还有 3 个重复 ACK 收到说明网络也没那么糟糕所以没有必要像 RTO 超时那么强烈。cwnd和sshresh已经被更新了cwndsshresh3重传重复的那几个ACK即丢失的那几个数据包再收到重复的cwndcwnd1新的的话cwndsshresh再次进入拥塞避免
TCP的超时重传机制
RTO一定时间内没收到ACK就触发这个时间有算法快速重传发送的数据有序列号保证有序在上图发送⽅发出了 12345 份数据 第⼀份 Seq1 先送到了于是就 Ack 回 2结果 Seq2 因为某些原因没收到Seq3 到达了于是还是 Ack 回 2后⾯的 Seq4 和 Seq5 都到了但还是 Ack 回 2因为 Seq2 还是没有收到发送端收到了三个 Ack 2 的确认知道了 Seq2 还没有收到就会在定时器过期之前重传丢失的 Seq2。最后收到了 Seq2此时因为 Seq3Seq4Seq5 都收到了于是 Ack 回 6 。SACK带确认的ACK是说从左往右第一个开始没数据的空白D-SACK告诉发送方哪些报文重复接收了比如ACK没有到达发送方重传了ACKAcknowledgment号在TCP中代表的是接收方期望从发送方接收到的下一个字节的序列号。SACK一个代表在快速重传的时候接收到了哪些一个代表了重复接收了哪些在发送方没有收到ACK的情况重发的情况下