TCP/IP协议简要分析
摘要
一、绪论
在网络应用日益普遍ARMTCP/IP协议的今天,越来越多的嵌入式设备实现Internet 网络化。TCP/IP协议是一种目前被广泛采用的网络协议。嵌入式Internet的技术核心是在嵌入式系统中部分或完整地实现TCP/IP协议。由于TCP/IP协议比较复杂,而目前ARMTCP/IP协议嵌入式系统中大量应用低速处理器,受内存和速度限制,有必要将TCP/IP 协议简化。
嵌入式TCP/IP协议一般实现:ARP/RARP、、IP、ICMP、TCP、UDP、HTTP、SMTP、FTP、TELNET等协议
工业控制ARMTCP/IP协议领域传输层采用TCP协议、不用UDP协议,是考虑到实时监控系统中传输量并不大,而可靠性要求较高。TCP协议是面向连接的、端对端的可靠ARMTCP/IP协议通信协议。它采用了许多机制来保证可靠传输,应用于嵌入式系统显得过于ARMTCP/IP协议复杂。
TCP/IP是一个四层的分层体系结构。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。低层是网际协议,它处理每
个包的地址部分,使这些包正确的到达目的地。网络上的网关计算机根据信息的地址来进行路由选择。即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。TCP/IP使用客户端/服务器模式进行通信。TCP/IP通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。TCP/IP与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。正是它们之间的“无国籍的”释放了网络路径,才是每个人都可以连续不断的使用网络。许多用户熟悉使用TCP/IP协议的高层应用协议。包括万维网的超文本传输协议(HTTP),文件传输协议(FTP),远程网络访问协议(Telnet)和简单邮件传输协议(SMTP)。这些协议通常和TCP/IP协议打包在一起。使用模拟电话调制解调器连接网络的个人电脑通常是使用串行线路接口协议(SLIP)和点对点协议(P2P)。这些协议压缩IP包后通过拨号电话线发送到对方的调制解调器中。与TCP/IP协议相关的协议还包括用户数据报协议(UDP),它代替TCP/IP协议来达到特殊的目的。其他协议是网络主机用来交换路由信息的,包括Internet控制信息协议(ICMP),内部网关协议(IGP),外部网关协议(EGP),边界网关协议(BGP)。
关键字: TCP IP Internet
二、TCP/IP协议定义
TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和telnet协议全称
网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文件传输和等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。
TCP/IP是用于计算机通信的一组协议,我们通常称它为TCP/IP协议族。它是70年代中期美国国防部为其ARPANET广域网开发的网络体系结构和协议标准,以它为基础组建的INTERNET是目前国际上规模最大的计算机网络,正因为INTERNET的广泛使用,使得TCP/IP成了事实上的标准。
TCP协议数据传输可分为三个阶段:建立连接、传输数据和断开连接。它的实现过程可以用状态机来描述。建立连接有两种方法,即主动打开和被动ARMTCP/IP协议打开。服务器端是一种被动打开,它一直在侦听连接请求;而客户端是一种主动打开,它发送连接请求以建立连接。研究发现,如果TCP层的上层实现服务器端的应用,可以将标准TCP 状态机建立连接过程中客户端建立连接的状态机部分简化掉。同理,如果应用是基于ARMTCP/I P协议客户端的,可以将服务器端建立连接的状态机部分简化掉。断开连接有两种方式:一是主动断开连接;另一是被动断开连接。被动断开连接的处理较为简单,但标准TCP协议的主动断开连接的状态机部分过于复杂。经过实验发现,在需要主动断开ARMTCP/IP协议连接的时候,发送一个Fin数据报;接收到对Fin数据报的确认后,再发送一个RESET数据报,即可顺利完成一次主动断开连接。
IP协议是TCP/IP的基础,为不同ARMTCP/IP协议网络的主机之间发送数据报的操作序列提供无连接服务。通过在数据报前添加IP协议头,使每个数据报具有寻址能力。嵌入式系统只把IP作为传输工具,进行简化以完成主要的操作。得到IP包后,检验IP头部的版本、目的地址、校验和正确否,解析出协议类型字段,由此交给相应的高层协议处理。发送IP 包时,将缓冲区内的源地址与目的地址互换,设置校验和,然后交给下层协议处理。不符合要求,则将此包丢弃。IP包最大可以为65KB,可以分段传输,而在嵌入式系统里根本无法容纳如此大的数据包,因此一般不支持分段传输。所以限制MCU发送和接收数据包的方式以避免分段传输,从而减少程序复杂度。
TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议,这个协议是Internet最基本的协议、Internet国际互联网络的基础,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。
1997年,为了褒奖对因特网发展作出突出贡献的科学家,并对TCP/IP协议作出充分肯定,美国授予为因特网发明和定义TCP/IP协议的文顿·瑟夫和卡恩“国家技术金奖”。这无疑使人们认识到TCP/IP协议的重要性当时科学家们提出这样一个理念:“所有电脑生来都是平等的。”为了让这些“生来平等”的电脑能够实现“资源共享”就得在这些系统的标准之上,建立一种大家共同都必须遵守的标准,这样才能让不同的电脑按照一定的规则进行“谈判”,并且在谈判之后能“握手”。
三、TCP/IP协议参考模型
TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:
3.1、应用层:
向用户提供一组常用的应用程序,比如、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
3.2、传输层:
在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。
3.3、互连网络层:
负责相邻计算机之间的通信。其功能包括三方面。一、处理来自传输层的分组发送请求,收到请求后,
将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。二、处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。三、处理路径、流控、拥塞等问题。
3.4、网络接口层(主机-网络层):
接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。
前面我们已经学过关于OSI参考模型的相关概念,现在我们来看一看,相对于七层协议参
四、TCP/IP协网络模型简析:
4.1、数据链路层
数据链路层包括了硬件接口和协议ARP,RARP,这两个协议主要是用来建立送到物理层上的信息和接收从物理层上传来的信息;
4.2、网络层
网络层中的协议主要有IP,ICMP,IGMP等,由于它包含了IP协议模块,所以它是所有机遇TCP/IP协议网络的核心。在网络层中,IP模块完成大部分功能。ICMP和IGMP 以及其他支持IP的协议帮助IP完成特定的任务,如传输差错控制信息以及主机/路由器之间的控制电文等。网络层掌管着网络中主机间的信息传输。
传输层上的主要协议是TCP和UDP。正如网络层控制着主机之间的数据传递,传输层控制着那些将要进入网络层的数据。两个协议就是它管理这些数据的两种方式:TCP是一个基于连接的协议
4.3、应用层
应用层位于协议栈的顶端,它的主要任务就是应用了。上面的协议当然也是为了这些应用而设计的,具体说来一些常用的协议功能如下:
Telnet:提供远程登录(终端仿真)服务,好象比较古老的BBS就是用的这个登陆。FTP :提供应用级的文件传输服务,说的简单明了点就是远程文件访问等等服务;SMTP:不用说拉,天天用到的协议。
TFTP:提供小而简单的文件传输服务,实际上从某个角度上来说是对FTP的一种替换(在文件特别小并且仅有传输需求的时候)。
SNTP:简单网络管理协议。看名字就不用说什么含义了吧。
DNS:域名解析服务,也就是如何将域名映射城IP地址的协议。
HTTP:不知道各位对这个协议熟不熟悉啊?这是超文本传输协议,你之所以现在能看到网上的图片,动画,音频,等等,都是仰仗这个协议在起作用啊
五、简叙IP协议
网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。
IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,
因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。
TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。
面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
UDP与TCP位于同一层,但它不管数据包的顺序、错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP (网络时间协议)和DNS(DNS也使用TCP)
ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。
TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。
IP地址可确认网络中的任何一个网络和计算机,而要识别其它网络或其中的计算机,则是根据这些IP地址的分类来确定的。一般将IP地址按节点计算机所在网络规模的大小分为A,B,C三类,默认的网络屏蔽是根据IP地址中的第一个字段确定的。
A类地址
A类地址的表示范围为:1.0.0.1~126.255.255.255,默认网络屏蔽为:255.0.0.0;A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。
B类地址
B类地址的表示范围为:128.0.0.1~191.255.255.255,默认网络屏蔽为:255.255.0.0;B 类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。
C类地址

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。