位置:51电子网 » 技术资料 » 通信网络

关于上Internet网和TCP/IP协议的实用技术

发布时间:2007/8/28 0:00:00 访问次数:630

    越来越多的嵌入式应用增加了Internet网络功能,但是,嵌入式应用的编程人员对于上网和TCP/IP协议比较生疏,由于需要了解的技术内容量很多,因此很难短时间从中找出有用的关键部分,本文打算对新手给以实用性的指导。

    TCP/IP包括一系列协议

    首先,应理解我们所说的TCP/IP是统指一系列的协议,其中包括TCP(传输控制协议)、UDP(用户数据报协议)、IP(Internet协议)还有一些更低层的连接层协议,如Ethernet(以太网协议)等。

    用TCP协议传输的所谓数据实际指的是数据流中的段,而用UDP协议传输的所谓数据指的是数据包。IP则是TCP、UDP(传输层协议)之下的网络层协议。IP所提供的是非可靠的、无连接能力的、向指定主机地址的包传送的协议。IP包也叫数据报。数据报可能出现丢失、重复或次序紊乱等现象,所以,它是非可靠的协议。但是,IP 协议的最大好处是,IP数据报独立于低层的网络技术,所以它是一种通用的数据传送方法。

    TCP和UDP都属于IP上层的传输层协议。二者都使用端口号作为送往主机的解码地址。端口号由各个具体应用所确定,同时使用多个端口号能完成“一机多网”的操作。每个UDP数据包和TCP数据段中都含源端口号和目的端口号。为接收远端的输入而等待着执行接入操作的主机是所谓的服务器,发起接入请求的主机就是所谓的客户机。

    服务器为最常服务的应用如FTP(文件传输协议)、Email和HTTP,分配了知名的端口号并对其进行持续地监听。作为传输源的客户机通常选择随机的端口号,并向已分配了知名端口号的服务器发出接入请求。客户应用所取的端口号应大于1024,因1024以下的端口号是为知名应用而预留的。

    UDP为维护数据包的整体性应尽最大可能地选用校验和。UDP数据包的可靠性是与IP相当的;所以,远端主机收到的数据包未能保证其正确的顺序。但是由于TCP所传数据流应用了顺序号和应答措施,可以发现数据的丢失、段的失序和对传输错误的排除,所以TCP协议提供的是数据流的可靠传输。

    相对于UDP,TCP所获得的可靠性是以其复杂性为代价的。TCP面向接入,而UDP是无连接能力的。这意味着,UDP客户机向指定的远端主机发送数据包时,并未事先确知对方是做好了接收数据的准备的。因此就会发生某一客户机发给一个主机,而此主机事先并未把此客户机列入其目标端口号而加以监听。这种情况,只要远端主机运行的是TCP/IP堆栈,并能够将输入的UDP数据报送到ICMP层进行处理的话,此主机将返回一个ICMP(Internet控制信息协议)错误。也就是说,如果远端主机不能接收发去的UDP数据的话,客户机还可以获得一定的提示的;但是,这种提示是有限的,因为客户机并不确知数据的结果。

    然而也正是由于,UDP没有保证可靠性的机制,没有其他的关卡机制,UDP才得以实现全速地发送(即充分发挥物理通信设备的速度)。如果使用低速的处理器,因UDP的开销很小,会导致其传输率比高出TCP很多;但对于高速处理器,二者的差别不会很大。又,UDP没有点对点接入的要求,所以可以实现“一对多点”,“多对多点”的广播和多点播发信息。作为使用UDP实行信息广播的例子,就是在DHCP协议(动态主机控制协议)中,当系统引导的时候,发出广播信息,通知所有DHCP服务器向系统提交网络配置信息。

    TCP原理

    TCP是面向接入的。在将数据发向远方主机之前,必须先建立TCP接入。这意味着只有在两端都实现了TCP接入后,才可以进行点-点之间的数据交换。建立TCP的点-点连接,包括“三重握手”的操作:

    1、 客户机向服务器发出同步段(SYN),请求接入。

    2、 服务器向客户机发出同步-应答段(SYN--ACK)。一方面作为对客户请求接入的响应,一方面要求客户端也进行接入。

    3、 客户机向服务器再发出应答段(ACK)。作为对服务器所发请求接入的响应。

    同样,包含数据的每一个TCP段也都应该取得对端返回的应答段(ACK),作为握手信号来保证数据被可靠地接收。应答段本身不再需要应答,避免应答陷入无穷的嵌套。客户机请求对端接入时,要随机地选送一个初始序号。在第二步中建立TCP接入时,服务器也要选送一个自己的初始序号,并用这个号作为对客户机送来序号的应答号返送给客户机。这样,每一个TCP段中都包含一个序号,并以这个序号作为数据流的定位器,而返给客户机的应答号则表达所发来的数据已经妥收。

    越来越多的嵌入式应用增加了Internet网络功能,但是,嵌入式应用的编程人员对于上网和TCP/IP协议比较生疏,由于需要了解的技术内容量很多,因此很难短时间从中找出有用的关键部分,本文打算对新手给以实用性的指导。

    TCP/IP包括一系列协议

    首先,应理解我们所说的TCP/IP是统指一系列的协议,其中包括TCP(传输控制协议)、UDP(用户数据报协议)、IP(Internet协议)还有一些更低层的连接层协议,如Ethernet(以太网协议)等。

    用TCP协议传输的所谓数据实际指的是数据流中的段,而用UDP协议传输的所谓数据指的是数据包。IP则是TCP、UDP(传输层协议)之下的网络层协议。IP所提供的是非可靠的、无连接能力的、向指定主机地址的包传送的协议。IP包也叫数据报。数据报可能出现丢失、重复或次序紊乱等现象,所以,它是非可靠的协议。但是,IP 协议的最大好处是,IP数据报独立于低层的网络技术,所以它是一种通用的数据传送方法。

    TCP和UDP都属于IP上层的传输层协议。二者都使用端口号作为送往主机的解码地址。端口号由各个具体应用所确定,同时使用多个端口号能完成“一机多网”的操作。每个UDP数据包和TCP数据段中都含源端口号和目的端口号。为接收远端的输入而等待着执行接入操作的主机是所谓的服务器,发起接入请求的主机就是所谓的客户机。

    服务器为最常服务的应用如FTP(文件传输协议)、Email和HTTP,分配了知名的端口号并对其进行持续地监听。作为传输源的客户机通常选择随机的端口号,并向已分配了知名端口号的服务器发出接入请求。客户应用所取的端口号应大于1024,因1024以下的端口号是为知名应用而预留的。

    UDP为维护数据包的整体性应尽最大可能地选用校验和。UDP数据包的可靠性是与IP相当的;所以,远端主机收到的数据包未能保证其正确的顺序。但是由于TCP所传数据流应用了顺序号和应答措施,可以发现数据的丢失、段的失序和对传输错误的排除,所以TCP协议提供的是数据流的可靠传输。

    相对于UDP,TCP所获得的可靠性是以其复杂性为代价的。TCP面向接入,而UDP是无连接能力的。这意味着,UDP客户机向指定的远端主机发送数据包时,并未事先确知对方是做好了接收数据的准备的。因此就会发生某一客户机发给一个主机,而此主机事先并未把此客户机列入其目标端口号而加以监听。这种情况,只要远端主机运行的是TCP/IP堆栈,并能够将输入的UDP数据报送到ICMP层进行处理的话,此主机将返回一个ICMP(Internet控制信息协议)错误。也就是说,如果远端主机不能接收发去的UDP数据的话,客户机还可以获得一定的提示的;但是,这种提示是有限的,因为客户机并不确知数据的结果。

    然而也正是由于,UDP没有保证可靠性的机制,没有其他的关卡机制,UDP才得以实现全速地发送(即充分发挥物理通信设备的速度)。如果使用低速的处理器,因UDP的开销很小,会导致其传输率比高出TCP很多;但对于高速处理器,二者的差别不会很大。又,UDP没有点对点接入的要求,所以可以实现“一对多点”,“多对多点”的广播和多点播发信息。作为使用UDP实行信息广播的例子,就是在DHCP协议(动态主机控制协议)中,当系统引导的时候,发出广播信息,通知所有DHCP服务器向系统提交网络配置信息。

    TCP原理

    TCP是面向接入的。在将数据发向远方主机之前,必须先建立TCP接入。这意味着只有在两端都实现了TCP接入后,才可以进行点-点之间的数据交换。建立TCP的点-点连接,包括“三重握手”的操作:

    1、 客户机向服务器发出同步段(SYN),请求接入。

    2、 服务器向客户机发出同步-应答段(SYN--ACK)。一方面作为对客户请求接入的响应,一方面要求客户端也进行接入。

    3、 客户机向服务器再发出应答段(ACK)。作为对服务器所发请求接入的响应。

    同样,包含数据的每一个TCP段也都应该取得对端返回的应答段(ACK),作为握手信号来保证数据被可靠地接收。应答段本身不再需要应答,避免应答陷入无穷的嵌套。客户机请求对端接入时,要随机地选送一个初始序号。在第二步中建立TCP接入时,服务器也要选送一个自己的初始序号,并用这个号作为对客户机送来序号的应答号返送给客户机。这样,每一个TCP段中都包含一个序号,并以这个序号作为数据流的定位器,而返给客户机的应答号则表达所发来的数据已经妥收。

相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!