Linux下套接字详解(补充)--OSI七层与TCP/IP五层网络架构详解

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介:

OSI七层模型


OSI是Open System Interconnect的缩写,意为开放式系统互联。

OSIOpen System Interconnect的缩写,意为开放式系统互联。

OSI七层参考模型的各个层次的划分遵循下列原则:

  • 根据不同层次的抽象分层

  • 每层应当有一个定义明确的功能

  • 每层功能的选择应该有助于制定网络协议的国际标准。

  • 各层边界的选择应尽量节省跨过接口的通信量。

  • 层数应足够多,以避免不同的功能混杂在同一层中,但也不能太多,否则体系结构会过于庞大

  • 同一层中的各网络节点都有相同的层次结构,具有同样的功能。

  • 同一节点内相邻层之间通过接口(可以是逻辑接口)进行通信。

  • 七层结构中的每一层使用下一层提供的服务,并且向其上层提供服务。

  • 不同节点的同等层按照协议实现对等层之间的通信。

根据以上标准,OSI参考模型分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

物理层涉及在信道上传输的原始比特流。

数据链路层的主要任务是加强物理层传输原始比特流的功能,使之对应的网络层显现为一条无错线路。发送包把输入数据封装在数据帧,按顺序传送出去并处理接收方回送的确认帧。

网络层关系到子网的运行控制,其中一个关键问题是确认从源端到目的端如何选择路由。

传输层的基本功能是从会话层接收数据而且把其分成较小的单元传递给网络层。

会话层允许不同机器上的用户建立会话关系。

表示层用来完成某些特定的功能。

应用层包含着大量人们普遍需要的协议。

OSI层 功能 设备 对应TCP/IP协议
应用层 用户接口、应用程序(文件传输,电子邮件,文件服务,虚拟终端) 网关 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
表示层 数据的表示、压缩和加密(数据格式化,代码转换,数据加密) 网关 没有协议
会话层 会话的建立和结束(解除或建立与别的接点的联系) 网关 没有协议
传输层 提供端对端的接口 网关 TCP,UDP
网络层 为数据包选择路由,寻址 路由器 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层 保证误差错的数据链路,传输有地址的帧以及错误检测功能 交换机、网桥、网卡 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层 传输比特流,以二进制数据形式在物理媒体上传输数据 集线器、中继器 ISO2110,IEEE802,IEEE802.2

七层模型的每一层都具有清晰的特征。基本来说,第七至第四层处理数据源和数据目的地之间的端到端 通信,而第三至第一层处理网络设备间的通信。

另外,OSI模型的七层也可以划分为两组:上层(层7、层6和层5)和下层(层4、层3、层2和层 1)。

OSI模型的上层处理应用程序问题,并且通常只应用在软件上。最高层,即应用层是与终端用户最接近的。

OSI模型的下层是处理数据 传输的。物理层和数据链路层应用在硬件和软件上。最底层,即物理层是与物理网络媒介(比如说,电线)最接近的,并且负责在媒介上发送

第7层-应用层


  • 定义了用于在网络中进行通信和数据传输的接口 - 用户程式;
  • 提供标准服务,比如虚拟终端、文件以及任务的传输和处 理;

应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

第6层-表示层


  • 掩盖不同系统间的数据格式的不同性;
  • 指定独立结构的数据传输格式;
  • 数据的编码和解码;加密和解密; 压缩和解压缩

这一层主要解决拥护信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。

第5层-会话层


  • 管理用户会话和对话;
  • 控制用户间逻辑连接的建立和挂断;
  • 报告上一层发生的错误

这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,而是统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。

第4层-处理信息的传输层


  • 管理网络中端到端的信息传送;
  • 通过错误纠正和流控制机制提供可靠且有序的数据包传送;
  • 提供面向无连 接的数据包的传送;

第4层的数据单元也称作数据包(packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段 (segments)而UDP协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的 数据包和其它在传输过程中可能发生的危险。第4层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所为透明的传输是指在通信过程中 传输层对上层屏蔽了通信传输系统的具体细节。传输层协议的代表包括:TCP、UDP、SPX等。

第3层-网络层


  • 定义网络设备间如何传输数据;
  • 根据唯一的网络设备地址路由数据包;
  • 提供流和拥塞控制以防止网络资源 的损耗

在 计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。如 果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地 址解析协议(ARP)。有关路由的一切事情都在这第3层处理。地址解析和路由是3层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包(packet)。网络层协议的代表包括:IP、IPX、RIP、OSPF等。

第2层-数据链路层(DataLinkLayer):


  • 定义操作通信连接的程序;
  • 封装数据包为数据帧;
  • 监测和纠正数据包传输错误

在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。在这一层,数据的单位称为帧(frame)。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。

第1层-物理层(PhysicalLayer)


  • 定义通过网络设备发送数据的物理方式;
  • 作为网络媒介和设备间的接口;
  • 定义光学、电气以及机械特性。

规定通信设备的机械的、电气的、功能的和过程的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械 特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率 距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE和DCE之间各个线路的功能;规程特性定义了利用信号线进行bit流传输的一组 操作规程,是指在物理连接的建立、维护、交换信息是,DTE和DCE双放在各电路上的动作系列。在这一层,数据的单位称为比特(bit)。属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。

TCP/IP


TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网间网协议)是目前世界上应用最为广泛的协议,它的流行与Internet的迅猛发展密切相关—TCP/IP最初是为互联网的原型ARPANET所设计的,目的是提供一整套方便实用、能应用于多种网络上的协议,事实证明TCP/IP做到了这一点,它使网络互联变得容易起来,并且使越来越多的网络加入其中,成为Internet的事实标准。

