iOS开发之2019最新面试题大全

1.tcp三次握手,建立连接与tcp四次挥手,断开连接

建立连接/tcp三次握手:
1.第一次握手: 由客户端发送一个叫做SYN(SYN=J)包到服务器, 并且进入SYN_SEND状态, 然后就翘着二郎腿等服务器回应.
2.第二次握手: 服务器接收到了SYN包, 必须确认客户端的SYN(ACK=J+1), 同时也会发送一个SYN(SYN=K)包, 也就是SYN+ACK, 此时轮到服务器跷二郎腿, 并且进入SYN_RECV状态.
3.第三次握手: 接收到了服务器发来的SYN+ACK包, 并向服务器发送确认包ACK(ACK=K+1), 发完之后, 客户端和服务器就会收起二郎腿并且进入ESTABLISHED状态, 完成了三次握手

断开连接/TCP四次挥手
第一次挥手: 客户端会发送一个FIN的报文给服务器之后就会进入等待服务器的响应.
第二次挥手: 服务器接收到了FIN之后, 并确认是由客户端发起的, 同时也会发送一条ACK=X+1的报文.
第三次挥手: 等到客户端接受到ACK报文之后, 服务器关闭了与客户端的连接, 会发送一条FIN的报文给客户端.
第四次挥手: 客户端接收到了由服务器发送过来的FIN报文, 就会关闭与服务端的连接, 并且发送ACK给服务器.

2.tcp与udp的区别与联系

TCP是传输控制协议,提供的是面向连接、可靠的字节流服务。当客户的服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP是用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序穿给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用再客户的服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

简述:
TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。
UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。

3.http与https的区别

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

4.kvc与kvo的区别

KVC的本质就是 (键值编码)
定义: 在对象创建完成之后,动态(牵扯到运行时)的给对象的属性赋值
KVC,即是指 NSKeyValueCoding,一个非正式的Protocol,提供一种机制来间接访问对象的属性。而不是通过调用Setter、Getter方法访问。

KVO 的本质就是(键值监听) 定义::Key-Value
Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值