TCPIP协议篇:tcp/ip概述

马谦马谦马谦 2017年10月1日20:25:21 发表评论
文章最后编辑于:2017-11-18 15:05:50

一、什么是tcp/ip

tcp/ip 是一个网络通讯协议,为不同的的主机和操作系统之间提供一种统一的通信标准。起源于上世纪60年代末美国政府的一个分组交换网络项目,到90年代就成为了计算机之间最常用的组网形式。

二、tcp/ip的工作模型

tcp/ip 一共分为四层,由低到高分别是:链路层 网络层 传输层 应用层

2.1 链路层

链路层位于网络模型的最底层,主要功能是为上层数据提供数据传输的通路,链路层存在于计算机和计算机之间,规定了许多的物理上的规范。

譬如计算机之间的网络接口配置规范、数据链路的机械特性和电气特性等规范等,使得不同的计算机接口以及不同的传输媒介之间都能相互通信。

2.2 网络层

数据链路层提供了一条或者多条稳定的数据传输通路之后,现在就需要网络层来工作了。网络层主要用于计算机之间的网络寻址,为发送的数据包寻找去目的主机的路线,包含了最基本的ip 协议。

2.3 传输层

传输层用来传送和分发数据,把不同应用之间的数据根据不同协议整理成相应的数据包,交给网络层下发下去,然后接受方在收到数据之后解析数据包到相应的应用。

2.4 应用层

应用层主要是用户使用的上层应用,例如smtp http ftp 等等。

2.5 简单的比喻

一个最简单的比喻,把四层模型当作  车站 和之间的关系。

在四层关系中,人属于应用层,因为每个人都要坐车去自己要去的地方,并且是去做不同的事情;

而车站属于传输层,根据人要去的地方或去的方式不同从而选择不同的出行方式,譬如可以根据目的地的远近选择火车或是汽车;

车属于网络层,根据人不同的目的地选择不同的路线,可能路线并不只一条,根据不同的需要选择不同的路线;

最后的道路属于传输层,为不同的车之间提供不同的通路,例如火车走的火车道,汽车走的汽车道,虽然方式不同,但是都要到达目的地。

二、工作流程

以最常用的http 协议为例,它在客户端和服务端之间的工作流程为:

//todo 图形

三、IP地址和端口号

可能大部分人都知道,ip地址用来标志网络中的每一台主机,通过ip就能定位到主机的位置,相当于生活中的门牌号一样。

那么端口是什么呢?相信大部分无基础的人都不知道计算机还有端口这个概念,甚至可能还包含很多有基础的人,曾经的我也是这其中的一员。

记得最清楚的就是当初学这门课程的时候,老师一来就给我们抛了这个问题:一台电脑中有多个程序,当我们从网络中获取到数据,怎么知道哪些数据包是属于哪个应用的?当时也是一脸懵逼,被老师完全问倒,即便是后来无数次的讲到,心里也依然没有这个概念,后来慢慢做项目才开始明白这个东西,可能吧,学生时代就是这么不走心。

其实端口号也很简单,就像是ip一样,ip标志网络中的每一台主机,端口则是标志一台主机中不同的程序,让主机知道什么数据包是属于什么程序的,就这么简单。因为一台计算机肯定是同时运行多个程序的,如果仅仅靠ip来判断的话,我们就不能知道数据包到底是属于哪个程序。

四、总结

第一篇就写到这里吧,没有很详细,也只是进行了一个大概,以后慢慢再加吧。

突然发现了写博客的好处,就是会让自己对一个东西进行深入深入再深入的研究。

很多时候一个东西只是懂了大概,仔细细分并且描述出来并不是那么简单。

而这个过程就需要我们更加仔细地去琢磨,去推敲。达到对一个知识点的反复捶炼。

理解自然而然就越深!

同时也发现了写博客的问题所在:针对性不强,内容空泛,语言表述也不好。

希望能慢慢改正,毕竟对于一个程序员来说,咬文嚼字是一个很艰难的过程。

 

 

本文共执行42次查询,耗时0.266秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: