面试题目:网络通信

目录

题目一:TCP/IP四层模型是什么?

题目二:UDP与TCP的区别?

题目三:三次握手与四次挥手是什么?

题目四:TCP和UDP的应用场景是什么?

题目五:常见的socket有3种类型是什么?


题目一:TCP/IP四层模型是什么?

答:应用层,传输层,网络层,数据链路层。

题目二:UDP与TCP的区别?

1,TCP是面向有连接型;UDP是面向无连接型;

2,TCP是一对一传输,;UDP支持一对一、一对多、多对一和多对多的交互通信;

3,TCP是面向字节流的,即把应用层传来的报文看成字节流,将字节流拆分成大小不等的数据块,并添加TCP首部;UDP是面向报文的,对应用层传下来的报文不拆分也不合并,仅添加UDP首部;

4,TCP支持传输可靠性的多种措施,包括保证包的传输顺序、重发机制、流量控制和拥塞控制;UDP仅提供最基本的数据传输能力。

题目三:三次握手与四次挥手是什么?

1,三次握手:

第一次握手,主机A发送同步报文段(SYN)请求建立连接。

第二次握手,主机B接收到连接请求,向主机A回复ACK,同时主机B也发送自己的请求建立连接(SYN)。

第三次握手,主机A针对主机B的SYN回复应答ACK。

2,四次挥手:

第一次挥手,当主机A发送数据完毕后,发送结束报文段(FIN)。

第二次挥手,主机B收到FIN报文后,向主机A发送一个确认序号ACK(为了防止这段时间对方重传FIN报文)。

第三次挥手,主机B准备关闭连接,向主机A发送一个FIN结束报文段。

第四次挥手,主机A收到FIN结束报文段后,进入TIME_WAIT状态,并向主机B发送ACK表示连接彻底释放。

注:TIME_WAIT状态存在的理由,A不能保证最后的ACK能达到B, 所以, 还应该观望一段时间, 护送一段时间。 如果最后的ACK丢失, 那么B显然收不到,  B于是发起了重传FIN的操作, 此时如果A处于CLOSED的状态, 就没办法给对端发ACK了(实际是发RST), 呜呼哀哉。 所以A应该等一段时间, 这段时间就是所谓的TIME_WAIT,

题目四:TCP和UDP的应用场景是什么?

1,TCP:当对网络通讯质量有要求的时候,比如整个数据要准确无误的传输给对方。常见的协议:HTTP(超文本传输协议),HTTPS,FTP(文件传输协议),POP(用于接收邮件),SMTP(邮件传送协议)等。

2,UDP:当强调传输性能而不是传输的完整性,要求网络通讯速度能尽量的快。常见的协议:DNS(域名解析),SNMP(网络管理协议),TFTP(简单文件传输协议)等。

题目五:常见的socket有3种类型是什么?

1,流式socket(SOCK_STREAM):提供一种面向连接,可靠的数据传输服务。该服务保证数据能够实现无差错,无重复发送,并按顺序接收。

2,数据包socket(SOCK_DGRAM):提供一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。

3,原始套接字(SOCK_RAW):主要用于一些协议的开发,可以进行比较底层的操作。

欢迎订阅公众号【从零开始学无线】,一起学习交流!

                                                                   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章