网络面试题整理
1.在TCP通信中,服务器端的实现流程
创建套接字,服务器创建套接字来监听客户端的请求。
然后需要绑定服务器的地址,把服务器的套接字和IP地址和端口号绑定。
绑定完成后服务器需要开启监听,并且指定服务器能够接入的个数,接着等待客户端的接入用accept函数来接收建立连接。
连接成功后服务器会生成一个新的套接字来和客户端进行通信了,等待最后通信完就可以关闭服务器了。
2.TCP客户端的通信流程
首先要创建个套接字来与服务器来建立连接,然后就可以调用connect函数来与服务器建立连接,
连接成功后就可以和服务器进行通信了,通信完就可以关闭连接了。
3.TCP中的三次握手
第一次握手是客户端向服务器发送一个数据包请求服务器连接,
第二次握手是服务器收到客户端发来的数据包后返回一个数据包和确认包表示确认客户端的请求并且同样请求建立连接。
第三次握手是客户端收到服务器的请求后向服务器发送一个确认包表示对服务器的确认。此时双方建立了连接。
4.TCP中的四次挥手
第一次挥手是客户端向服务器发送一个断开连接请求的数据包,
第二次挥手是服务器向客户端发送一个确认数据包表示确认收到断开请求。
第三次挥手是服务器向客户端再发送一个断开连接请求的数据包。
第四次挥手是客户端收到服务器发来的断开请求数据包后发送一个确认的数据包。完成这四次挥手后双方结束通信。
5.UDP中是否可以使用connect函数进行连接
UDP通信中可以使用connect函数,他是将服务器与某个客户端建立一个唯一通道,
在服务器端使用connect与某个特定的客户端建立连接后,服务器就不再接收其他客户端的消息了,
如果想要断开,需要再使用一次connect函数
当UDP中使用了connect与某个特定的客户端建立连接后,就可以使用read/write、send/recv等函数完成数据的接收和发送。
6.TCP通信和UDP通信的区别
TCP需要连接,UDP不需要连接。
TCP提供可靠的传输,UDP是尽最大努力传输。
TCP传输稳定但是效率低,UDP传输不稳定,但是较快,效率高。
TCP传输资源开销大,UDP传输资源开销小 。
TCP会产生沾包现象,数据收发不同步,UDP不会产生该现象,数据收发同步。