码迷,mamicode.com
首页 > 其他好文 > 详细

TCP/IP协议简介

时间:2015-03-06 18:34:44      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

TCP/IP是什么

        简单的说,tcp/ip就是一套规矩。两个计算机要互相通信,就得有规矩,一个非常普遍的例子就是发信件。想像一下,如果信件上面的地址和邮编等信息是随便写的,那么目的地的邮递员收到信件时,一定会一头雾水,不知道到底要送到哪。同样的,如果收件人是“xx”,而你写的字是“yy”,对方肯定是看不懂的,所以双方的语言也要相通。

计算机之间要通信,也需要规矩,于是tcp/ip就出现了。tcp和ip分别是两个协议,而tcp/ip一般泛指一个协议族。这个协议族一共包含四层,分别是链路层,网络层,传输层以及应用层。其中tcp是传输层的协议,ip则是网络层的协议。

之所以分层,原因就像mvc框架的作用一样,是为了让专业的人做专业的事。还记得设计模式当中的单一职责原则吗,这里其实也正是这个原则的体现。每一层都只做自己应该做的事情,并且把它做好,这样有利于扩展和维护。

        实际传输的是byte流

四层简介

接下来,给大家简单介绍一下各个分层。

链路层:这是最接近硬件的一层,也是俗称的“底层”。它主要指我们俗称的网卡和网卡驱动程序,网卡是硬件,驱动程序则负责控制网卡。链路层主要负责与传输介质(比如光纤)配合完成实际的数据传输工作。你可以把它想像成高速公路上可恶的收费站,每一条公路的入口和出口都有一个收费站,而这些收费站之间是有协议的,比如按路程收费。这些收费站就像网络接口一样,而公路则像光纤一样。

网络层:这一层凌驾于链路层之上,主要负责数据报在网络中的活动,比如该往哪走。这一层就像高速公路上的路标,路标决定了你每到一个路口应该怎么走。网络层恰恰就是做这件事,比如ip协议,其实就是制定一套规则,让数据按照这套规则可以找到目的地。

传输层:这一层已经比较接近我等屌丝了,它负责应用程序之间端到端的通信,这么说可能比较难理解。这个比较像物流中的一个场景,比如现在LZ在北京,并且在上海买了一个女朋友要送过来,那么过程应该是这样的。首先由上海的快递小哥把LZ的女朋友拿走,然后交给向北京出发运送货物的司机,接下来LZ的女朋友到北京后会被交给物流公司的统一发货处,最终由快递小哥负责把女朋友送到LZ手中。请注意,这个过程中,货车司机并不关心货物到底送到哪,他只管送到北京,而最终快递小哥需要把货物送给具体的收货人。这和网络层与传输层的关系类似,网络层只管把数据报从一个计算机送给另外一个计算机,具体是哪个进程的数据,网络层可不管,这便是传输层负责的事了。这里的端到端通信,其实就是指端口到端口的通信。

应用层:这一层与我等屌丝已经有肌肤之亲,可谓是再熟悉不过了。比如你天天要用的http协议,它就是应用层的一个协议。http定义了各种协议头,什么请求协议头,响应协议头,乱七八糟的。这些协议头都是干嘛的呢,既然是应用层,当然是给应用程序用的了。比如响应协议头中有文本格式这个头,它就定义了浏览器应该如何展示web服务器发回来的响应信息,比如xml,html还是什么其它的玩意。

总结:ip层负责主机之间的通信,传输层负责进程之间的通信

参考文档:

与TCP/IP协议的初次见面(一)

TCP/IP中最高大上的链路层简介(二)

TCP/IP协议简介

标签:

原文地址:http://www.cnblogs.com/tangyanbo/p/4318740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!