TCP/IP协议族包含了很多功能各异的子协议。为此我们也利用上文所述的分层的方式来剖析它的结构。TCP/IP层次模型共分为四层:应用层、传输层、网络层、数据链路层。

TCP/IP层 协议
数据链路层 ARP,RARP
网络层 IP,ICMP,IGMP
传输层 TCP ,UDP,UGP
应用层 Telnet,FTP,SMTP,SNMP

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。

应用层


应用层是所有用户所面向的应用程序的统称。ICP/IP协议族在这一层面有着很多协议来支持不同的应用,许多大家所熟悉的基于Internet的应用的实现就离不开这些协议。如我们进行万维网(WWW)访问用到了HTTP协议、文件传输用FTP协议、电子邮件发送用SMTP、域名的解析用DNS协议、远程登录用Telnet协议等等,都是属于TCP/IP应用层的;就用户而言,看到的是由一个个软件所构筑的大多为图形化的操作界面,而实际后台运行的便是上述协议。

传输层


这一层的的功能主要是提供应用程序间的通信,TCP/IP协议族
在这一层的协议有TCP和UDP。

网络层


TCP/IP协议族中非常关键的一层,主要定义了IP地址格式,从而能够使得不同应用类型的数据在Internet上通畅地传输,IP协议就是一个网络层协议。

网络接口层


这是TCP/IP软件的最低层,负责接收IP数据包并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。

TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。

TCP/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点。

区别与联系


除了层的数量之外,开放式系统互联(OSI)模型与TCP/IP协议有什么区别?

开放式系统互联模型是一个参考标准,解释协议相互之间应该如何相互作用。TCP/IP协议是美国国防部发明的,是让互联网成为了目前这个样子的标准之一。开放式系统互联模型中没有清楚地描绘TCP/IP协议,但是在解释TCP/IP协议时很容易想到开放式系统互联模型。两者的主要区别如下:

TCP/IP协议中的应用层处理开放式系统互联模型中的第五层、第六层和第七层的功能。

TCP/IP协议中的传输层并不能总是保证在传输层可靠地传输数据包,而开放式系统互联模型可以做到。TCP/IP协议还提供一项名为UDP(用户数据报协议)的选择。UDP不能保证可靠的数据包传输。

这里写图片描述


转载:http://blog.csdn.net/gatieme/article/details/50858920

目录
相关文章
|
10天前
|
安全 Linux 虚拟化
网络名称空间在Linux虚拟化技术中的位置
网络名称空间(Network Namespaces)是Linux内核特性之一,提供了隔离网络环境的能力,使得每个网络名称空间都拥有独立的网络设备、IP地址、路由表、端口号范围以及iptables规则等。这一特性在Linux虚拟化技术中占据了核心位置🌟,它不仅为构建轻量级虚拟化解决方案(如容器📦)提供了基础支持,也在传统的虚拟机技术中发挥作用,实现资源隔离和网络虚拟化。
网络名称空间在Linux虚拟化技术中的位置
|
10天前
|
网络协议 安全 Linux
Linux网络名称空间之独立网络资源管理
Linux网络名称空间是一种强大的虚拟化技术🛠️,它允许用户创建隔离的网络环境🌐,每个环境拥有独立的网络资源和配置。这项技术对于云计算☁️、容器化应用📦和网络安全🔒等领域至关重要。本文将详细介绍在Linux网络名称空间中可以拥有的独立网络资源,并指出应用开发人员在使用时应注意的重点。
|
10天前
|
安全 网络协议 Linux
Linux网络名称空间概述
Linux网络名称空间是操作系统级别的一种虚拟化技术🔄,它允许创建隔离的网络环境🌐,使得每个环境拥有自己独立的网络资源,如IP地址📍、路由表🗺️、防火墙规则🔥等。这种技术是Linux内核功能的一部分,为不同的用户空间进程提供了一种创建和使用独立网络协议栈的方式。本文旨在全方面、多维度解释Linux网络名称空间的概念、必要性和作用。
Linux网络名称空间概述
|
18天前
|
Linux
Linux中centos桌面消失网络图标
Linux中centos桌面消失网络图标
13 0
|
28天前
|
运维 网络协议 安全
【Shell 命令集合 网络通讯 】Linux 网络抓包工具 tcpdump命令 使用指南
【Shell 命令集合 网络通讯 】Linux 网络抓包工具 tcpdump命令 使用指南
44 0
|
28天前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
38 0
|
28天前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】Linux 设置和配置PPP pppsetup命令 使用教程
【Shell 命令集合 网络通讯 】Linux 设置和配置PPP pppsetup命令 使用教程
36 0
|
28天前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
【Shell 命令集合 网络通讯 】Linux 查看系统中的UUCP日志文件 uulog命令 使用指南
29 0
|
28天前
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 关闭PPP(Point-to-Point Protocol)连接 ppp-off命令 使用指南
【Shell 命令集合 网络通讯 】Linux 关闭PPP(Point-to-Point Protocol)连接 ppp-off命令 使用指南
40 1
|
28天前
|
域名解析 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
49 1