ios开发网络协议,ios系统使用什么网络协议

1,ios系统使用什么网络协议iOS 7中使用了一种被称为多路TCP的全新网络协议 。TCP是Transmission Control Protocol的简称,它是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议 , 能够允许像iPhone或者iPad这样的设备同时使用多重接口 , 比如说同时使用蜂窝移动网络和WiFi进行数据传输 。应该是炒作吧,苹果转让ios系统的可能性非常之小,就算苹果转让为什么要给华为?。?
2,iOS 网络7层协议在OSI参考模型中,从下至上,每一层完成不同的、目标明确的功能 。1、物理层(Physical Layer)物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性 。该层为上层协议提供了一个传输数据的物理媒体 。在这一层,数据的单位称为比特(bit) 。属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等 。2、数据链路层(Data Link Layer)数据链路层在不可靠的物理介质上提供可靠的传输 。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等 。在这一层,数据的单位称为?。╢rame) 。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等 。3、网络层(Network Layer)网络层负责对子网间的数据包进行路由选择 。此外,网络层还可以实现拥塞控制、网际互连等功能 。在这一层 , 数据的单位称为数据包(packet) 。网络层协议的代表包括: IP 、IPX、RIP、OSPF等 。4、传输层(Transport Layer)传输层是第一个端到端,即主机到主机的层次 。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输 。此外,传输层还要处理端到端的差错控制和流量控制问题 。在这一层 , 数据的单位称为数据段(segment) 。传输层协议的代表包括: TCP、UDP 、SPX等 。5、会话层(Session Layer)会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话 。会话层还利用在数据中插入校验点来实现数据的同步 。会话层协议的代表包括:NetBIOS、ZIP(AppleTalk区域信息协议)等 。6、表示层(Presentation Layer)表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解 。表示层的数据转换包括数据的加密、压缩、格式转换等 。表示层协议的代表包括:ASCII、ASN.1、JPEG、MPEG等 。7、应用层(Application Layer)应用层为操作系统或网络应用程序提供访问网络服务的接口 。应用层协议的代表包括:Telnet、FTP、 HTTP 、SNMP等场景1:TCP和UDPTCP: 传输控制协议,提供面向链接的,可靠字节流服务,遵循三次握手协议,可保证数据一端到另一端UDP:用户数据协议,面向数据的运输协议,面向非链接协议,发送以后,没有回调协议的,所以传输快场景2:socket和http和https
3,ios开发什么时候用到tcpip协议TCP/IP已成为当今计算机网络最成熟、应用最广的互联协议 。Internet采用的就是TCP/IP协议,网络上各种各样的计算机上只要安装了TCP/IP协议,它们之间就能相互通信 。运行TCP/IP协议的网络是一种采用包(分组)交换网络 。TCP/IP(传输控制协议/网际协议)是异构网络互连的通信协议,通过它可以实现各种异构网络或异种机之间的互联通信 。简单地说就是互联网的基础协议,我们现在的互联网之所以这么发达它的贡献是很大的 。。两者没用可比性 , tcpip是一个网络协议族,而ios只是apple的操作系统而已,两者的联系是tcpip可以通过ios承载【ios开发网络协议,ios系统使用什么网络协议】
4 , iOS网络篇网络协议1.什么是HTTP2.理解HTTPS,SSL,TLS的工作原理3.网络请求在iOS10+之后的使用注意事项,适配苹果的强制要求(全面适配HTTPS请求),兼容iOS10+,提高安全性4.NSURLSession的基本使用HTTP诞生:www刚起步HTTP/0.9版本:只有一个GET命令HTTP/1.0版本:可以传输文字,图像,视频和二进制文件HTTP/1.1版本:目前最流行的版本HTTPS:以安全为目标的HTTP通道首先是TCP层面的三次握手,建立起客户端和服务端的连接,连接成功后,客户端和服务端就可以进行正常的HTTP网络请求1.客户端发送同步报文SYN2.服务端回复报文SYN,ACK3.客户端回复ACK报文然后是客户端和服务端进行HTTP层面的请求和响应当这个网络请求和响应结束后,需要关闭这条TCP协议的通道断开流程(TCP层面)6.如果这个断开是客户端发起的,首先由客户端FIN终止报文7.服务端回复ACK确认报文客户端收到后,此时客户端向服务端方向的连接就已经断开了过一段时间8.服务端会发送FIN,ACK终止报文9.客户端会回复ACK确认报文此时由服务端向客户端方向的TCP连接通道就关闭了TCP连接通道是一条双向的通道,意思是客户端可以通过这条通道向服务器端发送数据,服务器端同样可以通过这条通道向客户端发送数据,并不是两条通道59854是客户端临时端口号,80是服务器端口号所以这是一条由客户端发向服务端的SYN同步报文下面看到还有80-59854的SYN,ACK报文以及59854-80的ACK报文在这三次TCP之后,连接已经接通,点击下面的HTTP请求,看它的原始端口号,就会找到59854-80的请求以及80-59854的返回结果CRLF为回车换行首部字段一般是说明本次HTTP请求的一些要求请求报文分请求行和首部行,实体主体GET一般不用POST请求时,请求数据是放在HTTP的body中,body就是实体主体请求行中的方法为:GET和POST首部行:多个key-Value字段下图即为GET请求的请求行响应报文分状态行和首部行,实体主体经常用到服务端的返回结果,就在实体主体中JSON是一种数据格式下面两张图为本次响应报文的Header和JSONHTTPS是以安全为目标的HTTP通道,即HTTP的安全版,这个安全是基于SSL层实现的1.HTTP不需要证书,HTTPS协议需要到CA(证书认证机构)去申请证书,需要交费,免费的少,为了规避网路漏洞及某些不安全因素2.HTTP是明文传输,HTTPS则是具有安全性的SSL加密传输3.端口不一样,HTTP是80,HTTPS是4434.HTTPS可以进行加密传输,身份认证,比HTTP安全下图为HTTP和HTTPS的返回数据抓包HTTP是明文数据,之前在开发中我们就算加密也是对body的简单加密但HTTPS我们看到的就是乱码,根本看不到具体的内容,就算获取到乱码,因为我们不知道解密算法和公钥私钥,所以也无法解析SSL:安全套接字层TLS:安全传输层,为SSL的继任者SSL和TL?S在传输层之上对网络连接进行加密,为网络通信提供安全及数据完整性下面看HTTP和HTTPS的层级结构可以看到,HTTP是将数据放到HTTP应用层,然后到TCP传输层,再到IP网络层而HTTPS是将数据放到HTTP应用层,然后经过TLS&LLS中间层加密后,然后到TCP传输层,再到IP网络层下图是HTTPS的工作流程首先发送方将数据放到HTTP应用层,然后经过TLS&LLS中间层加密后,然后到TCP传输层,再到IP网络层传过去接收方在IP网络层收到数据,显示传到TCP传输层,然后到TLS层解密,在到HTTP应用层关于SSL协议是为了解决以下风险而设计的下图为SSL协议的连接建立过程一. 连接建立之初,首先客户端向服务端发送握手信息,这条信息里面包含两个东西1.随机数number12.协商的一些加密算法(客户端支持的一些加密算法)二. 服务端会基于客户端一个响应握手信息,里面也包含两个东西1.随机数number22.匹配好的协商加密算法三. 随即服务端又会给客户端第二个响应报文,就是服务端的证书四. 当客户端收到这个证书后,需要对证书进行验证,就是我们常说的评估信任证书五. 证书验证通过后,客户端会组装会话秘钥,由以下三个部分组成1.客户端自己保留的随机数number12.客户端自己保留的随机数number23.预主秘钥六.客户端把预主秘钥通过服务端传来的证书里面所包含的公钥加密后传递给服务端七. 服务端就能拿到加密后的预主秘钥,再通过私钥去解密预主秘钥,此时服务端也获取到了1.客户端自己保留的随机数number12.客户端自己保留的随机数number23.预主秘钥八. 服务端根据上面的三个东西也组装会话秘钥,和客户端的组装方式一样九. 客户端使用会话秘钥去加密一条消息,并把这个握手消息传给服务端,为了验证服务端是否能接收加密后的消息十. 服务端也会发送一个加密过的握手消息给客户端,来验证客户端是否能解密当九和十都验证通过后,客户端和服务端的SSL连接接就完成了一. 客户端如何判断服务端发来的证书是有效合法的1.客户端要验证服务端证书的数字摘要和服务端证书解密之后的内容是否一致,来判断证书是否被篡改2.证书链,要逐级验证服务端的证书一直到根证书,看它是否在我们操作系统的可信任证书列表当中二. 预主秘钥由客户端产生,传递给服务端,在会话过程中起重要作用三. 随机数1和随机数2为了使秘钥具有随机性,防止攻击人窃取四. 公钥和私钥SSL连接即使用了对称加密也使用了非对称加密通过非对称加密对预主秘钥起到了很好的保护作用:第六步客户端使用了公钥对预主秘钥进行加密后发给服务端第七步服务端通过私钥去解密预主秘钥来获得内容为什么不直接使用公钥加密私钥解密的方法去完成HTTPS呢,还要组装会话秘钥呢因为非对称加密比较损耗性能对称加密相比非对称加密它是高效的所以我们在后续的网络请求响应过程中,使用的是对称加密算法,非对称加密只是在连接建立过程中去使用,主要目标是为了保证预主秘钥的安全,保证后续的对称加密的安全,这样就规避了对称加密的秘钥在网络传输中容易被截获的问题,同时又保证了高效性存在的问题:秘钥需要通过网络传输给接收方,无法保证秘钥的安全私钥只由接收方保存,不在网络层传输公钥在传输中即使被截获也没关系,因为私钥不知道iOS以下类协议可以干涉证书验证过程NSURLSession的参数如下1.会话2.一次网络请求任务3.认证挑战,携带服务端返回的证书以及相应的验证策略4.block,一是标识认证挑战的策略,二是代表采用的认证的证书下面分别对参数解释NSURLSessionConfiguration类:用来实现会话的配置信息,然后用它来创建NSURLSessionrequestCachePolicy请求的缓存策略timeoutIntervalForRequest请求的时间间隔timeoutIntervalForResource资源的时间间隔networkServiceType网络服务类型allowsCellularAccess是否允许使用蜂窝网来访问分以下几个NSURLSessionDataTask能实现绝大多数网络请求1.先创建2,要启动当我们发起网路请求,收到服务端的回调方法,系统会为我们封装好NSURLProtectionSpace对象,为受保护区,是只读变量,在这个变量里,有个serverTrust,里面包含1.服务端返回的证书2.系统的默认验证策略NSURLSessionAuthChallengeUseCredential = 0,是否使用证书验证NSURLSessionAuthChallengePerformDefaultHandling = 1, 是否执行默认处理NSURLSessionAuthChallengeCancelAuthenticationChallenge = 2,取消证书认证NSURLSessionAuthChallengeRejectProtectionSpace = 3, 拒绝受保护区5,IOS中自定义一个协议怎么才能设定这个协议在什么时候触发呢首先你得先引用这个协议,然后再触发协议里面的方法http://github.com/zynga/fontlabel/tree/master什么时候触发是有自己决定的?。∥实奈矣械悴恢涝趺椿卮鹆?。来个例子:1.协议定义@protocol myProtocol-(void)myMethods;@end2.在你想要添加的类中定义这个协议的变量@property (nonatomic, assign) iddelegate; 设定好什么时候触发这个方法[delegate myMethods]; 3.在协议回调的类中引用这个协议: @interface MyClass 然后这个类实现这个方法 。这样就完成整套流程了 。6,IOS7层协议是什么是OSI七层协议吧 。OSI 七层模型称为开放式系统互联参考模型 OSI 七层模型是一种框架性的设计方法OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能使就是帮助不同类型的主机实现数据传输物理层 : O S I 模型的最低层或第一层 , 该层包括物理连网媒介,如电缆连线连接器 。物理层的协议产生并检测电压以便发送和接收携带数据的信号 。在你的桌面P C 上插入网络接口卡,你就建立了计算机连网的基础 。换言之,你提供了一个物理层 。尽管物理层不提供纠错服务,但它能够设定数据传输速率并监测数据出错率 。网络物理问题,如电线断开,将影响物理层 。数据链路层: O S I 模型的第二层 , 它控制网络层与物理层之间的通信 。它的主要功能是如何在不可靠的物理线路上进行数据的可靠传递 。为了保证传输,从网络层接收到的数据被分割成特定的可被物理层传输的帧 。帧是用来移动数据的结构包,它不仅包括原始数据,还包括发送方和接收方的网络地址以及纠错和控制信息 。其中的地址确定了帧将发送到何处,而纠错和控制信息则确保帧无差错到达 。数据链路层的功能独立于网络和它的节点和所采用的物理层类型,它也不关心是否正在运行 Wo r d 、E x c e l 或使用I n t e r n e t。有一些连接设备,如交换机,由于它们要对帧解码并使用帧信息将数据发送到正确的接收方,所以它们是工作在数据链路层的 。网络层: O S I 模型的第三层,其主要功能是将网络地址翻译成对应的物理地址,并决定如何将数据从发送方路由到接收方 。网络层通过综合考虑发送优先权、网络拥塞程度、服务质量以及可选路由的花费来决定从一个网络中节点A 到另一个网络中节点B 的最佳路径 。由于网络层处理路由,而路由器因为即连接网络各段 , 并智能指导数据传送,属于网络层 。在网络中 , “路由”是基于编址方案、使用模式以及可达性来指引数据的发送 。传输层: O S I 模型中最重要的一层 。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率 。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割 。例如 , 以太网无法接收大于1 5 0 0 字节的数据包 。发送方节点的传输层将数据分割成较小的数据片,同时对每一数据片安排一序列号,以便数据到达接收方节点的传输层时,能以正确的顺序重组 。该过程即被称为排序 。工作在传输层的一种服务是 T C P / I P 协议套中的T C P (传输控制协议),另一项传输层服务是I P X / S P X 协议集的S P X (序列包交换) 。会话层: 负责在网络中的两节点之间建立和维持通信 。会话层的功能包括:建立通信链接,保持会话过程通信链接的畅通,同步两个节点之间的对 话,决定通信是否被中断以及通信中断时决定从何处重新发送 。你可能常常听到有人把会话层称作网络通信的“交通警察” 。当通过拨号向你的 I S P (因特网服务提供商)请求连接到因特网时,I S P 服务器上的会话层向你与你的P C 客户机上的会话层进行协商连接 。若你的电话线偶然从墙上插孔脱落时,你终端机上的会话层将检测到连接中断并重新发起连接 。会话层通过决定节点通信的优先级和通信时间的长短来设置通信期限表示层: 应用程序和网络之间的翻译官,在表示层,数据将按照网络能理解的方案进行格式化;这种格式化也因所使用网络的类型不同而不同 。表示层管理数据的解密与加密,如系统口令的处理 。例如:在 Internet上查询你银行账户,使用的即是一种安全连接 。你的账户数据在发送前被加密 , 在网络的另一端,表示层将对接收到的数据解密 。除此之外,表示层协议还对图片和文件格式信息进行解码和编码 。应用层: 负责对软件提供接口以使程序能使用网络服务 。术语“应用层”并不是指运行在网络上的某个特别应用程序 ,应用层提供的服务包括文件传输、文件管理以及电子邮件的信息处理 。ios 7中使用了一种被称为多路tcp的全新网络协议 。tcp是transmission control protocol的简称,它是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(transport layer)通信协议,能够允许像iphone或者ipad这样的设备同时使用多重接口,比如说同时使用蜂窝移动网络和wifi进行数据传输 。

    推荐阅读