嵌入式软件开发技术:第6章 嵌入式Linux网络编程

举报
资源描述
1 6.1 TCP/IP概述概述6.2 网络基础编程网络基础编程6.3 网络高级编程网络高级编程第6章 嵌入式Linux网络编程2 第6章 嵌入式Linux网络编程 本章将介绍嵌入式本章将介绍嵌入式Linux网络编程的基础知识。由于网络编程的基础知识。由于网络在嵌入式应用系统中的应用非常广泛,基本上常见网络在嵌入式应用系统中的应用非常广泛,基本上常见的应用都会与网络有关,因此,掌握这一部分的内容是的应用都会与网络有关,因此,掌握这一部分的内容是非常重要的。非常重要的。经过本章的学习,读者将会掌握经过本章的学习,读者将会掌握 TCP/IP协协议的基础知识、嵌入式议的基础知识、嵌入式 Linux网络编程方法、能够独立编网络编程方法、能够独立编写客户端、服务器端的通信程序写客户端、服务器端的通信程序。3 第6章 嵌入式Linux网络编程6.1 TCP/IP概述概述 了解:计算机网络的基本概念,熟悉了解:计算机网络的基本概念,熟悉TCP/IP分层模型,分层模型,理解在网络编程中如何选择理解在网络编程中如何选择TCP/UDP协议。协议。6.2 网络基础编程网络基础编程本章重点本章重点 掌握:掌握:1个概念、个概念、2个结构、个结构、2类函数、类函数、1个流程个流程4 6.1.1 TCP/IP的分层模型的分层模型OSI协议参考模型,它是基于国际标准化组织(协议参考模型,它是基于国际标准化组织(ISO)的)的建议发展起来的,它分为建议发展起来的,它分为7个层次:应用层、表示层、会个层次:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。话层、传输层、网络层、数据链路层及物理层。这个这个7层的协议模型虽然规定得非常细致和完善,但在实层的协议模型虽然规定得非常细致和完善,但在实际中却得不到广泛的应用,其重要的原因之一就在于它际中却得不到广泛的应用,其重要的原因之一就在于它过于复杂。但它仍是此后很多协议模型的基础。过于复杂。但它仍是此后很多协议模型的基础。与此相区别的与此相区别的TCP/IP协议模型将协议模型将OSI的的7层协议模型简化层协议模型简化为为4层,从而更有利于实现和使用。层,从而更有利于实现和使用。6.1 TCP/IP概述概述5 6.1.1 TCP/IP的分层模型的分层模型TCP/IP的协议参考模型和的协议参考模型和OSI协议参考模型的对应关系协议参考模型的对应关系如下图如下图:6.1 TCP/IP概述概述6 6.1.1 TCP/IP的分层模型的分层模型TCP/IP的协议参考模型通讯示意图的协议参考模型通讯示意图6.1 TCP/IP概述概述7 6.1.1 TCP/IP的分层模型的分层模型网络接口层(网络接口层(Network Interface Layer)网络接口层是网络接口层是TCP/IP协议软件的最底层,负责将二进协议软件的最底层,负责将二进制流转换为数据帧,并进行数据帧的发送和接收。数据制流转换为数据帧,并进行数据帧的发送和接收。数据帧是网络传输的基本单元。帧是网络传输的基本单元。6.1 TCP/IP概述概述8 6.1.1 TCP/IP的分层模型的分层模型网络层(网络层(Internet Layer)网络层负责在主机之间的通信中选择数据包的传输路径,网络层负责在主机之间的通信中选择数据包的传输路径,即路由。当网络层接收到传输层的请求后,传输某个具有目即路由。当网络层接收到传输层的请求后,传输某个具有目的地址信息的分组。该层把分组封装在的地址信息的分组。该层把分组封装在IP数据包中,填入数数据包中,填入数据包的首部,使用路由算法来确定是直接交付数据包,还是据包的首部,使用路由算法来确定是直接交付数据包,还是把它传递给路由器,然后把数据包交给适当的网络接口进行把它传递给路由器,然后把数据包交给适当的网络接口进行传输。传输。网络层还要负责处理传入的数据包,检验其有效性,使用网络层还要负责处理传入的数据包,检验其有效性,使用路由算法来决定应该对数据包进行本地处理还是应该转发。路由算法来决定应该对数据包进行本地处理还是应该转发。如果数据包的目的机处于本机所在的网络,该层软件就会如果数据包的目的机处于本机所在的网络,该层软件就会除去数据包的首部,再选择适当的传输层协议来处理这个分除去数据包的首部,再选择适当的传输层协议来处理这个分组。组。6.1 TCP/IP概述概述9 6.1.1 TCP/IP的分层模型的分层模型传输层(传输层(Transport Layer)传输层负责提供应用程序之间的通信服务。这种通信又传输层负责提供应用程序之间的通信服务。这种通信又称为端到端通信。传输层要系统地管理信息的流动,还要提称为端到端通信。传输层要系统地管理信息的流动,还要提供可靠的传输服务,以确保数据到达无差错、无乱序。为了供可靠的传输服务,以确保数据到达无差错、无乱序。为了达到这个目的,传输层协议软件要进行协商,让接收方回送达到这个目的,传输层协议软件要进行协商,让接收方回送确认信息及让发送方重发丢失的分组。传输层协议软件把要确认信息及让发送方重发丢失的分组。传输层协议软件把要传输的数据流划分为分组,把每个分组连同目的地址交给网传输的数据流划分为分组,把每个分组连同目的地址交给网络层去发送。络层去发送。6.1 TCP/IP概述概述10 6.1.1 TCP/IP的分层模型的分层模型应用层(应用层(Application Layer)应用层是分层模型的最高层,在这个最高层中,用户调用应用层是分层模型的最高层,在这个最高层中,用户调用应用程序通过应用程序通过TCP/IP互联网来访问可行的服务。与各个传输互联网来访问可行的服务。与各个传输层协议交互的应用程序负责接收和发送数据。每个应用程序层协议交互的应用程序负责接收和发送数据。每个应用程序选择适当的传输服务类型,把数据按照传输层的格式要求封选择适当的传输服务类型,把数据按照传输层的格式要求封装好向下层传输。装好向下层传输。6.1 TCP/IP概述概述11 6.1.2 TCP/IP的分层模型特点的分层模型特点TCP/IP模型边界特性模型边界特性 TCP/IP分层模型中有两大边界特性:分层模型中有两大边界特性:一个是地址边界特性,一个是地址边界特性,它将它将IP逻辑地址与底层网络的硬件地址分开;一个是操作系逻辑地址与底层网络的硬件地址分开;一个是操作系统边界特性,它将网络应用与协议软件分开统边界特性,它将网络应用与协议软件分开。6.1 TCP/IP概述概述12 6.1.2 TCP/IP的分层模型特点的分层模型特点IP层特性层特性 IP层作为通信子网的最高层,提供层作为通信子网的最高层,提供无连接的数据包传输机无连接的数据包传输机制制,但,但IP协议并不能保证协议并不能保证IP包传递的可靠性,包传递的可靠性,IP的机制是的机制是点到点的。用点到点的。用IP进行通信的主机或路由器位于同一物理网进行通信的主机或路由器位于同一物理网络,对等机器之间拥有直接的物理连接。络,对等机器之间拥有直接的物理连接。TCP/IP设计原则之一是为包容各种物理网络技术,包容性设计原则之一是为包容各种物理网络技术,包容性主要体现在主要体现在IP层中。各种物理网络技术在帧或报文格式、层中。各种物理网络技术在帧或报文格式、地址格式等方面差别很大,地址格式等方面差别很大,TCP/IP的重要思想之一就是通的重要思想之一就是通过过IP将各种底层网络技术统一起来,达到屏蔽底层细节,将各种底层网络技术统一起来,达到屏蔽底层细节,提供统一虚拟网的目的。提供统一虚拟网的目的。6.1 TCP/IP概述概述13 6.1.2 TCP/IP的分层模型特点的分层模型特点TCP/IP的可靠性特性的可靠性特性 在在TCP/IP网络中,网络中,IP采用无连接的数据报机制,对数据进采用无连接的数据报机制,对数据进行行“尽力而为尽力而为”的传递机制,即只管将报文尽力传送到目的传递机制,即只管将报文尽力传送到目的主机,无论传输正确与否,不做验证,不发确认,也不的主机,无论传输正确与否,不做验证,不发确认,也不保证报文的顺序。保证报文的顺序。TCP/IP的可靠性体现在传输层协议之一的的可靠性体现在传输层协议之一的TCP协议。协议。TCP协议提供面向连接的服务协议提供面向连接的服务,因为传输层是端到端的,所以,因为传输层是端到端的,所以TCP/IP的可靠性被称为端到端可靠性。的可靠性被称为端到端可靠性。6.1 TCP/IP概述概述14 6.1.2 TCP/IP的分层模型特点的分层模型特点TCP/IP的特点就是将不同的底层物理网络、拓扑结构的特点就是将不同的底层物理网络、拓扑结构隐藏起来,向用户和应用程序提供通用、统一的网络隐藏起来,向用户和应用程序提供通用、统一的网络服务。这样,从用户的角度看,整个服务。这样,从用户的角度看,整个TCP/IP互联网就互联网就是一个统一的整体,它独立于具体的各种物理网络技是一个统一的整体,它独立于具体的各种物理网络技术,能够向用户提供一个通用的网络服务。术,能够向用户提供一个通用的网络服务。6.1 TCP/IP概述概述15 6.1.2 TCP/IP核心协议核心协议在在TCP/IP协议族中,有很多种协议协议族中,有很多种协议。6.1 TCP/IP概述概述16 6.1.2 TCP/IP核心协议核心协议TCPTCP的上一层是应用层,的上一层是应用层,TCP向应用层提供可靠的面向连向应用层提供可靠的面向连接的数据流传输服务,接的数据流传输服务,TCP数据传输实现了从一个应用程数据传输实现了从一个应用程序到另一个应用程序的数据传递。它能序到另一个应用程序的数据传递。它能提供高可靠性通信提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达即数据无误、数据无丢失、数据无失序、数据无重复到达的通信。的通信。),应用程序通过向,应用程序通过向TCP层提交数据接发送层提交数据接发送/收端的收端的地址和端口号而实现应用层的数据通信。地址和端口号而实现应用层的数据通信。通过通过IP的源的源/目的可以惟一地区分网络中两个设备的连接,目的可以惟一地区分网络中两个设备的连接,通过通过socket的源的源/目的可以惟一地区分网络中两个应用程序目的可以惟一地区分网络中两个应用程序的连接。的连接。6.1 TCP/IP概述概述17 6.1.2 TCP/IP核心协议核心协议建立连接建立连接三次握手三次握手TCP是面向连接的,是面向连接的,所谓面向连接,就是当计算机双方通所谓面向连接,就是当计算机双方通信时必需先建立连接,然后进行数据通信,最后拆除连接信时必需先建立连接,然后进行数据通信,最后拆除连接三个过程。三个过程。TCP在建立连接时又分三步:在建立连接时又分三步:6.1 TCP/IP概述概述18 6.1.2 TCP/IP核心协议核心协议数据传输数据传输滑窗协议:滑窗协议:当发送方传送一个数据包时,当发送方传送一个数据包时,启动计时器。当该数据包到达目的地后,接收方回送一启动计时器。当该数据包到达目的地后,接收方回送一个数据包,其中包含一个确认序号,意思是希望收到的个数据包,其中包含一个确认序号,意思是希望收到的下一个数据包的顺序号。如果发送方的定时器在确认信下一个数据包的顺序号。如果发送方的定时器在确认信息到达之前超时,那么发送方会重发该数据包。息到达之前超时,那么发送方会重发该数据包。6.1 TCP/IP概述概述19 6.1.2 TCP/IP核心协议核心协议TCP数据包头数据包头TCP数据包头格式:数据包头格式:6.1 TCP/IP概述概述20 6.1.2 TCP/IP核心协议核心协议UDPUDP即用户数据报协议,是一种即用户数据报协议,是一种面向无连接的不可靠传输面向无连接的不可靠传输协议协议,不需要通过,不需要通过3次握手来建立一个连接,同时,一个次握手来建立一个连接,同时,一个UDP应用可同时作为应用的客户或服务器方。应用可同时作为应用的客户或服务器方。由于由于UDP协议并不需要建立一个明确的连接,因此建立协议并不需要建立一个明确的连接,
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 中学教育 > 初中教育


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号