tcp、ip协议概述

来源:互联网 发布:河北省中标数据网 编辑:程序博客网 时间:2024/05/17 05:08
计算机网络分层:
osi七层模型(由下到上):物理层,数据链路层,网络层,传输层,会话层,表示层,应用层;
tcp/ip四层模型(由下到上):链路层、网络层、传输层、应用层;

为什么会有两种不同的模型呢?
按照一般的说法,osi七层模型是直接提出理论的,而tcp/ip模型是实际应用形成的规范,可以说一个是学院派,一个是实践派。anyway,实际互联网中应用中基本都是tcp/ip模型了。

为什么要分层呢?
存在即合理,每一层都有各自的功能。比如说传输层的tcp协议,保证了端到端的可靠传输、流量控制,如果不要传输层,这些事情就都需要应用层来实现,那么每个应用层协议,例如ftp、http、smtp、dns,都需要自己去实现这些功能。面向对象的思想告诉我们,如果各个系统都有相同的功能,就该把这个功能抽象出来,方便扩展,所以就有了分层结构,各层都实现一些通用功能,交给上层去调用。

各层之间如何协作呢?
上层调用下层接口,把数据传给下层,下层收到数据以后会在外面包装自己这一层的信息。

tcp/ip各层有哪些作用呢?
(1)链路层
类比osi模型里的物理层和数据链路层,以太网协议就在这层。网络数据最终要通过网线,光纤,或者wifi把电信号传到我们的终端设备上,链路层就是做这个的,它最主要的作用就是找到同一子网内的实际终端(根据mac地址),所以在路由器管理平台上,我们能看到一个ip->mac地址的映射。tcp/ip协议没有对这层给出详细的规范(?),只要求其给网络层提供接口,用于传输网络层的ip分组数据。
(2)网络层
把数据从一个节点传输到另一个节点,是不可靠、尽力交付的,主要功能是路由寻址、拥塞控制。链路层解决的是同一子网内的寻址,而网络层解决的是不同子网间的寻址,即路由选择。ip协议在这一层。这一层的ip报文是网络数据包的最小单位。
(3)传输层
传输层负责端到端的数据传输,主要功能是差错控制、流量控制。
端到端与节点到节点的区别:网络层传输数据可能会经历很多个节点,经历很多次路由转发(例如从一个路由器到下一个路由器),传输层则不管这些,而是认为两台终端之间建立了一个透明的直接连接。大名鼎鼎的tcp、udp就是在这一层。(关于tcp、udp的原理及实现再单独介绍)
(4)应用层
这一层是跟开发者最接近的,例如web开发的http协议、传输文件的ftp协议、发邮件的smtp协议,根据不同的应用场景选择对应的协议。