程序地带

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


一、osi七层模型
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解.
二、TCP/IP四层模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议族,TCP/IP 协议族是一个四层协议模型,自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的功能,且通过若干协议来实现这些功能,上层协议使用下层协议提供的服务


如图: 在这里插入图片描述


数据包在每层有不同的格式,从上到下依次叫段,数据报,数据包,帧;数据从应用层通过协议栈向下传递,每经过一层加上对应层协议的报头,最后封装成帧发送到传输介质上,到达路由器或者目的主机剥掉头部,交付给上层需要者。这一过程称为封装,解包和分用。


封装的过程:


在这里插入图片描述


数据链路层 数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网等)上的传输。


数据链路层两个常用的协议是ARP协议(地址解析协议)和RARP协议(逆地址解析协议)。它们实现了IP地址和机器物理地址之间的相互转换。


网络层使用IP地址寻址一台机器,而数据链路层使用物理地址寻址一台机器,因此网络层必须先将目标机器的IP地址转化成其物理地址(用 ARP),才能使用数据链路层提供的服务,这就是ARP协议的用途。


网络层 网络层实现数据包的选路(路由)和转发。


网络层最核心的协议是IP协议(因特网协议)。IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳(next hop)路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数据包最终到达目标主机,或者由于发送失败而被丢弃。可见,IP协议使用逐跳的方式确定通信路径。


传输层 传输层为两台主机上的应用程序提供端到端(end to end)的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。


数据链路层封装了物理网络的电气细节;网络层封装了网络连接的细节;传输层则为应用程序封装了一条端到端的逻辑通信道路。


传输层协议:TCP协议、UDP协议。


TCP协议:为应用层提供可靠的、面向连接的和基于流(stream)的服务。TCP协议使用超时重传、数据确认等方式来确保数据包被正确地发送至目的端,因此TCP协议是可靠的。使用TCP协议通信的双方必须先建立TCP连接,并在内核中为该连接维持一些必要的数据结构,比如连接的状态、读写缓冲区等。当通信结束时,双方必须关闭连接以释放这些内核数据。TCP服务是基于流的。基于流的数据没有边界限制,它源源不断地从通信的一端流入另一端。发送端可以逐个字节地向数据流中写入数据,接收端也可以逐个字节地将它们读出。

UDP协议:为应用层提供不可靠、无连接和基于数据报的服务。“不可靠”意味着UDP协议无法保证数据从发送端正确地传送到目的端。如果数据在中途丢失,或者目的端通过数据校验发现数据错误而将其丢弃,而UDP协议只是单地通知应用程序发送失败。UDP协议是无连接的,即通信双方不保持一个长久的联系。


应用层


应用层负责处理应用程序的逻辑。


ping 是应用程序,而不是协议,是调试网络环境的必备工具(是否联网)。

telnet 协议是一种远程登录协议,它使我们能在本地完成远程任务。

DNS 协议提供域名到IP地址的转换。


四层协议背后的思想: 上层屏蔽下层实现细节,只使用下层提供的服务。每一层专注于其功能,各层之间的关系依赖不大


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_49786076/article/details/112689369

随机推荐

python创建列表_Python中的数据结构

概述在深入研究数据科学和模型构建之前,Python中的数据结构是一个需要学习的关键概念了解Python提供的不同数据结构,包括列表、元组等介绍数据结构听起来是一个非常直截了...

weixin_39672572 阅读(110)

运维-k8s中遇到的问题

1.NoRouteToHost在使用nfs进行数据挂载的时候,出现上述问题,是因为防火墙的问题,所以只需要关闭防火墙即可centos7:#查看防...

itman_cx 阅读(249)