数字天域校招iOS工程师面筋(内附答案)

数字天域

1.问 说一下对http的理解。

答http协议位于应用层,就是超文本传输协议。http连接主要是建立在TCP/IP协议之上的应用,它本质是对数据进行包装,传输还是通过socket连接进行传输。socket本身并不是协议,只是一个函数调用(API),它对TCP/IP协议进行了封装,通过socket我们才能使用TCP/IP协议。socket连接根据TCP或者UDP分为TCP连接或者UDP连接。socket通过TCP连接具体过程:客户端建立socket,调用connect函数,这时会触发三次握手,客户端发出syn(j),服务端收到后回应ack(j+1)+syn(k),客户端收到后再次发出ack(k+1),至此三次握手完成,连接建立成功,可以进行数据传输。在此之前服务端的连接过程是建立socket,绑定到对应端口,监听,等待客户端发起连接请求。断开连接的时候会触发四次挥手操作,多的一次就是服务端在收到客户端的fin请求时,并不能立即关闭连接,只能先返回ack报文,随后真正处理完了工作再返回fin报文,然后客户端收到以后返回ack报文才能真正断开连接。

2.问Socket连接与HTTP连接的区别。

答通常情况下,socket连接就是tcp连接,所以一旦建立连接以后,理论上双方就可以一直收发数据。但是实际上,由于长时间出于非活跃状态的时候,连接会被网络防火墙关闭,所以一般情况下socket会通过轮询保持连接状态。 而HTTP连接主要是通过“请求-响应”的模式进行链接。不仅在请求时需要先建立连接,而且服务端还必须等收到请求以后才能回复数据。在请求结束后,会主动释放连接。

3.问scoket的理解和作用。

答套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:通讯的协议,本地和远地的主机ip地址,本地和远地的协议端口。 应用层通过传输层进行数据通讯时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据,为了区分不同的应用进程和连接,操作系统就为应用程序和TCP/IP协议的交互提供了socket接口 。应用层和传输层可以通过socket接口来区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

#数字天域##校招##iOS工程师##面经#
全部评论
socket层只是在TCP/UDP传输层上做的一个抽象接口层,因此一个socket连接可以基于TCP,也有可能基于UDP。
点赞 回复 分享
发布于 2020-07-16 13:14

相关推荐

不愿透露姓名的神秘牛友
昨天 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
评论
3
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务