与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)的接受.应用层就是女朋友的使用说明,这就是我等屌丝和卖家之间(也就是应用程序之间)的事了.
小小的结一下
总后总结一下,咱是有女朋友的,尽管不美丽,可是人家对咱挺好,挺好,咱也好好对人家.
与TCP/IP协议的初次见面(一)的更多相关文章
- 与TCP/IP协议的初次见面(一)
引言 最近LZ有了一点时间,于是便拿出TCP/IP的书本开始啃.开始的时候,啃起来枯燥无味,现在好不容易有点开窍,于是赶忙记录一下,生怕自己一转眼就给忘了.不过计算机系统原理就有点可惜了,最近一直没时 ...
- 门面模式的典型应用 Socket 和 Http(post,get)、TCP/IP 协议的关系总结
门面模式的一个典型应用:Socket 套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息: 连接使用的 ...
- OSI七层模型详解 TCP/IP协议
总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...
- TCP/IP协议(二)tcp/ip基础知识
今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰... 然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题 ...
- TCP/IP协议(一)网络基础知识
参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...
- TCP/IP协议三次握手与四次握手流程解析
原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...
- 【原创】技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)
1.前言 作为应用层开发人员,接触最多的网络协议通常都是传输层的TCP(与之同处一层的另一个重要协议是UDP协议),但对于IP协议,对于应用程序员来说更多的印象还是IP地址这个东西,再往深一点也就很难 ...
- HTTP协议—— 简单认识TCP/IP协议
大学没读计算机专业,所以很多的专业知识都不知道.既然已经从事了IT这个行业,就势必要去了解下网络底层,虽然实际工作中这些东西用不到.高楼大厦,起于平川.不积跬步,无以至千里,不积小流,无以成江海.我现 ...
- Http TCP/IP 协议的关系
转自:http://www.cnblogs.com/ymy124/archive/2012/03/18/2404958.html 项目要求Web服务是高安全级别,在选择.net remoting,we ...
随机推荐
- thinkphp5项目--个人博客(一)
thinkphp5项目--个人博客(一) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- DNS SOA NS区别
转自 http://bbs.51cto.com/thread-908637-1.html NS服务器里有两个比较重要的记录.一个叫SOA记录(起始授权机构) 一个叫NS(Name Server)记录( ...
- POJ 2528 线段树
坑: 这道题的坐标轴跟普通的坐标轴是不一样的-- 此题的坐标轴 标号是在中间的-- 线段树建树的时候就不用[l,mid][mid,r]了(这样是错的) 直接[l,mid][mid+1,r]就OK了 D ...
- spring-data-redis 使用过程中需要注意的地方
1.序列化问题 <!-- SDR默认采用的序列化策略有两种,一种是String的序列化策略,一种是JDK的序列化策略. StringRedisTemplate默认采用的是String的序列化策略 ...
- windows下python3 使用cx_Oracle,xlrd插件进行excel数据清洗录入
我们在做数据分析,清洗的过程中,很多时候会面对各种各样的数据源,要针对不同的数据源进行清洗,入库的工作.当然python这个语言,我比较喜欢,开发效率高,基本上怎么写都能运行,而且安装配置简单,基本上 ...
- 继承—Music
public class Instrument { public void play(){ System.out.println("弹奏乐器"); } public class W ...
- java 类和对象10
创建一个Point类,有成员变量x,y,方法getX(),setX(),还有一个构造方法初始化x和y.创建类主类A来测试它. public class Print { private int x; p ...
- IIS 7.5 配置
安装 MVC 3 对应版本. 或者对应的版本. 登陆时候报错 检查下面几项是否配置正确 检查ASP.net 是否开启. 检查网站的应用池是否配置正确 在处理程序映射当中检查这几项是否配置正确 如果都配 ...
- SpringMVC学习一:SpringMVC的配置
SpringMVC的配置主要分为两部分: 1.xml文件配置 2.注解的配置 SpringMVC配置的步骤如下: 1.在将SpringMVC的jar包导入到web项目中后,先配置web.xml 文件. ...
- Spring项目的配置文件们(web.xml context servlet springmvc)
我们的spring项目目前用到的配置文件包括1--web.xml文件,这是java的web项目的配置文件.我理解它是servlet的配置文件,也就是说,与spring无关.即使你开发的是一个纯粹jsp ...