- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP/IP 协议的层次 应用层(Application) BSD套接字(BSD Sockets) 传输层 (Transport) TCP、UDP 网络层 (Network) IP、ARP、ICMP、IGMP 数据链路层(Data Link) IEEE802.3 Ethernet MAC 物理层 (Physical) 嵌入式以太网中主要处理的协议 ARP(Address Resolation Protocol)地址解析协议 ICMP (Internet Control Messages Protocol)网络控制报文协议 IP(Internet Protocol) 网际协议 TCP(Transfer Control Protocol) 传输控制协议 UDP(User Datagram Protocol)用户数据包协议 ARP地址解析协议 网络层用32 bit的IP地址来标识不同的主机,而链路层使用48 bit的物理(MAC)地址来标识不同的以太网接口。只知道目的主机的IP地址并不能发送数据帧给它,必须知道目的主机网络接口的MAC地址才能发送数据帧。 ARP的功能是实现从IP地址到对应物理地址的转换。 源主机发送一份包含目的主机IP地址的ARP请求数据帧给网上的每个主机,称作ARP广播,目的主机的ARP收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个包含目的主机IP地址及对应的MAC地址的ARP回答给源主机。 每台主机上都有一个ARP高速缓存,存放最近的IP地址到硬件地址之间的映射记录。通常每一项的生存时间为20分钟 ICMP网络控制报文协议 IP层的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他重要控制信息。 ICMP报文是在IP数据包内部被传输的。 两个实用的网络诊断工具,Ping和Traceroute(Tracert),都是利用该协议工作的。 IP网际协议 IP工作在网络层,是TCP/IP协议族中最为核心的协议。所有的TCP,UDP,ICMP以及IGMP数据都以IP数据包格式传输。 IP数据包最长可达65535字节,其中报头占32 bit的数目。包含各32 bit的源IP地址和目的IP地址。在嵌入式应用中,简化设计,IP数据包长度等于数据链路层的数据长度。 TCP传输控制协议 TCP是一个面向连接的可靠的传输层协议。TCP为两台主机提供高可靠性的端到端数据通信。主要包括: 发送方把应用程序交给它的数据分成合适的小块,并添加附加信息(TCP头),包括顺序号,源、目的端口,控制、纠错信息等字段,称为TCP数据包。并将TCP数据包交给下面的网络层处理。 接受方确认接收到的TCP数据包,重组并将数据送往高层。 UDP协议 UDP是一种无连接不可靠的传输层协议。 把应用程序传来的数据加上UDP头(包括端口号,段长等字段),作为UDP数据包发送出去,但是并不保证它们能到达目的地。可靠性由应用层来提供。就象发送一封写有地址的一般信件,却不保证它能到达。 关于端口 TCP和UDP采用16位的端口号来识别上层的TCP用户,即上层应用协议如FTP,TELNET等。 常见的TCP/IP服务都用1-255之间的端口号。例如FTP服务的TCP端口号都是21,Telnet服务的TCP端口号都是23 256-1023之间的端口号通常都是提供一些特定的Unix服务 TCP/IP临时端口分配1024-5000之间的端口号 基于ARM和uCOS-II的TCP/IP协议 向ARM和uC/OS移植一个TCP/IP协议栈 采用uC/OS自带的TCP/IP协议栈 BSD套接字(BSD Sockets) BSD Sockets使用的最广泛的网络程序编程方法,主要用于应用程序的编写,用于网络上主机与主机之间的相互通信 UNIX,Linux,VxWorks均支持BSD Sockets,Windows的Winsock基本上是来自BSD Sockets Socket分为Stream Sockets和Data Sockets Stream Sockets是可靠性的双向数据传输,使用TCP协议 Data Sockets是不可靠连接,使用UDP协议 套接字的使用 UDP服务器端和一个UDP客户端通信的程序过程 创建一个Socket sFd =socket (AF_INET, SOCK_DGRAM, 0) 把Socket和本机的IP,UDP口绑定 bind (sFd, (struct sockaddr *) serverAddr, sockAddrSize) 循环等待,接收(recvfrom)或者发送(sendfrom)信息 关闭Socket,通信终止 close (sFd) 本节提要 1 3
文档评论(0)