关于 TCP/IP,必知必会的十个问题!
本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养。
一、TCP/IP模型
二、数据链路层
封装成帧: 把网络层数据报加头和尾,封装成帧,帧头中包括源MAC地址和目的MAC地址。 透明传输:零比特填充、转义字符。 可靠传输: 在出错率很低的链路上很少用,但是无线链路WLAN会保证可靠传输。 差错检测(CRC):接收者检测错误,如果发现差错,丢弃该帧。
三、网络层
1.IP协议
1.1 IP地址
1.2 IP协议头
2.ARP及RARP协议
3. ICMP协议
四、ping
五、Traceroute
六、TCP/UDP
面向报文
面向字节流
什么时候应该使用TCP?
什么时候应该使用UDP?
七、DNS
八、TCP连接的建立与终止
1.三次握手
为什么要三次握手?
2.四次挥手
为什么要四次分手?
为什么要等待2MSL?
保证TCP协议的全双工连接能够可靠关闭 保证这次连接的重复数据段从网络中消失
九、TCP流量控制
十、TCP拥塞控制
1.慢开始和拥塞避免
慢开始算法:
当 cwnd < ssthresh 时,使用上述的慢开始算法。
当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞避免算法。
当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞控制避免算法。
拥塞避免
2.快重传和快恢复
快重传
快恢复
当发送方连续收到三个重复确认,就执行“乘法减小”算法,把慢开始门限ssthresh减半。
与慢开始不同之处是现在不执行慢开始算法(即拥塞窗口cwnd现在不设置为1),而是把cwnd值设置为 慢开始门限ssthresh减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
近期热门推荐? 最近熬夜给大家准备了515套Java代码,有一些是业务类的小项目,比如Java博客项目,也有脚手架、也有平时用一些的工具类、21套小程序代码,也有一些游戏类的项目。
扫以下二维码并回复:515 即可获取
人工,吃饭,睡觉,工作,玩,还会给你发资料
请耐心等待,会挨个处理地~
谢谢支持哟 (*^__^*),文章有帮助,点个赞
评论