这是博主面向腾讯学习的面试题大整理系列,可以在如下github仓库Issues
中通过 Labels
标签分类查看相关内容,同时欢迎大家指正可能的错误并且提出自己的解答,希望大家学的鱼块,春秋招顺利!
传送门:https://github.com/Chocolate1999/Front-end-learning-to-organize-notes
往期精选:
- 【亡羊补牢】计算机网络灵魂之问 第1期 一道百度笔试题引发的血案 (有了IP地址和子网掩码,广播地址还求不出来?)
- 【亡羊补牢】计算机网络灵魂之问 第2期 常见状态码知道哪些? 304 403 405分别是什么
- 【亡羊补牢】计算机网络灵魂之问 第3期 http状态码 302 504分别代表什么意思
- 【亡羊补牢】计算机网络灵魂之问 第4期 响应状态码,200(from disk cache),200(from memory cache),304的区别
- 【亡羊补牢】计算机网络灵魂之问 第5期 POST和GET 的区别,除了长度,安全其他的
- 【亡羊补牢】计算机网络灵魂之问 第6期 http介绍一下,为什么http2.0不普及,websocket的基本指令,性能
- 【亡羊补牢】计算机网络灵魂之问 第7期 爬虫,网站如何去做防止,如何判断
- 【亡羊补牢】计算机网络灵魂之问 第8期 tcp和udp区别
- 【亡羊补牢】计算机网络灵魂之问 第9期 如果让你做一个视频聊天软件,你用tcp还是udp?为什么?
tcp是怎么去保证可靠传输的?
- 应用数据被分割成 TCP 认为最适合发送的数据块。
- TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
校验和
:TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。- TCP 的接收端会丢弃重复的数据。
流量控制
:TCP 连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议。 (TCP 利用滑动窗口实现流量控制)拥塞控制
:当网络拥塞时,减少数据的发送。ARQ(自动重传请求)协议
:也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。超时重传
:当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
【作者:Chocolate】https://chocolate.blog.csdn.net/
学如逆水行舟,不进则退