iOS之网络编程---网络协议浅谈

1.TCP/UDP协议:
TCP:传输控制协议,提供面向连接的、可靠的、点到点的通信(可靠)
正式通信前必须要与对方建立连接(三次握手)。事先为所发送的数据开辟出连接好的通道,然后再进行数据发送,
UDP:用户数据报协议,提供非连接的不可靠的,点到多点的通信(快速)
正式通信前不必与对方建立连接,不管对方状态就直接发送,UDP用于一次只传送少量数据,可靠性要求低。

**TCP的三次握手:
1.客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认
2.服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个syn包(syn+ack包),此时服务器进入SYN_RECV状态
3.客户端收到服务器的SYN+ACK包,向服务器发送确认包ack=k+1,此包发送完毕,客户端和服务端进入ESTABLISHED状态

PS:socket
(基于TCP/UDP协议实现的):长连接,理论上客户端和服务器一旦建立起连接就不会主动断掉,双方保持连接通道,都可以主动发送数据。(主要使用的类CFSocketRef)

2.http协议:短连接,客户端向服务器发送一次请求,服务器端相应后立即断掉连接,以节省资源。(主要使用的系统类是:NSURLConnection)

5.TCP/UDP
1)基本信息:(网络协议的讲解见blog)
物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
IP:网络层
TCP:传输层
HTTP:应用层
TCP/IP主要解决数据如何在网络中传输,HTTP主要解决如何包装数据。

2)什么是socket:对TCP/IP协议的封装,socket本身不是协议,而是一个调用接口(API)。它使得程序员更方便地使用TCP/IP协议栈而已。
(HTTP是轿车,提供了封装或者显示数据的具体形式,那么socket就是发动机,提供了网络通信的能力)

3)主要使用CFSocketRef,使用到之后再详细说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值