-- iOS网络协议--HTTP/TCP/IP
TCP/IP协议的制定国际标准化组织(ISO)定义了网络协议的基本框架,被称为OSI(开放式系统互联)模型。要制定通讯规则,内容会很多,比如要考虑A电脑如何找到B电脑,A电脑在发送消息给B电脑时是否需要B电脑进行反馈,A电脑传送给B电脑的数据的格式又是怎样的?内容太多太杂。OSI模型制定的七层标准模型是:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。虽然国际化组织制定了这样一个网络协议的模型,但是实际上互联网通讯视同的网络协议是TCP/IP网络协议。
TCP/IP是一个协议族,也是按照层次划分。共四层:应用层,传输层,互连网络层,网络接口层。那么TCP/IP协议和OSI模型有什么区别呢?OSI网络协议模型,是一个参考模型,而TCP/IP协议是事实上的标准。TCP/IP协议参考了OSI模型,但是并没有严格按照OSI规定的七层去划分,而只是划分了四层,个人决定这样会更简单点,当划分太多层次时,你很难区分某个协议是属于哪个层次的。TCP/IP协议和OSI模型也并不冲突,TCP/IP协议中的应用层协议,就对应于OSI中的应用层,表示层,会话层。就像以前有工业部和信息产业部,现在实行打不制后只有工业和信息化部一个部门,但是这个部门还是要做以前两个部门一样多的事情,本质上没有多大的差别。TCP/IP中有两个重要的协议,传输层的TCP协议和互连网络层的IP协议,因此就拿这两个协议做代表,来命名整个协议族了,在说TCP/IP协议时,是指整个协议族。
TCP/IP协议分为四个层次,但我们并不需要了解所有层次的协议,我觉得主要关注应用层和传输层的协议就可以了。拿寄送邮件举例,A寄邮件给B,A关心的是用什么格式写什么内容给B(应用层内容),是寄挂号信还是寄平信(传输层内容), 但是A是不会去关注邮件传送过程中采用了那条路线,邮递员是如何把信件递送到B手里的(互连网络层,网络接口层)。
先说传输层,传输层有多个协议,但最主要的是TCP和UDP协议,两则的区别在于TCP协议需要接收方反馈,UDP协议不需要接收方反馈。TCP就像挂号信,A电脑发信息给B电脑后,需要得到B电脑的反馈,这样A电脑就能知道B电脑是否已经收到信息。UDP就像平信,A电脑发信息给B电脑后,B电脑并不给A电脑反馈,A电脑发送信息出去后并不知道B电脑是否已经收到。因此,TCP传输比UDP传送更可靠,但是TCP传输的效率就不如UDP了。至于,在传送过程中具体选择哪种传送方式,需要具体问题具体分析。在不可靠的网络传送过程中一般选择TCP传送方式。在讲求效率,或者不在乎传送失误的情况下可以选择UDP方式来提高传输速率。
应用层的协议有很多,每一个协议代表一种类型的服务。HTTP协议,万维网服务。FTP协议,文件传送服务。POP3,邮件服务,SOAP(简单对象访问协议)协议webService服务。
在理解TCP/IP协议的过程中,我遇到了困惑。
[*]什么是socket?
[*]以前有听说过socket编程这种说法,也有的说套接字编程。我在搜索关于socket的资料时,发现有的说socket是指一个连接,有的说socket是指一个端点。拿打电话做比喻,A电话机和B电话机正在通话,那么socket是指的是A和B之间的连接线呢,还是指电话机(端点)?
[*]我现在的理解是,socket就是一个连接中的一个端点,一次通讯(连接)a,b端都会有一个socket。一个socket对应一个连接。
[*]SOAP可以使用HTTP协议进行传输吗?
[*]在了解SOAP协议的过程中,看到介绍说SOAP可以通过TCP,UDP,HTTP协议来传送。这也是让人困惑的描述。一看这句话,就会感觉HTTP怎么和TCP,UDP协议并列了呢?难道HTTP还是属于传输层协议?再加上HTTP中文译名的问题,名字听上去像传输层,初学者又要开始头大了。
[*]事实上,HTTP是应用层的协议,这一点可以毫无怀疑,那么现在新问题来了,SOAP和HTTP都是应用层协议,怎么说SOAP能用HTTP协议来传输呢?应用层的协议可以用应用层的协议传送吗?
[*]我查阅了资料,是这样一回事,SOAP将信息进行XML(Extensive Markup Language可扩展标示语言)序列化后,再用HTTP协议的方式再打包进行传送,传送的方式还是TCP或者UDP,做个比喻就好理解了。TCP和UDP都是公路,暂且把TCP认为是一般公路,UDP是高速公路,SOAP和HTTP就都是汽车,那么SOAP和HTTP都可以在TCP和UDP上跑。说SOAP可以通过HTTP来传送,实际就是说SOAP是小轿车,HTTP是装轿车的卡车,把SOAP的信息装到HTTP里面,然后再运输,当然走的道路还是TCP或UDP。
[*]说SOAP可以通过HTTP协议来传输,这句话不太准确,比较准确的说法是:SOAP信息可以使用HTTP协议包装后通过TCP或UDP传输。
二、HTTP协议
HTTP (全称:Hyper Text Transport Protocol) 超文本传输协议,是一种应用层的协议;Transport有运输,转移之意。不管是移动客户端还是PC端,访问远程的网络资源经常使用HTTP协议。
页:
[1]