TCP/IP协议(零)TCP/IP参考模型

时间:2023-03-08 22:31:17
TCP/IP协议(零)TCP/IP参考模型

我们先浏览一下TCP/IP的参考模型,对网络模型有一个大致的了解,后续着重学习OSI参考模型。

TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。

1.结构

TCP/IP参考模型包括应用层、传输层、网络层和链路层,如下图。

TCP/IP协议(零)TCP/IP参考模型

图中,应用层由用户进程提供,应用程序负责解释通讯数据的含义;传输层及其以下的机制由内核提供,负责处理通讯的细节。

2.传输过程

当两台计算机通过TCP/IP协议通讯的过程如下图。

TCP/IP协议(零)TCP/IP参考模型

3.发送过程、封装与各层的作用

假设数据从左侧的应用层发出,需要依次经过传输层、网络层和链路层,最后发到网络上。数据经过各层之后,有什么变化呢?

a).从应用层发出的数据,一般称为用户数据,加上Appl首部之后,称为应用数据;

b).应用数据到传输层后,加上TCP首部称为TCP段;

c).TCP段到达网络层,加上IP首部,就应该称为IP数据报了;

d).IP数据报在链路层被加上以太网首部和尾部,称为以太网帧。

即数据每经过一层,每层协议都添加一个数据首部,这称为封装,如下图所示。

TCP/IP协议(零)TCP/IP参考模型

链路层之下是物理层,用电信号的传递方式,如双绞线、同轴电缆、光纤等都属于此范围。物理层的传输能力决定了最大传输速率、传输距离、抗干扰性等。集线器( Hub)是工作在物理层的网络设备。

链路层有以太网、令牌环网等标准,链路层负责网卡设备的驱动、帧同步、冲突检测、数据差错校验等工作。交换机是工作在链路层的网络设备,在不同的链路层网络之间转发数据帧,由于不同链路层的帧格式不同,交换机要将进来的数据包拆掉链路层首部重新封装之后再转发。

网络层的IP协议是构成Internet的基础。 Internet上的主机通过IP地址来标识, Internet上有大量路由器负责根据IP地址选择合适的路径转发数据包,数据包从Internet上的源主机到目的主机往往要经过十多个路由器。路由器是工作在第三层的网络设备,同时兼有交换机的功能,可以在不同的链路层接口之间转发数据包,因此路由器需要将进来的数据包拆掉网络层和链路层两层首部并重新封装。 IP协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠性可以在上层协议或应用程序中提供支持。
网络层负责点到点( point-to-point)的传输(这里的“点”指主机或路由器),而传输层负责端到端( end-to-end)的传输(这里的“端”指源主机和目的主机)。传输层可选择TCP或UDP协议。 TCP是一种面向连接的、可靠的协议。 UDP协议不面向连接,也不保证可靠性。使用UDP协议的应用程序需要自己完成丢包重发、消息排序等工作。

4.接收过程

数据被封装成帧后,经过传输介质发送到目的主机,再依次从链路层、网络层、传输层到达应用层,这时每经过一层,剥落掉相应协议层的首部,最后到应用层时,将应用层数据交给应用程序进行处理。这个过程如下图所示。

TCP/IP协议(零)TCP/IP参考模型

以太网驱动程序首先根据以太网首部中的“上层协议”字段确定该数据帧的有效载荷( payload,指除去协议首部之外实际传输的数据)是IP、 ARP还是RARP协议的数据报,然后交给相应的协议处理。假如是IP数据报, IP协议再根据IP首部中的“上层协议”字段确定该数据报的有效载荷是TCP、 UDP、 ICMP还是IGMP,然后交给相应的协议处理。假如是TCP段或UDP段, TCP或UDP协议再根据TCP首部或UDP首部的“端口号”字段确定应该将应用层数据交给哪个用户进程。 IP地址是标识网络中不同主机的地址,而端口号就是同一台主机上标识不同进程的地址, IP地址和端口号合起来标识网络中唯一的进程。

以上就是四层模型的简要介绍,后续文章围绕OSI模型展开。