关于 TCP/IP,必知必会的十个问题!
Java技术栈
共 8070字,需浏览 17分钟
·
2020-12-11 06:57
Java技术栈
www.javastack.cn
关注阅读更多优质文章
本文整理了一些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减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
关注Java技术栈看更多干货
评论