第一章 基于单片机的网络编程概述 随着网络技术的迅猛发展,Internet 已经走进千家万户,越来越多的人拥有了随时随地上网的条件,享受着网络带来的方便快捷的生活。同时,随着嵌入式控制技术的成熟,网络也逐步与之结合,深入到工业、楼宇、家居智能化等领域,实现远程数据采集、远程控制等功能。网络化已经成为新一代嵌入式系统发展的一个重要趋势。试想不久的将来,坐在办公室的电脑前就能查看和控制家里的门窗和灯的状态,甚至可以在下班时把家里配好汤料的电饭煲打开,到家就能闻到扑鼻而来的香味了。 盛行全球的Internet 网络是基于TCP/IP 协议族为基础组建的,TCP/IP 是网络通讯系统互联的事实标准。研究嵌入式系统的网络化,就要先从 TCP/IP 的概念入手。 1.1 TCP/IP 的概念及分层结构 TCP/IP 协议是传输控制协议的简称,它实际上是一个协议族,包括许多相关协议。其中最核心的协议是 IP(网际协议)和 TCP(传输控制协议),其它还包括 ARP(地址解析协议)、RARP(逆地址解析协议)、ICMP(Internet 控制报文协议)、UDP(用户数据报协议)、IGMP(Internet 组管理协议)、DNS(域名系统)、TFTP(简单文件传送协议)、BOOTP(引导程序协议)、SNMP(简单网络管理协议)、Telnet(远程控制协议)、FTP(文件传送协议)、SMTP(简单邮件传送协议)等重要协议。并且,随着网络技术的发展,还会不断有新的协议加入到TCP/IP 协议族。这些协议规范了不同的场景下的网络互连,实际应用中可以根据系统的需要使用其中的一些协议。 从 TCP/IP 协议的数量就可以看出,Internet 网络是一个比较复杂的系统,能适配多种应用场景,根据使用协议的不同而实现不同的功能。为了降低网络设计的复杂性,设计者将以分层的方式组织 TCP/IP 协议,每一层可能包括不同通信服务的多种协议。从最底层的硬件开始,每一层都建立在其下一层的基础上,并负责向其上一层提供服务。只有相邻层才能通过软件接口联系起来,非相邻层没有直接的联系。 TCP/IP 的分层见图 1-1,分为物理链路层、网络层、传输层和应用层四层。 图 1-1 TCP/IP 协议族的分层结构 物理链路层:包含网络芯片的硬件和基于硬件上的芯片级驱动。随着网络物理介质的不同和使用网络芯片的不同,需要选择不同的通信方式和修改相应的驱动程序,但只要对外提供的接口不变,网络层的程序是不用修改的。例如以太网(Ethernet)和通过 Modem 上网的方式不同,驱动不同,...