网络通信(一):TCP /IP 协议族

版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/u010647035/article/details/87892455

1、TCP/IP 含义

从字面意义上讲,有人可能会认为 TCP/IP 是指 TCP 和 IP 两种协议。实际生活当中有时也确实就是指这两种协议。然而在很多情况下,它只是利用 IP 进行通信时所必须用到的协议群的统称。具体来说,IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。他们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。

TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群。互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。

2、OSI 参考模型(7层)

在这里插入图片描述

OSI 参考模型将通信功能划分了七层,每一层都接受下一层提供的服务,并且负责为自己的上一层提供特定的服务。上下层之间交互时所遵循的约定叫做接口。同一层之间的交互所遵循的约定叫做协议。
在这里插入图片描述

2.1、OSI 参考模型中各层的作用

在这里插入图片描述

2.1.1、应用层

为应用程序提供服务并规定应用程序中通信的相关细节,包括文件传输、电子邮件、远程登录等协议。

2.1.2、表示层

将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。因此,它主要负责数据格式的转换。

2.1.3、会话层

负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理

2.1.4、传输层

起可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理

2.1.5、网络层

将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某一个地址。因此,这一层主要负责寻址和路由选择

2.1.6、数据链路层

负责物理层面上互连的、节点之间的通信传输。例如与1个以太网相连的2个节点之间的通信。

将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。

2.1.7、物理层

负责0、1比特流(0、1序列)与电压的高低、光的闪灭之间的互换

3、TCP/IP 协议族的分层管理(4层)

TCP/IP 协议族中重要的一点就是分层,按层次分为以下4层:应用层、传输层、网络层、数据链路层。

TCP/IP 协议的层次化是有好处的。比如,如果互联网只有一个协议统筹,某个地方需要改变设计时,就必须要把所有替换掉。而分层以后只需要把变动的层替换掉即可。

另外层次化以后,设计也变得简单了。处于应用层以上的应用只需要要考虑分配给自己的任务,不需要关心发送到什么地方、怎么传输、传输线路是什么、能否确保传输到达等。

3.1、TCP/IP 协议族各层的作用

在这里插入图片描述

3.1.1、应用层(会话层以上的分层)

应用层决定了向用户提供应用服务时通信的活动。

TCP/IP 协议族内预存了各类通用的应用服务,比如:FTP(文件传输协议)和 DNS(域名系统)、HTTP 协议

3.1.2、传输层

在这里插入图片描述

传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。

在传输层有两个性质不同的协议:TCP(Transmission Control Protocol 传输层控制协议)和 UDP(User Data Protocol 用户数据报协议)

TCP(Transmission Control Protocol 传输层控制协议)

TCP 是一种面向有连接的传输层协议。它可以保证两端通信主机之间的通信可达。TCP 能够正确处理在传输过程中丢包、传输顺序混乱等异常情况。此外,TCP 还能够有效利用带宽,缓解网络拥堵。

为了建立与断开连接,有时它需要至少7次的发包收包,导致网络流量的浪费。

为了提高网络的利用率,TCP 协议中定义了各种各样复杂的规范,因此不利于音频、视频等流量既定等的场合使用。

UDP(User Data Protocol 用户数据报协议)

UDP 区别于 TCP,它是一种面向无连接的传输层协议。UDP 不会关注对方是否真的收到了传输过去的数据,如果需要检查对端是否收到分组数据包,或者对端是否连接到网络,则需要在应用程序中实现。

UDP 常用于分组数据较少或多播、广播通信以及视频通信等多媒体领域。

3.1.3、 网络层(互联网层)

网络层使用IP协议,它相当于OSI模型中的第三层网络层。IP协议基于IP地址转发分包数据。

在这里插入图片描述

网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的传输路线到达对方计算机,并把数据包传送给对方。

与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。

IP

IP 是跨越网络传送数据包,使整个互联网都能收到数据的协议。IP 协议使数据能够发送到网络中的另一端,这期间它使用IP地址作为主机的标识。

IP 还隐含了数据链路层的功能。通过IP,相互通信的主机之间不论经过怎样的底层数据链路都能实现通信。

IP 协议也是分组交换的一种协议,但是它不具有重发机制。即使分组数据包未能到达对端主机也不会重发。因此,属于非可靠传输协议。

ICMP

IP 数据包在发送途中一旦发生异常导致无法到达目标地址时,需要给发送端发送一个异常通知。ICMP 就是为这一功能而制定的,它有时也被用来诊断网络健康状况。

ARP

从分组数据包的IP地址中解析出物理地址(MAC地址)的一种协议

3.1.4、数据链路层(链路层或网络接口层)

用来处理连接网络硬件的部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface Card 网络适配器即网卡),及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。

3.2、TCP/IP 通信传输过程

通过 TCP/IP 协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端从下往应用层走。
在这里插入图片描述

我们用HTTP 请求举例说明:

(1)发送端在应用层使用HTTP协议发出一个请求
(2)传输层(TCP协议)从应用层收到请求的报文进行分割,并在各个报文上打上标记序号及端口号后转发给网络层
(3)在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层
(4)接收端的服务器在链路层收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能真正接收到有客户端发送过来的HTTP请求。

在这里插入图片描述

参考资料:
《图解tcp/ip》《图解HTTP》

猜你喜欢

转载自blog.csdn.net/u010647035/article/details/87892455