一面
1,Class和Struct的区别?
2,简述一下TCP连接的四次挥手过程,为什么不能挥三次手?
一面
1,Class和Struct的区别?
class 和 struct 最本质的区别 : class 是引用类型,它在堆中分配空间,栈中保存的只是引用;而 struct 是值类型,它在栈中分配空间。→详情参考
2,简述一下TCP连接的四次挥手过程,为什么不能挥三次手?
TCP在传输之前会进行三次沟通,一般称为“三次握手”,传完数据断开的时候要进行四次沟通,一般称为“四次挥手”。
TCP连接的四次挥手过程:
- 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
- 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
- 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
- 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
四次挥手的原因:
TCP建立连接要进行三次握手,而断开连接要进行四次。这是由于TCP的半关闭造成的。因此TCP连接是全双工的(即数据即可在两个方向上同时传递)所以进行关闭时每个方向都要单独进行关闭。这个单方向的关闭就叫半关闭。当一方完成它的数据发送任务,就发送一个FIN来向另一方通告将要终止这个方向的连接。→参考详情
3,
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zzzzlei123123123/article/details/89081834
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。