昆明优化网站公司,网站技术方案,做携程怎样的网站,wordpress 图片尺寸1.谈一谈对OSI七层模型和TCP/IP四层模型的理解#xff1f;
1.1.为什么要分层#xff1f; 在计算机中网络是个复杂的系统#xff0c;不同的网络与网络之间由于协议#xff0c;设备#xff0c;软件等各种原因在协调和通讯时容易产生各种各样的问题。例如#xff1a;各物流…1.谈一谈对OSI七层模型和TCP/IP四层模型的理解
1.1.为什么要分层 在计算机中网络是个复杂的系统不同的网络与网络之间由于协议设备软件等各种原因在协调和通讯时容易产生各种各样的问题。例如各物流公司的快递站点快递人员货运方式都有可能不同但对更个流程之间进行划分就方便了客户和物流公司的管理。所以网络也需要一个标准化的思想或者模型来统一协调。
1.2.分层的好处 各层之间是独立的不用过多关心其他层次的内容更好找出问题 灵活性好任何一层发生变化不容易影响上下层 架构上可分割开各层可用最好的技术实现 能促进标准化的工作易于实现和维护
1.3.OSI七层模型 OSIOpen System Interconnect网络7层模型是ISO组织定义的一个计算机互联的标准分层模型但它只是一个定义目的是为了简化网络各层的操作提供标准接口便于实现和维护从上至下依次包括应用层、表示层、会话层、传输层、网络层、链路层、物理层。 1.4. TCP/IP四层模型 但在实际使用时根据使用协议对七层模型部分层级进行合并简化。分成4层应用层、传输层、网络层、网络接口层数据链路层、物理层。 其中将应用表示会话三层合称为应用层将数据链路物理合称网络接口层。 2.谈谈TCP协议的3次握手过程
2.1.简述
握手过程就是TCP发送端和接收端通过三次对话应答的方式进行建立可靠连接的过程
2.2.具体过程 注意大写字母SYNACK都是TCP首部中的控制位内容确定本次报文的性质。 确认 ACK ACK是对已接受数据的确认。TCP 规定ACK默认为0在连接建立后所有传送的报文段都必须把 ACK 设置为 1。当 ACK1 时确认号字段才有效否则无效。同步 SYN 在连接建立时使用表示这是一个连接请求或连接接受报文。当 SYN1ACK0 时表示这是一个连接请求报文段。若对方同意建立连接则响应报文中 SYN1ACK1。
第一次挥手
由发送方向接收方发送请求连接的报文。
报文首部内容同步SYN1确认ACK0序号seqx。
序号即发送报文中数据的第一个字节序号。
第二次挥手
由接收方向发送方发送请求连接的确认报文。
报文首部内容同步SYN1确认ACK1序号seqy确认号ackx1
确认号即下次期待接收的第一字节序号。
第三次挥手
由发送方向接收方发送确认报文
报文首部内容同步SYN0确认ACK1序号seqx1确认号acky1 3.TCP协议为什么要3次握手2次4次不行吗 TCP协议的3次握手的作用是为了在建立连接时避免重复连接防止旧的重复连接引起连接混乱问题。另外通过三次握手可以得到一个确认的可靠初始化序列号seq用于进行可靠性传输。而如果只有2次握手则无法初始化序列号seq。
综上所述TCP协议最少需要通过3次握手建立连接。当然 TCP 连接也通过4次握手或5次握手建立连接实现 TCP 连接的稳定性但3次握手是最节省资源的连接方式。 4.谈谈TCP协议的四次挥手过程
4.1.简述
挥手过程就是TCP发送端和接收端通过四次对话应答的方式进行可靠连接释放的过程。
4.2.具体过程 终止 FIN (FINis) 用来释放一个连接。FIN 1 表明此报文段的发送端的数据已发送完毕并要求释放运输连接。 第一次挥手
首先客户端向服务器发送连接释放的请求报文并停止发送数据。
报文首部内容FIN1ACK 0 第二次挥手
服务器收到连接释放的报文之后给客户端发送确认报文。
报文首部内容FIN0ACK1。
注意第二次挥手后客户端到服务器方向的连接就释放了TCP连接处于半关闭状态。此时客户端无法发送数据给服务器但是服务器还可以发送数据给客户端客户端仍可以接收。 第三次挥手
服务器向客户端发送完数据后向客户端发送释放连接的确认报文。
报文首部内容ACK1FIN1 第四次挥手
客户端收到服务器的连接释放报文段后向服务器发出确认报文。
报文首部内容ACK1FIN 0 5.什么是流量控制
简述就是由接收方根据处理数据的能力控制发送方每次传输数据的量。
控制方法使用可变大小的流量控制协议——滑动窗口协议。
窗口大小通过接收方发送的确认报文中的窗口字段控制发送方窗口大小从而影响发送方的发送速率。将窗口字段设置为 0则发送方不能发送数据。 6.什么是滑动窗口
概念是TCP协议用于实现流量控制的一种协议或者机制。
窗口内容划分
发送方
已发送并确认窗口处理过多成功内容。已发送未确认等待接受的内容。未发送未超出接收方窗口范围在流量允许范围内窗口需要处理但尚未处理的内容。未发送但超出接收方窗口范围。窗口尚未接收的内容。
接收方
接受已确认窗口已成功接收的内容不在窗口范围内。未收到但可以接受等待接收的内容。
窗口在完成一个个数据处理后按顺序向后执行即为滑动。 7.什么是拥塞控制
简述就是在网络传输中维护一个叫做拥塞窗口cwnd的状态变量决定每次可以发送的数据包报文的数量来判断拥塞程度。
TCP主要通过四个算法来进行拥塞控制慢开始、拥塞避免、拥塞发生、快速恢复。
慢开始cwnd从1开始每次加倍cwnd值由小到大逐渐增大。
拥塞避免慢开始会让发送方发送的速度越来越快网络拥塞的可能性也就更高。设置一个慢开始门限 ssthresh当 cwnd ssthresh 时进入拥塞避免每次将 cwnd加 1降低拥塞窗口的增长速度。
拥塞发生当网络慢慢进入拥塞状况就可能出现丢包现象这时需要对丢失的数据包进行重传。 当触发了重传机制也就进入了拥塞发生。分为两种重传处理
超时重传将ssthresh 设为 cwnd/2cwnd 重置为 1重新进入慢启动。
快速重传将cwnd cwnd / 2ssthresh cwnd进入快速恢复。
快速恢复和快重传配合使用当执行快重传时ssthreshssthresh*0.5cwnd ssthresh 3。 8.TCP和UDP有什么区别
面向连接TCP协议需要建立连接仅支持一对一通信UDP协议无需建立连接支持一对一、一对多、多对一和多对多的交互通信。
传输可靠TCP协议通过多种机制来确保可靠性传输UDP不保证可靠性传输。
性能效率TCP协议需要保证可靠性传输相对传输效率慢需要消耗较多的资源。UDP协议传输效率快需要较少的资源开销。
首部格式TCP协议的首部需要20-60个字节UDP协议需要8个字节
应用场景TCP协议保证可靠性传输所以对数据准确性有要求的连接。如文件传输、发送和接收邮件、远程登录等场景。UDP协议可以进行广播对数据量少场景由奇效。如QQ 语音、 QQ 视频 、直播等等