选择特殊符号
选择搜索类型
请输入搜索
TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。
tcp协议和udp协议的差别
TCP协议和UDP协议各有所长、各有所短,适用于不同要求的通信环境。TCP协议和UDP协议之间的差别如附表所示。
对于网络管理的网络安全具有至关 重要的意义。比如,防火墙的作用本质就是检测网络中的数据包,判断其是否违反了预先设置的规则,如果违反就加以阻止。下图就是某杀毒软件个人版防火墙软件设置规则的界面。细心的读者会发现,图中的"协议"栏中有"TCP"、"UDP"等名词。
TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为...
由于大多数网络应用程序都在同一台机器上运行,计算机上必须能够确保目的地机器上的软件程序能从源地址机器处获得数据包,以及源计算机能收到正确的回复。这是通过使用 UDP 的“端口号”完成的。例如,如果一个...
简介:《深入浅出Linux TCP /IP协议栈》主要对Linux 2.6.18内核协议栈源代码做了一些基本的分析,这些分析基于...
TCP论文
本科课程论文 Course Paper 论文编号 Paper No: 09012058 撰写日期 Date: 2012-5-28 桌面视频会议系统中视音频实时交互的实现 Desktop video conference system CTV audio real-time interactive realization 谢大帅 Dashuai Xie (计算机与信息工程学院 网络工程 09 网络工程 09012058) 论文类型 Paper Type: 研究总结 Summary of Focused Research 论及主题 Subject Covered: 巢 湖 学 院 课程名称 Course:TCP/IP 协议族 课程性质 Course No:专业基础课 学 分 数 Credits:2 主讲教师 Instructor:韩俊波 开设学院 College:计
Modbus与TCP/IP协议转换器的设计
近20多年来,随着通信技术、计算机技术和网络技术的迅速发展,工业自动化控制领域也得到了迅速的促进和改革。如何将现代通信技术成功地应用到工业自动化控制领域,掀起了一股激烈的讨论热潮。本人设计了一个协议转换器,使遵循Modbus协议的现场设备和控制器能够挂到以太网上,完成与PC主机或者远距离的控制器之间的通信。
由于TCP协议栈的程序流程较为复杂,因为程序中需要处理对方发送过来的数据、发起的连接,而我方并不知道对方会何时进行什么样的操作,这就使得协议处理起来较为复杂。另外一个原因是单片机TCP/IP协议栈的稳定性是以非常重要的问题,一个稳定的协议栈需要在实际应用中经过长时间的测试,所以编写一个稳定的单片机TCP/IP协议栈更加困难。为此另外一种选择就是使用现有的TCP/IP协议栈。
1. eCos单片机TCP/IP协议栈:eCos TCP/IP栈是涉及与eCos操作系统/内核一起运行的。eCos(和TCP/IP栈)由大量处理其结构支持。eCos TCP/IP栈当前发布了一个测试版,作为一个单独的模块。
2. ZLIP 51单片机TCP/IP协议栈:ZLIP是专门为51单片机设计的嵌入式TCP/IP协议栈,可以在有操作系统和没有操作系统情况下运行,具有代码量适中、运行速度快、用户接口简单、兼容BSD socket接口的特点。实现了TCP、UDP、ICMP、ARP协议,ZLWeb实现了HTTP协议。支持多TCP连接、多UDP连接同时运行,支持在uc/os-II操作系统下多任务运行数据收发。可以用于51单片机TCP/IP上网解决方案。
3. uc/ip 单片机TCP/IP协议栈:uC/IP(mew-kip)是为为控制其设计的一个TCP/IP协议栈。代码基于BSD(很像所有其它栈)但对非常小的覆盖范围功能有所减少。它当前为Linux和DOS目标而建。
4. BSD 单片机TCP/IP协议栈:BSD栈历史上是其他商业栈的开始点,大多数专业TCP/IP栈(如带Wind-River VxWorks内核的)是BSD栈派生的。这是因为BSD在BSD许可协议下提供了他们的栈,它们的许用证使你能以修改或未修改的形式结合它们的代码而无须向创建者付版税。与GPL许用证相比,如果你结合GPL源代码,后者要求你的GPL中公开你的源代码。
5. lwIP 单片机TCP/IP协议栈:lwIP(轻型)TCP/IP栈是TCP/IP协议栈的一个小型实现。它包括带IP和ICMP的TCP和UDP传输层。还提供一个可选的BSD套接字API。为了性能,还包括一个零拷贝API。LwIP协议栈是为嵌入式系统设计的并能适合40KB的ROM和几百字节的RAM。为了可移植性它用C编写。
6. uIP 单片机TCP/IP协议栈:uIP是专门为8位和16单片机设计的一个非常小的TCP/IP协议栈。uIP完全用C编写,以此可以移植到各种不同的结构和操作系统上。一个编译的栈可以有几KB ROM或几百字节RAM中运行。uIP还包括一个HTTP服务器作为服务内容。
7. TinyTCP 单片机TCP/IP协议栈:TinyTCP栈是TCP/IP的一个非常小的简单的实现,它包括一个FTP客户。TinyTCP是为烧入ROM设计的并且对大端结构似乎是有用的(初始目标是68000芯片)。TinyTCP也包括一个简单的以太网驱动器用于3Com多总线卡。
8. WATTCP 单片机TCP/IP协议栈:WATTCP是为嵌入基于DOS的系统而设计的一个小型TCP/IP栈。它包括一个Real Mode DOS版本和另一个32位扩展环境版本。
用户在拿到一个单片机TCP/IP协议栈以后该如何处理呢。其中的处理分为两个部分:上层接口和下层接口。
4. 1 上层接口
用户使用单片机TCP/IP的目的实际非常明了,就是要实现数据的传送,即从PC机(或者另一个单片机)上传送过来的数据能够在本地单片机上接收,反之亦然。所以如果屏蔽底层的话,单片机TCP/IP协议栈就是一个传输数据的手段。所以最后归结到了使用send()、recv()函数即可。这就是使用单片机TCP/IP协议栈的核心所在。
但是事实上并没有这么简单,因为对于TCP需要有发起连接、接受连接、发送数据、接收数据、关闭连接等操作以配合数据的传输。TCP/IP协议栈一般为用户提供如下的接口:
1. 初始化协议栈和释放协议栈的函数接口,类似Init(), Release()之类的函数。
2. 提供类似BSD socket的socket, sendto, recvfro, connect, bind, listen, accept, send, recv, closesocket, shutdown, getpeername, getsockname, htonl, htons, ntohl, ntohs, inet_addr,inet_ntoa,ioctlsocket,setsockopt, getsockopt,select等API函数,用户调用此类函数进行发起连接、接受连接、发送数据、接收数据、关闭连接等操作。
3. 接受连接、接收数据、被动关闭的处理:由于此类操作是上位机发起的,所以TCP/IP协议栈必须提供一套机制来处理此类事件的发生。一般来说有两种方法:
a) 主动等待:例如使用BSD的recv()函数等待数据的到来。
b) 回调机制:采用类似MFC的OnReceive()函数的回调机制,也即是说在接收到数据的时候会自动调用OnReceive()函数。
那么用户如何使用以上的接口来实现远程控制、远程数据采集呢?方法很简单。
例如如果需要实现一个对LED灯的亮和灭的远程控制应用。首先PC机使用TCP/IP发送工具例如SocketDlgTest程序发送一个字节的“1”到开发板(根据开发板的IP地址发送)。开发板在OnReceive函数中发现收到的是“1”,那么就通过P1端口将灯打开;反之如果收到的是“0”则将灯熄灭。
如果是实现一个远程数据采集的应用,例如定时进行温度采集。首先PC机使用SocketDlgTest程序等待发来数据。开发板每隔一段时间采集一个数据,然后通过send()函数将数据发送给PC机(根据PC机的IP地址发送),这样PC就接收到了当前的远程温度数据。
4. 1 下层接口
下层接口是一个比较复杂的部分,实际上是TCP/IP协议栈和底层硬件的对接问题。如果用户将TCP/IP协议栈移植到自己的单片机系统上。由于硬件上存在一定的差异,就需要修改底层代码。这里需要包括:
1.网卡驱动:如果TCP/IP协议栈已经提供了网卡驱动,并且驱动和用户使用的网卡芯片一样,那么就相对容易一些。这里只需要修改网卡的基地址即可。否则需要自己动手写驱动程序。如果网卡采用RTL8019AS可以参考老古开发网的单片机与TCP/IP网络。如果网卡采用CS8900,可以参考《嵌入式 TCP/IP 协议单片机技术在网络通信中的应用》
2.TCP/IP底层接口。一般单片机TCP/IP需要底层为其提供定时中断、网卡中断处理的入口。底层需要做相应的处理。
· IP协议对应OSI模型的第三层-网络层
· TCP协议对应OSI模型的第四层传输层和第五层会话层的部分功能
· TCP/IP协议并不对网络会话层(OSI模型第五层的一部分)发生的具体事情进行假设,而OSI模型定义了集中多层标准化功能。
· TCP/IP协议并不对IP网络层下的链路层再进行分层协定,而OSI模型指定了两个分层。
· 当一个应用程序需要的功能在TCP/IP协议中无法找到时,该应用程序可以提供这些功能并调用。OSI模型假设每层的功能已经定义好,一个应用程序永远不会再调用自带功能,因为各层之间的接口抽离了许多细节,可能无法实现调用。