【嵌入式】Linux C编程——网络编程(1)

1、TCP/IP的概念:

TCP/IP是网络中的基本通信协议,虽然TCP/IP看起来只包含传输控制协议(TCP)和网际协议(IP),但是实际上TCP/IP是一组协议,它包含上百个能完成各种功能的协议。通常说的TCP/IP是指Internet协议簇,而不只是TCP和IP。

互联网地址:

互联网上每个接口必须有唯一的Internet地址(IP地址),IPV4长度为32位,IPV6长度为128位。以IPV4为例,其32位的地址被分为4个十进制数,其中每个整数对应一个字节,这种表示方法称为作点分十进制表示法。5类不同的地址格式为:
在这里插入图片描述
其对应的各地址的起止范围如下:
在这里插入图片描述
由于互联网上的每个接口必须有唯一的IP地址,因此需要一个管理机构为接入互联网的网络分配IP地址,这个机构叫做网际互联网网络信息中心(InterNIC)。InterNIC只负责分配网络号,主机号的分配由系统管理员来负责。
IP地址分为3类:单播地址(目的端为单个主机)广播地址(目的端为给定网络上的所有主机)多播地址(目的端为同一组内的所有主机)

2、封装:

当应用程序用TCP传输数据时,数据被送入到协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(加入尾部信息),其封装过程如下所示:
在这里插入图片描述
其中,TCP传给IP的数据单元称作TCP消息段(TCP段),IP传给网络结构的数据单元称作IP数据报,通过以太网传输的比特流称作帧。
由于TCP、UDP、ICMP和IGMP都向IP传输数据,因此在IP必须生成的IP首部中加入某种标识,以表明数据属于哪一层。通常,IP在首部中存入一个长度为8位的数值,称作协议域,1表示ICMP,2表示IGMP,6表示TCP,17表示UDP。

①、OSI将数据通信的各个功能 分为7层,各司其职,但又相互依存、合作,其7层排列关系如下:

7:应用层6:表示层5:会话层4:传输层3:网络层2:数据链路层1:物理层
在功能上,可以分为:
a、网络群组:物理层、数据链路层和网络层组成;
b、使用者群组:传输层、会话层、表示层和应用层组成。

②、TCP/IP的4层网络模型:

TCP/IP的4层网络模型如下:
在这里插入图片描述

a、应用层:

由使用TCP/IP进行通信的程序所提供,一个应用就是一个用户进程,它通常与主机上的另一个进程合作。应用层的协议包含Telnet和文件传输协议(FTP),应用层和传输层之间的接口由端口号和套接字(Socket)所定义;

b、传输层:

提供端到端的数据传输,可以支持多个应用。最常用的传输层协议是传输控制协议(TCP)和用户数据报协议(UDP)。TCP提供了面向连接的可靠的数据传送、重复数据抑制、拥塞控制和流量控制;UDP提供了无连接、不可靠、尽力传送的服务。如果用户需要,使用UDP传输的应用需要提供各自的端到端的完整性、流量控制和拥塞控制,对于需要快速传输并能容忍某些数据丢失的应用可以使用UDP。

c、网络层:

提供了互联网的“虚拟网络”镜像(这一层屏蔽了更高层协议,使它们不受互联网络层下面的物理层网络体系结构的影响)。网际协议(IP)是这一层最重要的协议,它是一种无连接的协议,不负责下层的传输可靠性。IP不提供可靠性、流控制或者错误恢复。IP提供路由服务,试图把发送的消息传输到目的端。IP网络中的消息单位位IP数据报,这是TCP/IP网络上传输的基本信息单位。

d、网络接口层:

网络接口层也被称为链路层或者数据链路层,是实际网络硬件的接口。这个接口既有能提供可靠的传输,也有能不提供可靠的传输,而且既可以是面向消息的传输,也可以是面向流的传输。TCP/IP没有在这一层规定任何协议,但是几乎可以使用任何一种可用的网络接口。
TCP/IP4层模型详细的分层:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 嵌入式系统设计与应用是指在特定应用领域中,使用嵌入式处理器和相关硬件资源,结合嵌入式操作系统和软件开发工具,设计和开发满足特定需求的嵌入式系统。 ARM Cortex-A8是一款高性能的嵌入式处理器,广泛应用于手机、平板电脑、智能电视等嵌入式设备中。它具有强大的计算能力和低功耗特性,能够提供快速、高效的数据处理和多任务处理能力。 Linux是一种开源的嵌入式操作系统,提供了丰富的软件资源和开发工具,可以满足各种嵌入式应用的需求。在使用ARM Cortex-A8和Linux进行嵌入式系统设计和应用时,可以借助Linux的强大功能和丰富的软件生态系统,快速开发出满足特定需求的嵌入式应用。 设计和开发嵌入式系统时,首先需要选择合适的硬件平台和操作系统。选择ARM Cortex-A8作为处理器可以得到高性能和低功耗的优势,而选择Linux作为操作系统可以借助其丰富的软件资源和开发工具。 然后,根据具体的嵌入式应用需求,对系统进行架构设计和软件模块划分。在嵌入式系统设计中,需要考虑系统的实时性、功耗控制、硬件接口与外设的驱动、应用程序的开发等方面。 在应用开发阶段,可以使用C/C++等编程语言,结合相应的开发工具,编写应用程序和驱动程序。同时,可以借助Linux的丰富资源,如网络协议栈、文件系统、数据库等,快速实现系统的功能。 最后,在系统调试和测试阶段,可以使用调试工具和仿真平台进行系统性能测试和调试,以确保系统的稳定性和可靠性。 综上所述,嵌入式系统设计与应用基于ARM Cortex-A8和Linux可以提供高性能、低功耗和丰富软件资源的优势,能够快速开发出满足特定需求的嵌入式应用。 ### 回答2: 嵌入式系统设计与应用是指将计算机系统嵌入到特定的电子设备中,以完成特定的功能。基于ARM Cortex-A8和Linux嵌入式系统设计与应用是指利用ARM Cortex-A8处理器和Linux操作系统来设计和开发嵌入式系统。 ARM Cortex-A8是一种高性能、低功耗的32位RISC处理器。它采用精简指令集架构,具有较高的运算能力和较低的能耗。Cortex-A8处理器广泛应用于嵌入式领域,可用于智能手机、平板电脑、汽车导航系统等各种嵌入式设备。 Linux是一种开源的操作系统内核,具有广泛的硬件支持和强大的软件生态系统。在嵌入式系统设计中,Linux提供了丰富的功能和驱动支持,能够提供稳定可靠的操作环境。同时,Linux还可以方便地进行定制和扩展,以满足各种应用需求。 在基于ARM Cortex-A8和Linux嵌入式系统设计中,我们可以利用Linux提供的运行时库、工具链以及开发环境来进行系统开发。可以利用C/C++编程语言来进行应用程序的开发,使用Linux提供的设备驱动程序来进行硬件的控制和交互。同时,我们还可以利用Linux网络支持和文件系统功能来实现网络连接和数据存储。 综上所述,基于ARM Cortex-A8和Linux嵌入式系统设计与应用具有高性能、低功耗、可定制和可扩展等优势,可以适用于各种嵌入式设备的开发和应用。它在智能手机、平板电脑、汽车导航系统等领域具有广泛的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值