网络编程面试题

发布于:2024-03-18 ⋅ 阅读:(137) ⋅ 点赞:(0)

一、什么是IP地址

1.IP地址是主机在网路中的唯一标识,,当主机从一个网络切换到另一个网络时,会更改IP地址,同样的IP地址也是路由器进行路由选择的标识

2.IP地址的分类

IPV4:采用4字节无符号整数存储

IPV6:采用16字节无符号整数存储

3.IP地址的划分

IP=网络号+主机号

网络号:确定计算机从属的网络,在同一个网络下的多个主机IP地址网络号都是一样的

主机号:标识设备在该网络重的主机编号

二、IP地址和MAC地址的区别

1.IP地址的设计是出于拓扑设计出来的,只要在不重复IP地址的情况下,它是可以随意更改的;而MAC地址是根据生产厂商烧录好的,它一般不能改动的

2.它们最明显的区别就是长度不同,IP地址的长度为32位,而MAC地址为48位

3.寻址协议层不同。IP地址应用于OSI模型的网络层,而MAC地址应用在OSI模型的数据链路层

三、什么是端口号

1.为了区分同一主机上的多个进程,使用端口号来进行处理

2.端口号是以一个2字节的无符号整数,取值范围[0,65535]

3.端口号分类:
指定端口号:常用的为

TCP 21:FTP文件传输服务

TCP 110:POP3邮局协议版本

TCP 80:HTTP超文本传输协议

UDP 53:DNS域名解析服务

UDP 69:TFTP文件传输服务

用户可用端口号:1024-49151

临时端口号(自动分配端口号):49152-65535

四、TCP通信过程中的服务器端实现流程

通信模型:

1.创建套接字

2.绑定端口号、IP

3.开启监听

4.接收客户端的连接

5.与客户端进行数据传输

6.关闭套接字

五、TCP通信和UDP通信的区别

TCP:稳定

1.提供面向连接,可靠的数据传输传输服务

2.传输过程中,数据无误、数据无丢失、数据无失序、数据无重复

3.TCP会给每个数据包编上编号,称为序列号

4.数据传输效率低,消耗资源多

5.数据收发不同步

        为了提高效率,TCP会将多个较小,并且发送间隔短的数据包,粘成一个包发送,成为粘包现象

6.TCP适用场景:对传输质量比较高以及传输量大量数据的通信,在需要可靠通信的传输场合

UDP:快速

1.面向无连接的,不保证数据可靠,尽最大努力传输的协议

2.数据传输过程中,可能出现数据丢失、重复、失序现象

3.数据传输效率高、实时性高

4.限制每次传输的大小,多出部分直接删除

5.收发同步,不会出现粘包

6.UDP适用场景:发送小尺寸,在接收数据给出应答比较困难的情况下

六、TCP通信中的3次握手

1.客户端像服务器端发送连接请求

2.服务器端应答客户端的连接请求

3.客户端与服务器建立连接

七、TCP通信中的4次挥手

挥手请求可以是客户端发起,可以是服务器端发起

假设是客户端发起:

1.客户端发起断开请求

2.服务器端应答断开请求

3.服务器端请求关闭连接

4.客户端发送确认应答

八、UDP通信中是否可用connect函数

1.UDP通信可以使用connect函数,他将服务器与某个客户端建立一个唯一的通道

2.优点:传输效率高,稳定性高,数据干扰较小

3.当服务器端用connect与某个客户端连接后,服务器端就不能再接收其他客户端的消息

4.如果要断开,就再使用一个connect函数,但是需要将地址信息结构体中的sin_addr改成AF_UNSPEC

5.在UDP中可以多次使用connect与其他客户端建立连接,但是在TCP中只能进行一次连接

6.当UDP用connect与某一客户端建立连接后,使用read/write、send/recv函数完成通信

本文含有隐藏内容,请 开通VIP 后查看

网站公告


今日签到

点亮在社区的每一天
去签到