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

发布时间:2014-09-21 01:56:00作者:左潇龙阅读(1605 )评论(14)

    引言

     

      最近LZ有了一点时间,于是便拿出TCP/IP的书本开始啃。开始的时候,啃起来枯燥无味,现在好不容易有点开窍,于是赶忙记录一下,生怕自己一转眼就给忘了。不过计算机系统原理就有点可惜了,最近一直没时间看,选来选去,还是觉得TCP更加重要一些,或者说现阶段更加重要一些。

      好了,废话不多说,我们开始记录吧。

     

    TCP/IP是什么

     

      要讨论tcp/ip,就必须知道它究竟是什么东西。这是开始逐渐深入一个东西的前提,tcp/ip也不例外。

      LZ用自己的话回答一下这个问题,tcp/ip是什么?

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

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

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

      

    四层简介

     

      接下来,LZ就自己的理解,给大家简单介绍一下各个分层。

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

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

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

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

      

    四层小结

     

      这么一看,其实tcp/ip协议族挺好理解的,接下来LZ还用上面物流的例子来说明。

      链路层就是负责运输LZ女朋友的那个司机,他是实际负责运输工作的(也就是实际传输数据的工作)。网络层就是高速路上的路标,负责指引司机在高速上该如何走(也就是在网络上的活动),并让司机正确到达目的地。传输层则是快递小哥,负责在具体的发货人和收获人之间(也就是发送端口和接收端口)的接收。应用层就像是LZ女朋友的使用说明,这就是LZ和卖家之间(也就是应用程序之间)的事了。

      

    文章花絮

     

      本篇就到此为止吧,毕竟内容不在多,有精就行。只是为了更好的说明本文的内容,LZ牺牲了自己的形象,只是希望媳妇不要看到这篇文章。LZ发誓,本文中的所有例子都纯属虚构。

      待续待续吧!


    版权声明:本文版权归作者(左潇龙)所有,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    12
    精彩
    0
    感动
    0
    搞笑
    0
    开心
    0
    愤怒
    0
    无聊
    1
    灌水
    0
    惊讶
#1楼     时间:2014-09-21 08:59:00      来源:vajoy
写的非常形象生动呢,期待更多文章
#2楼     时间:2014-09-21 09:05:00      来源:老牛啊
非常形象生动,赞!
#3楼     时间:2014-09-21 10:16:00      来源:永志
LZ拉下了物理层
#4楼     时间:2014-09-21 14:24:00      来源:左潇龙
@ 老牛啊
@vajoy
感谢两位支持!
#5楼     时间:2014-09-21 14:25:00      来源:左潇龙
@ 永志
没有这一层的哦,链路层已经算是物理层了。
#6楼     时间:2014-09-22 09:38:00      来源:~CityHunter~
@ 永志
TCP/IP协议簇应该是没有物理层这一说。它只是个4层协议簇,是整个网络协议簇的一个子集。希望我没理解错。
#7楼     时间:2014-09-22 09:40:00      来源:BiceG
楼主说的是TCP/IP的分层结构,总共分为四层,所以物理层包含在了链路层这一部分。另外还有一种分层结构是OSI的,一共七层。
#8楼     时间:2014-09-22 10:10:00      来源:qiushizhu
比较形象生动
#9楼     时间:2014-09-29 09:41:00      来源:Wackysoft
@ BiceG
物理层传输的是比特流,而链路层传输的是帧,这个还是有点区别的。OSI的七层貌似已经淘汰了,把会话层这样的已经放入了应用层。
#10楼     时间:2014-09-29 21:56:00      来源:brilliant_idea
@ Wackysoft
OSI 7层模型是个理型模型,也就是说它是一个最先提出的概念模型,一共7层,而这一概念并没有投入使用。

准确的说osi不是被淘汰,它是一种最先提出的思想,概念,而后在它的概念基础之上产生了tcp/ip这一开放式的协议标准,这个标准为4层,把osi中的上三层(会话,表示,应用)全部归为应用层。
#11楼     时间:2014-09-30 14:02:00      来源:Wackysoft
@ brilliant_idea
受教,从第一次接触到现在一直被灌输的是5层标准
#12楼     时间:2014-12-24 16:43:00      来源:猴子子
机制的勃主
#13楼     时间:2015-07-13 09:46:36      来源:深圳市网友

你的女朋友是买的

#14楼     时间:2016-07-28 14:04:09      来源:杭州市网友

楼主的文章总是让人豁然开朗

发表评论

站内搜索

最新评论