TCP/IP 协议

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

TCP/IP协议族

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

TCP/IP 四层模型

OSI七层模型是理论上的分层方式,而四层模型是实践过程中的分层模型。
image.png

职责划分

网络访问层

网络访问层主要是管理物理网络准备所需要的数据,包括
1、与计算机网络适配器连接。
2、根据合适的方式调整数据传输(不同的传输介质和网络格式不同)
3、把数据转化为电子流或脉冲的形式在传输介质上传输。
4、对发送的数据添加错误检查信息、对接收的数据进行数据检验。

网际层

网际层主要是解决数据由一个计算机的IP如何路由到目标计算机的过程规范,我们的计算机消息发送出去后,是经过了哪些处理才能正确的找到目标计算机,其中包含了IP、ARP、RARP、ICMP等协议。
MAC地址
我们的消息如果要在网络中找到对应的目标计算机,那么我们的计算机一定要有一个唯一的地址标识才行,而能区分我们计算机唯一的标识就是我们的网络适配器地址,我们的网络适配器地址是由厂商生产时候就规定了一个复杂的英文串组成。
IP地址
由于MAC地址是一段复杂的字串组成不利于我们计算机进行逻辑运算,而我们的消息要在网络中快速路由到目标计算机,那么就一定需要有一套逻辑运算的规则,所以就有了IP地址,IP是一套有规则的数字组合,通过IP地址可以快速定位到我们的目标计算机区域,和MAC 组合就能快速找到网络中具体的一台计算机了。
域名
因为IP地址过长不方便进行记忆,所以为了让用户更方便记忆所以衍生了DNS的服务,DNS完成了把IP地址转为简单容易记忆的域名地址。

传输层

传输层主要提供以下几个功能
1、提供应用程序接口,为网络应用程序提供网络访问的途径;
2、提供可以从多个应用层序接收消息的功能(多路复用),同时也提供可以把消息分发给应用程序的功能(多路分解)。
3、对数据进行错误检测、流量控制。

TCP

TCP是一个面向连接的协议主要包括以下几个特性
1、TCP面向连接,需要进行三次握手建立连接,四次挥手断开连接。
2、面向流的处理,可以一个个字节的方式接收数据,然后把这些数据组成数据段,发给网际层。
3、对数据发送进行流量控制(滑动窗口协议),避免发送和接收方因为缓存写满而造成的数据丢失问题。
4、对数据进行校验、分段的数据有重新排序功能,对错误和丢失的数据有重发机制。

UDP

1、UDP不面向连接。
2、只有有限的错误检验机制
3、不进行流量控制
比较TCP和UDP
因为TCP要进行额外的握手、挥手、数据检验、排序机制,所以TCP的性能要比UDP要慢,但是相较UDP,TCP已经做了比较完善的数据错误验证机制所以这样会省去应用层需要做的大量数据验证工作。
如果应用层对数据的校验不那么重视的话,看可以使用性能上更优的UDP,当然也可以使用UDP传输数据,数据校验的工作放到应用层来做也行,这就会加重开发的任务上。

应用层

TCP/IP的应用层对应于OSI的应用层、会话层、网络层,它们分别功能如下
1、应用层:为用户的应用提供服务并支持网络访问。
2、会话层:负责管理网络中计算机之间的通信,提供传输层不具备的连接相关功能。
3、表示层:负责转化数据格式,并处理数据加密和数据压缩。