zoukankan      html  css  js  c++  java
  • 与TCP/IP协议的初次见面(一)

    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)的接受.应用层就是女朋友的使用说明,这就是我等屌丝和卖家之间(也就是应用程序之间)的事了.

    小小的结一下

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

  • 相关阅读:
    面试中要注意的 3 个 JavaScript 问题
    angularJS遇到的坑
    为什么你的前端工作经验不值钱?
    ceph pg常见的几种状态
    k8s网络之flannel
    k8s流量访问之service
    lvs+keepalived高可用
    iptables【学习笔记】
    Linux和OpenStack中的网络知识【学习笔记】
    服务器BIOS设置
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7007395.html
Copyright © 2011-2022 走看看