TCP/IP 协议

TCP/IP协议定义了计算进行网路通信的过程一套处理标准,该标准定义了计算机在网路中如何发送数据、数据格式如何定义、发出消息后在网路中如何定址找到目标计算机,最后目标计算机又如何检验收到消息的正确性、对数据拆解最后得到消息内容。

有了这些标准后我们的生产提供TCP/IP服务的软体商家就有了一套统一的规范,大家只要遵循这个规范去实现自己的软体功能。

TCP/IP协议族

因为实现TPC/IP协议功能包括数据的发送、与硬体的交互、消息路由规则、格式定义、错误验证,每个功能有对应的协议规范,所以我们把这些协议统称为TCP/IP协议族。

TCP/IP 四层模型 和OSI七层模型

之前不太懂为什么有OSI七层模型、四层模型、五层模型,他们的区分标准是,OSI七层模型是理论上的分层方式,而四层模型是实践过程中的分层模型。

OSI七层模型ISO(国际标准化组织)提出的一套理论性的网路标准化协议,可以把它看成一本教科书,它在指定之前是没有经过实践的,而为什么我们实践的过程中又没有遵循OSI的标准来分层呢,是因为我们在实践的过程中发现有些功能不必要分得那么细,而TCP四层模型就是我们实践过程中发现比较合理的分层,虽然我们实际过程中都没有按OSI分为七层,但是OSI对我们实践过程分层有著指导性的意义。

TCP/IP四层模型的每一层所划分的职责

网路访问层

网路访问层主要是管理物理网路准备所需要的数据,包括

1、与计算机网路适配器连接。

2、根据合适的方式调整数据传输(不同的传输介质和网路格式不同)

3、把数据转化为电子流或脉冲的形式在传输介质上传输。

4、对发送的数据添加错误检查信息、对接收的数据进行数据检验。

网际层

网际层主要是解决数据由一个计算机的IP如何路由到目标计算机的过程规范,我们的计算机消息发送出去后,是经过了哪些处理才能正确的找到目标计算机,其中包含了IP、ARP、RARP、DNS、ICMP等协议。

MAC地址

我们的消息如果要在网路中找到对应的目标计算机,那么我们的计算机一定要有一个唯一的地址标识才行,而能区分我们计算机唯一的标识就是我们的网路适配器地址,我们的网路适配器地址是由厂商生产时候就规定了一个复杂的英文串组成。

IP地址

由于MAC地址是一段复杂的字串组成不利于我们计算机进行逻辑运算,而我们的消息要在网路中快速路由到目标计算机,那么就一定需要有一套逻辑运算的规则,,所以就有了ARP协议,ARP协议规定了如何把MAC地址转换为可以用于逻辑运算的数字IP地址。

域名

因为IP地址过长不方便进行记忆,所以为了让用户更方便记忆所以衍生了DNS的服务,DNS完成了把IP地址转为简单容易记忆的域名地址。

传输层

传输层主要提供以下几个功能

1、提供应用程序介面,为网路应用程序提供网路访问的途径;

2、提供可以从多个应用层序接收消息的功能(多路复用),同时也提供可以把消息分发给应用程序的功能(多路分解)。

3、对数据进行错误检测、流量控制。

TCP

TCP是一个面向连接的协议主要包括以下几个特性

1、TCP面向连接,需要进行三次握手建立连接,四次挥手断开连接。

2、面向流的处理,可以一个个位元组的方式接收数据,然后把这些数据组成数据段,发给网际层。

3、对数据发送进行流量控制(滑动窗口协议),避免发送和接收方因为缓存写满而造成的数据丢失问题。

3、对数据进行校验、分段的数据有重新排序功能,对错误和丢失的数据有重发机制。

UDP

1、UDP不面向连接。

2、只有有限的错误检验机制

3、不进行流量控制

比较TCP和UDP

因为TCP要进行额外的握手、挥手、数据检验、排序机制,所以TCP的性能要比UDP要慢,但是相较UDP,TCP已经做了比较完善的数据错误验证机制所以这样会省去应用层需要做的大量数据验证工作。

如果应用层对数据的校验不那么重视的话,看可以使用性能上更优的UDP,当然也可以使用UDP传输数据,数据校验的工作放到应用层来做也行,这就会加重开发的任务上。

应用层

TCP/IP的应用层对应于OSI的应用层、会话层、网路层,它们分别功能如下

1、应用层:为用户的应用提供服务并支持网路访问。

2、会话层:负责管理网路中计算之间的通信,提供传输层不具备的连接相关功能。

3、表示层:负责转化数据格式,并处理数据加密和数据压缩。


推荐阅读:
相关文章