校招后端面经——计算机网络

1. Nagle算法
背景

TCP传输数据的过程中存在两种类型的TCP报文段,一种包含成块数据(通常是满长度的,携带一个报文段最多能容纳的字节数),另一种则包含交互数据(通常只有携带几个字节数据)

对于成块数据的报文段,TCP采用正常的流程发送即可,因为数据利用率很高。而对于交互数据的报文段,数据利用率久显得很低,在网络环境不好的情况下容易加重网络负担

Nagle算法用于处理小报文段的发送问题

过程

客户端首先发送大小为1个字节的第一个分组,随后其他分组到达发送缓冲区,由于上一个分组的应答还没有收到,所以TCP会先缓存新来的这4个小分组,并将其重新组成一个大分组,当第一个小分组的应答收到后,客户端将这个大分组发送。

缺点

对于需要实时预览的通讯程序来说,客户端可能需要不断发送更新数据并得到服务器的响应,这时就会导致客户端明显的延迟

2. DHCP协议

动态申请IP,属于应用层,使用UDP进行传输

过程
  1. 客户端生成包含DHCP发现报文的IP数据报,使用广播的方式传输,目的地址为255.255.255.255,源地址为0.0.0.0,将其广播到所有与该子网连接的子网
  2. DHCP服务器收到DHCP发现报文后,使用IP广播地址发送DHCP提供报文。提供报文中含有收到的发现报文的事务ID,向客户机推荐的IP地址,网络掩码以及IP地址租用期等
  3. 主机收到一个或多个DHPC报文后,从中选出一个,然后发送一个DHCP请求报文对选中的服务器进行响应,回显配置相关参数
  4. DHCP服务器响应该请求报文,证实所要求的参数
3. ARP协议

将IP映射到MAC, 在OSI模型中属于数据链路层,在TCP/IP模型中属于网络层

过程
  1. 每个节点的ARP模型都在它的内存中有一个ARP表,包含了IP地址到MAC地址的映射
  2. 当所查询的节点在发送方的ARP表中都有相应的表项时,直接查寻即可
  3. 没有相应的表项时,广播ARP分组,匹配节点给查询节点发送一个带有所希望映射的响应的ARP分组
注意
  1. 查询ARP报文载广播帧中发送,响应报文在一个标准帧中发送
  2. ARP是即插即用的,无需配置,节点断开连接时,表项最终会被删除掉
4. DNS协议

域名解析,应用层协议,基于UDP传输

过程
  1. 客户机向其本地的域名服务器发出DNS请求报文
  2. 本地域名服务器收到后先到本地缓存中查找,如果没有该记录,则以DNS客户的身份向根域名服务器发出解析请求
  3. 根域名服务器收到请求后,判断该域名是属于某个顶级域名服务器,将对应的顶级域名服务器的IP地址返回给本地域名服务器
  4. 本地域名服务器向顶级域名服务器发出请求
  5. 顶级域名服务器收到请求后,判断该域名属于某个授权域名服务器,将对应的授权域名服务器的IP地址返回给本地域名服务器
  6. 本地域名服务器向授权域名服务器发送请求
  7. 授权域名服务器返回解析的IP地址给本地域名服务器
  8. 本地域名服务器将结果返回给客户机并保存在自己的本地缓存中
5. 滑动窗口协议

发送方为维护一个窗口值来限制自己的发送速率,在没有收到接收方确认的情况下,发送方可以连续把发送窗口的数据发送出去。但是已经发送过的数据在未收到确认之前,不能继续发送下一个窗口的数据,它还需要暂时保留原来数据,以便于超时重传时使用。发送窗口越大,它就可以在收到对方确认之前发送更多的数据,因而获得更高的传输效率。发送窗口的大小一般取接收窗口的大小和拥塞窗口的最小值

6. 电子邮件协议

应用层协议

过程
  1. 发信人调用用户代理来编辑要发送的邮件,用户代理用SMTP协议把邮件发送给发送方邮件服务器
  2. 发送方邮件服务器将邮件放入缓存中队列中,等待发送
  3. 运行在发送方邮件服务器的SMTP进程,发现在邮件缓存中有待发送的邮件,就向运行在接收方邮件服务器的SMTP服务进程发起建立TCP连接
  4. SMTP客户进程开始向SMTP服务进程发送邮件,当邮件全部发送完毕后,关闭TCP连接
  5. 运行在接收方邮件服务器中的SMTP服务进程收到邮件后,将邮件放入收件箱中,等待收信人读取
  6. 收信人调用用户代理,使用POP3协议将自己的邮件从接收方邮件服务器的用户邮箱中取出
7. HTTP协议
过程
  1. 浏览器分析链接指向页面的URL
  2. 浏览器向DNS请求解析URL的IP地址
  3. DNS解析出服务器的IP地址返回给浏览器
  4. 浏览器与该服务器建立TCP链接
  5. 浏览器发出HTTP请求
  6. 服务器通过HTTP响应返回信息给浏览器
  7. 浏览器将信息进行解析,以网页的形式呈现给用户
8. IP, TCP, UDP的首部
1. IP(20字节)

img

2. TCP(20字节)

img

3. UDP(8字节)

img

9. TCP拥塞控制中的快速恢复
1. 原理

快速恢复的思想是“数据包守恒”原则,即同一个时刻在网络中的数据包数量是恒定的,只有当“老”数据包离开了网络后,才能向网络中发送一个“新”的数据包,如果发送方收到一个重复的ACK,那么根据TCP的ACK机制就表明有一个数据包离开了网络,于是cwnd加1。 跟快速重传同时使用。

2. 过程
  1. 当收到3个重复ACK时,把阈值设置为cwnd的一半,把cwnd设置为阈值加3,然后重传丢失的报文段,加3的原因是因为收到3个重复的ACK,表明有3个“老”的数据包离开了网络。
  2. 再收到重复的ACK时,拥塞窗口增加1。
  3. 当收到新的数据包的ACK时,把cwnd设置为第一步中的阈值的值。原因是因为该ACK确认了新的数据,说明从重复ACK时的数据都已收到,该恢复过程已经结束,可以回到恢复之前的状态了,也即再次进入拥塞避免状态。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值