1.什么是C/S架构?
即“客户端/服务器”架构,服务器负责数据的管理,客户机负责完成与用户的交互任务
2.互联网协议是什么?分别介绍五层协议中每一层的功能?
规定了计算机通过网络进行通信的方式
物理层:发送电信号,进行数据模式转换
数据链路层:定义数据分组方式
网络层:位于不同地理位置的网络中两个主机系统间提供链接和路径选择
运输层:负责向两个主机中进程之间的通信提供服务
应用层:为用户的应用进程提供服务
3.基于tcp协议通信,为何建立链接需要三次握手,而断开链接却需要四次挥手
三次握手:client发送请求建立通道;sever收到请求并同意,同时也发送请求建立通道;client收到请求并同意,建立完成
四次挥手:client发送请求断开通道;sever收到请求并同意,但是sever可能还在发送数据并不关闭接口,所以回复同意和发送sever断开请求不是一同发送的;
等到数据发送完毕,sever发送请求断开通道;client收到消息结束
4.为何基于tcp协议的通信比基于udp协议的通信更可靠?
tcp协议是面向链接的协议,通信过程中,通信双方通过三次握手建立链接,四次挥手断开链接,发送方给接收方发送数据,如果没有得到接收方的回应就会继续给他发消息,直到接收方回应
udp是面向数据报的协议,不需要三次握手建立链接,不管接收方有没有收到数据
5.流式协议指的是什么协议,数据报协议指的是什么协议?
流式协议:tcp协议,是通过三次握手建立连接再发送数据的,会存在粘包现象,当发送空消息时,对方并不会收到,不一定是一个send就要对应一个recv,传输效率低,网络开销大,可靠性高。
数据报协议:udp协议,是以消息为单位发送的数据的,一个sendto就对应一个recvfrom,不会存在粘包现象,即使发送空消息也能收到,传输效率高,网络开销小,可靠性低。
6.什么是socket?简述基于tcp协议的套接字通信流程
socket:应用层与TCP/IP协议族通信的中间软件抽象层,把复杂的TCP/IP协议族隐藏在Socket接口后面
基于tcp协议的套接字通信流程:
1)服务端:创建一个套接字对象;绑定本机地址信息;开始时监听;接收连接;
2)客户端:创建套接字对象;主动连接服务端;等待对方接收
通过三次握手后建立连接,开始收发消息。
收发消息完了之后,通过四次挥手断开连接
7.什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?
粘包:两次命令执行的结果黏在一起
原因:接收方不知道所要接收消息的大小和界限
1、socket缓冲区导致,socket为了提高传输效率,往往会将较短时间间隔内较小的数据包合并发送,这样接收方就会收到一个粘包数据;
2、接收方不知道该接收多大数据量,当接收方的最大接收量小于消息大小时,会发生粘包。
第三模块:面向对象&网络编程基础-第2章 网络编程-练习题(简答题)
最新推荐文章于 2023-11-09 20:59:06 发布