设为首页 收藏本站
查看: 1131|回复: 0

[经验分享] -- iOS网络协议--HTTP/TCP/IP

[复制链接]

尚未签到

发表于 2017-6-22 08:42:53 | 显示全部楼层 |阅读模式
  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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-386683-1-1.html 上篇帖子: python【第十四篇】HTML与CSS初遇 下篇帖子: HTML入门篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表