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

前言

今下午刚才女朋友那边回来,唉,算是情人节去找她吧,穷屌丝住不起好酒店,住的打折酒店,只是女朋友来姨妈了,万幸啊,牙还疼得不行,这几天光照应她了,没空写博客了.回来快补上!

由于一直想看TCP/IP的知识,由于感觉网络知识方面的内容一直是我的软肋,事实上啥都是我的软肋,穷屌丝一枚,啥都不会.慢慢努力!

TCP/IP是什么

要讨论TCP/IP,就必须知道他到底是什么东西.这是開始逐渐深入一个东西的前提,TCP/IP也不例外.

那么TCP/IP究竟是什么?

用自己的话说,tcp/ip就是一套规则.两个计算机要相互通信,就得有规矩,一个很普遍的样例就是发信件.想象一下,假设信件上面的地址和右边等信息是随便写的,那么目的地的邮递员收到信件时,一定会一头雾水,不知道要发到哪里.相同的,假设收件人”折磨”,而你写的是”额迈锐肯”,对方肯定是看不懂的,所以两方的语言也要想通.

计算机之间要通信,也须要规则,于是tcp/ip就出现了,/tcp/ip各自是两个协议,而tcp/ip一般泛指一个协议族.这个协议族一共包括四层,各自是链路层,网络层,传输层以及应用层.当中tcp是传输层的协议,ip则是网络层的协议.

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

四层简单介绍

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

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

传输层:这一层已经已经比較接近我等屌丝了,他负责应用程序之间的端到端的通信,这么说可能比較难理解.这个比較像物流中的一个场景,比方如今我在淄博,在上海买了一个女朋友,过程应该是这种.首先上海的卖家把我的女朋友交给快递小哥(或者公司),然后由他们交给向淄博出发的货运司机,接下来宝贝到达淄博后会被放到统一的发货处,终于再由快递小哥送到本人手中,这么描写叙述没错吧,明确吧?注意,在这个过程中,货车司机并不关心货物究竟送到谁手里,他仅仅管送到淄博,淄博的快递小哥也不关系这些宝贝哪里来的,他仅仅关心这些货物将要详细派送到谁手里,对吧.这和网络层与传输层关系类似,网络层仅仅管把数据报从一个计算机送到另外一个计算机,详细是哪个集成的数据,网络层能够无论,也不用管,这便是传输层负责的事了.这里端到端通信,事实上就是指port到port的通信.

应用层:这一层与我等屌丝已有肌肤之亲了.比方你天天用的http协议,他就是应用层的一个协议.http定义了各种协议头,是什么请求协议头,响应协议头,乱七八糟的.这些协议头都是干嘛的呢,既然是应用层,当然是给应用程序用的了.比方响应协议头中有文本格式这个头,他就定义了浏览器应该怎样展示webserver发回来的响应信息,比方xml,html还是什么其它的玩意.

四层小结

经过上面的解说,相信大家应该都理解了的tcp/ip的含义了吧.

链路层就是负责运输女朋友的那个司机,它是负责运输工作的(也就是实际数据传输的工作).网络层就是快速公路上的路标,负责指引司机在快速路上应该怎样走(也就是在网络上的活动),并让司机正确到达目的地.传输层就是快递小哥,负责在详细的发货人和收货人之间(也就是发送port和接收port)的接受.应用层就是女朋友的使用说明,这就是我等屌丝和卖家之间(也就是应用程序之间)的事了.

小小的结一下

总后总结一下,咱是有女朋友的,尽管不美丽,可是人家对咱挺好,挺好,咱也好好对人家.

与TCP/IP协议的初次见面(一)的更多相关文章

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

    引言 最近LZ有了一点时间,于是便拿出TCP/IP的书本开始啃.开始的时候,啃起来枯燥无味,现在好不容易有点开窍,于是赶忙记录一下,生怕自己一转眼就给忘了.不过计算机系统原理就有点可惜了,最近一直没时 ...

  2. 门面模式的典型应用 Socket 和 Http(post,get)、TCP/IP 协议的关系总结

    门面模式的一个典型应用:Socket 套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息: 连接使用的 ...

  3. OSI七层模型详解 TCP/IP协议

      总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...

  4. TCP/IP协议(二)tcp/ip基础知识

    今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰... 然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题 ...

  5. TCP/IP协议(一)网络基础知识

    参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...

  6. TCP/IP协议三次握手与四次握手流程解析

    原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...

  7. 【原创】技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)

    1.前言 作为应用层开发人员,接触最多的网络协议通常都是传输层的TCP(与之同处一层的另一个重要协议是UDP协议),但对于IP协议,对于应用程序员来说更多的印象还是IP地址这个东西,再往深一点也就很难 ...

  8. HTTP协议—— 简单认识TCP/IP协议

    大学没读计算机专业,所以很多的专业知识都不知道.既然已经从事了IT这个行业,就势必要去了解下网络底层,虽然实际工作中这些东西用不到.高楼大厦,起于平川.不积跬步,无以至千里,不积小流,无以成江海.我现 ...

  9. Http TCP/IP 协议的关系

    转自:http://www.cnblogs.com/ymy124/archive/2012/03/18/2404958.html 项目要求Web服务是高安全级别,在选择.net remoting,we ...

随机推荐

  1. css实现上下左右布局

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. manacherO(n)求最长回文子串 hihocoder1032

    原文地址:https://segmentfault.com/a/1190000003914228   http://blog.csdn.net/synapse7/article/details/189 ...

  3. PostgreSQL Replication之第七章 理解Linux高可用(2)

    7.2 衡量可用性 可用性是提供商试图保证一定的可用性级别和客户可以期望的可用性或更多.在某些情况下(取决于服务合同) 收取罚款或减少申购费用是意外停机的原因. 可用性的质量使用百分数来衡量:例如,9 ...

  4. JS文字特效:彩色滚动变幻效果,只适合少量的文字。(过多对页面有影响)

    JS代码如下: 代码具体是在哪里的我不知道但是我的有道云上有.如有哪位朋友知道,还望联系下,添加出处. <div id="chakhsu"></div> & ...

  5. js数组去重问题

    1. 双层循环:外层循环,内层比较值: (1)利用splice直接在原数组进行操作 Array.prototype.delRepeat = function (){ var arr = this; v ...

  6. 洛谷1005 【NOIP2007】矩阵取数游戏

    问题描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

  7. C++ 输出缓冲区的管理

    在C++中,每个I/O对象管理一个缓冲区,用于存储程序读写的数据.本文将对输出缓冲区的管理进行简单的讲解. 举一个简单的例子: myOs << "Please enter a v ...

  8. ios svn repository

    xcode默认自带Git和svn,首先讲下xcode4.6.3下配置svn: 1.检測你的mac中是否安装了svn: (1) 打开终端,输入 svn --version 假设出现下图信息,则说明已经安 ...

  9. WITH common_table_expression (Transact-SQL)

    https://docs.microsoft.com/en-us/sql/t-sql/queries/with-common-table-expression-transact-sql Specifi ...

  10. smarty课程---smarty的处理过程是怎样的

    smarty课程---smarty的处理过程是怎样的 一.总结 一句话总结:编译文件里时间戳记录模板文件修改时间,如果模板被修改过就可以检测到,然后重新编译 1. smarty将php源文件,首先编译 ...