新手怎样做网站推广,dw学校网站制作教程,赶集网站建设多少钱,h5常用的编辑平台目录 一、谈一谈对OSI七层模型和TCP/IP四层模型的理解#xff1f;
答#xff1a;OSI七层模型主要分为#xff1a;
TCP/IP四层协议#xff1a;
二、谈谈TCP协议的3次握手过程#xff1f;
三、TCP协议为什么要3次握手#xff1f;2次#xff0c;4次不行吗#xff1f; …目录 一、谈一谈对OSI七层模型和TCP/IP四层模型的理解
答OSI七层模型主要分为
TCP/IP四层协议
二、谈谈TCP协议的3次握手过程
三、TCP协议为什么要3次握手2次4次不行吗
四、谈谈TCP协议的四次挥手过程
五、什么是流量控制
六、什么是滑动窗口
七、什么是拥塞控制
拥塞控制的四个算法
7.1慢启动
7.2拥塞避免
7.3拥塞发生
重传机制
超时重传
快速重传
7.4快速恢复
八、TCP和UDP有什么区别 一、谈一谈对OSI七层模型和TCP/IP四层模型的理解
答OSI七层模型主要分为
应用层-人机交互界面曹某将“你好”两个字输入电脑微信软件
表示层-计算机将“你好”翻译成二进制
会话层-找到接收方马某建立会话关系
传输层-曹某用微信发的消息马某只能在微信上看
网络层-网络中有许多用户要想让这两个人准确的发送和接受曹某需要知道马某的网络层IP
数据链路层-网络层往下继续传输需要数据链路层的网卡
物理层-数据变成信号传输马某在自己微信看到了曹某发的“你好”
目的是为了简化网络各层的操作提供标准接口便于实现和维护
TCP/IP四层协议
是七层模型的简化版分为应用层应用层表示层会话层-传输层-网络层-网络接口层数据链路层物理层 二、谈谈TCP协议的3次握手过程 当客户端向服务端发起连接时会先发一包连接请求数据SYN-syn1,ack0询问服务端能否建立连接如果服务端同意建立连接会回复客户端一个SYNACK-syn1,akc1包数据客户端收到之后回复一包ACK-syn0,ack1包连接建立。 三、TCP协议为什么要3次握手2次4次不行吗
为了防止已失效的请求报文突然又传到服务器引起错误。 假设用两次握手建立连接客户端向服务器端发送了一个SYNA包来请求建立连接因为一些未知的原因A包未到达服务器在中间某个网络结点产生了滞留为了建立连接客户端会重发SYNB包这次B包正常送达服务端回复SYNACK之后建立连接两次握手完成。但是这时候A包阻塞的网络结点突然恢复A包又送达到服务端服务端以为客户端又发送了一次连接在发送完SYNACK包之后进入等待数据状态。客户端认为是一个连接但是服务端认为是两个连接造成了状态不一致问题。 如果用四次握手建立连接就会导致资源的浪费 四、谈谈TCP协议的四次挥手过程 1客户端主动发起连接关闭请求它需要向服务端发送一包FIN-FIN1,ACK0包表示要关闭连接自己进入终止等待1状态这就是第一次挥手。 2服务端收到FIN包发送一包ACK-FIN0,ACK1包表示自己进入了关闭等待状态客户端进入终止等待2状态这就是第二次挥手。 3服务端此时还可以发送未发送的数据客户端也可以接收数据等服务端发送完数据之后发送一包FIN-FIN1,ACK1包进入最后确认状态这就是第三次挥手。 4客户端收到之后回复一包ACK包进入超时等待状态经过超时时间后关闭连接服务端收到ACK-FIN0,ACK1包之后立即关闭连接这就是第四次挥手。 五、什么是流量控制
流量控制是为了控制发送方发送速率保证接收方来得及接收 接收方每次收到数据包可以在发送确定报文的时候同时告诉发送方自己的缓存区还剩余多少是空闲的我们也把缓存区的剩余大小称之为接收窗口大小用变量win来表示接收窗口的大小。 发送方收到之后便会调整自己的发送速率也就是调整自己发送窗口的大小当发送方收到接收窗口的大小为0时发送方就会停止发送数据防止出现大量丢包情况的发生。 六、什么是滑动窗口
滑动窗口是 TCP 协议用于实现流量控制的一种机制。 发送方和接收方分别维护各自的缓冲区这个缓冲区就是窗口。发送方的窗口大小由接收方的 TCP 首部的窗口字段决定。 发送方将窗口内容分为已发送并确认已发送未确认未发送未超出接收方窗口范 围未发送但超出接收方窗口范围。随着接收方的确认发送方将不断在窗口内向前滑动。 接收方将窗口内容分为接受已确认未收到但可以接受。接收方读取窗口内容并不断确认通知发送方窗口向前滑动。接收方通过改变窗口大小可以控制发送方的速率从而实现流量控制。 七、什么是拥塞控制
拥塞控制就是为了防止过多的数据注入到网络中控制的目的就是避免发送方的数据填满整个网络控制 发送方的数据发送量。
拥塞控制的四个算法
7.1慢启动
目的用来确定网络的负载能力或拥塞程度
算法思路由小到大呈指数增大拥塞窗口数值
两个变量
1拥塞窗口
初始拥塞窗口值2种设置方法
1至2个最大报文段旧标准
2至4个最大报文段RFC 5681
窗口值逐渐增大
2慢开始门限
防止拥塞窗口增长过大引起网络拥塞 7.2拥塞避免
慢启动每个轮次都将 cwnd 加倍这样会让 cwnd 增长速度非常快从而使得发送方发送的速度增长速度过快网络拥塞的可能性也就更高。 于是TCP 会设置一个慢启动门限 ssthresh 当 cwnd 门限时进入拥塞避免每个轮次 只将 cwnd 加 1 降低拥塞窗口的增长速度。 7.3拥塞发生
拥塞避免算法一直增长下去网络也会慢慢进入了拥塞的状况就会出现丢包现象这时就需要对丢失的数据包进行重传。当触发了重传机制也就进入了「拥塞发生算法」
重传机制 超时重传
当发生「超时重传」的拥塞发生算法
ssthresh 设为 cwnd/2
cwnd 重置为 1
这个时候重新进入慢启动。 快速重传
当接收方发现数据包丢失的时候会连续发送三次 ACK确认数据包于是发送端就会快速地重传不必等待超时再重传。
这个时候TCP 认为这种情况不严重因为大部分没丢只丢了一小部分所以当发生「快速重传」的拥塞发生算法cwnd cwnd / 2 ssthresh cwnd 7.4快速恢复
快速重传和快速恢复算法一般同时使用快速恢复算法是认为你还能收到 3 个重复 ACK 说明网络拥塞状况没有特别糟糕所以没有必要像 RTO 超时重传直接进入慢启动那么强烈。
拥塞窗口 cwnd ssthresh 3
重传丢失的数据包
如果再收到重复的 ACK那么 cwnd 增加 1 八、TCP和UDP有什么区别 UDP-写信TCP-打电话。 这两者本质的区别就是写信是基于非连接的打电话是基于连接的。 也就是说UDP是基于非连接的TCP是基于连接的。 可靠传输 TCP 协议通过确认应答、连接管理、流量控制、拥塞控制来确保可靠性传输 UDP 不保证可靠性传输。 性能效率 TCP 协议传输效率慢需要较多的资源开销。 UDP 协议传输效率快需要较 少的资源开销。 首部格式 TCP 协议的首部需要 20-60 个字节 UDP 协议需要8个字节。