Linux网络编程(二)—— OSI七层与TCP/IP四层网络架构详解

OSI七层模型


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

OSI参考模型分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
物理层: 涉及在信道上传输的原始比特流。

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

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

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

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

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

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

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等。

由于OSI模型过于复杂,将它简化为了较为简洁的TCP/IP四层协议

Linux网络编程(二)—— OSI七层与TCP/IP四层网络架构详解_第1张图片

TCP/IP


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

TCP/IP是一个复杂的协议族,是由一组专业化协议组成的。这些协议包括IP、TCP、UDP、ARP、ICM以及其它的一些被称为子协议的协议。

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

应用层


应用层是所有用户所面向的应用程序的统称。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/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点

TCP/IP特点


TCP/IP模型边界特点

  • 地址边界特性: 它将IP逻辑地址和底层网络的硬件地址分开;
  • **操作系统边特点:**它将网络应用与协议软件分开。
  • Linux网络编程(二)—— OSI七层与TCP/IP四层网络架构详解_第2张图片
    TCP/IP分层模型边界特性是指在模型中存在一个地址上的边界,它将底层网络的物理地址与网络层的IP地址分开。该边界出现在网络层和网络接口层之间。
    网络层和骑上的各层均使用IP地址,网络接口层则使用物理地址,即底层网络设备的硬件地址。TCP/IP提供在两种诋地址之间进行映射的功能。
    划分地址边界的目的:为了屏蔽底层物理网络的地址细节,以便使网络软件在地址上易于实现和理解。
    影响操作系统边界划分的最重要因素
    协议的效率问题
    ,在操作系统内部实现的协议软件,其数据传输的效率明显要高。

TCP/IP的可靠性特性

在TCP/IP网络中,IP采用无连接的数据包机制(即只管将数据包尽力传送到目的主机,无论传输的正确与否,不作验证,不做验证,不发确认,也不保证数据包的顺序)。
TCP/IP的可靠性体现在传输层协议之一的TCP。
TCP提供面向连接的服务,因为传输层是端到端的,所以TCP/IP的可靠性被称为端到端可靠性
综上可知,TCP/IP的特点就是将不同的底层物理网络、拓扑结构隐藏起来,向用户和应用程序提供通用、统一的网络服务。这样,从用户的角度看,整个TCP/IP网络就是一个统一的整体,它独立于具体的各种物理网络技术,能够向用户提供一个通用的网络服务。
TCP/IP网络完全撇开了底层物理网络的特性,是一个高度抽象的概念,正式因为这个原因,其为TCP/IP网络赋予了巨大的灵活性和通用性。

你可能感兴趣的:(网络通信,linux网络编程)