一、什么是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来判断的话,我们就不能知道数据包到底是属于哪个程序。

最后修改:2019 年 05 月 04 日
如果觉得我的文章对你有用,请随意赞赏