TCP可以提供可靠的数据传输服务,并且能够保证所有数据最终能准确的到达其目的地。
TCP的传输实体一般通过软件来实现:一部分是用户进程;另一部分是操作系统的硬件系统(管理TCP字节流,实现与IP层的接口,IP接口的优先选择权等)。TCP的传输服务是通过在收发双方共同创建套接字Socket来实现的;使用Socket来传输需要操作的指令,Socket的地址则是通过IP地址与端口号来标识的。每条TCP的传输连接使用发送端套接字、接收端套接字来表示,是点到点的全双工通道(全双工--支持同时的双向传输数据)运行与TCP上的应用程序包括FTP、HTTP、SMTP和TELNET等。
在Internet内部,从某台计算机传送到另一台计算机的信息并不是一个恒定的流,而是把数据分解成一个个小包,称数据包。比如客户要发一份很长的电子邮件(E-mail)给一位朋友,TCP协议就将该信息分解成很多个数据包,同时每一个数据包用一个序号和接收地址来标示。此外TCP还附加一些纠错信息。随即数据包通过网络传送,即把这些标记的数据包传送给远程的主机这就是IP的工作内容。在另一端TCP接收数据并检查错误。检测如果有错误发生,TCP就可以通过指令要求重发信息。换句话说,IP的工作就是把原始数据(数据包)从一端传送到另一端;而TCP的工作就是管理这种流动并确保其传输的数据是正确的。值得商榷的是,将数据分解成数据包有很多的好处。首先,数据包允许Internet让很多不同的客户在同一时间用同一通讯线路,这样大大提高了效率。由于这些数据包不必一起输送,所以通讯线路可以载着所有不同类型的数据包按照它们各自的路径从一地传输到另一地。就如同在同一条高速公路上,各类型汽车(即使它们开向不同的目的地)都可以在公共道路上行驶。当数据包传输时,它们沿规定的路由从主机到主机,一直到它们最终目的地。这就意味着Internet很具灵活性。如果一个特定的路由连接中断了,控制数据流动的计算机通常可以寻找另一条路由。事实上,在单一数据模块传输中,这些数据包完全可能沿不同的路由进行传输。当条件改变时,网络可获得当时最优的连接。例如当网络的某一部分数据包过载,数据包可以改变路线而去选择走那些比较空闲的线路。用数据包传输的另一个好处是,当某处传输出错,只须重新传送这一个数据包,并不需要将该传输的每个数据包都重新传输。这样会大大提高Internet的传输总速度。这种灵活性产生很高的可靠性。Internet运行效率非常好,虽然所有数据包都必须通过很多计算机,但它可以仅用几秒钟就把一个文件从一个计算机传输到另一台计算机,尽管它们相距很远。
2.1.3 IP协议
网际网络协议(IP)用于数据报交换网络互连系统种,是TCP/IP协议堆栈所采用的传输协议。IP协议的基本数据形态是数据元(datagram),一般都成为数据报,此协议提供了从来源主机到目的主机之间数据报的传输机制。IP数据报中携带这来源地址和目的地址,利用这些地址数据,可将数据报传输到目的主机。IP协议具有数据报分割以及重组机制,需要的时候可以将数据报作适当的分割以及重组,以便能够在网络中传输。
IP协议是网络层协议,它是一种不可靠的,无连接导向的协议,无论是端对端或者路由器对路由器,都不提供可靠的传输,也不会提供确认信息,除了报头校验和外,IP协议本身没有数据的错误控制机制,一旦数据发生错误或者未能完整的接收,都不能重传。甚至即使是只有一个字节发生错误或者没有收到,也必须将整个数据报都丢弃。虽然,IP协议提供了数据报的传输机制,但是并没有提供传输的可靠性、流量控制、顺序性服务机制,它所提供的只是最佳化的传输服务。
2.1.4 TCP/IP模型
习惯上,人们把Internet的通讯协议笼统地称为TCP/IP协议,也有人把Internet称为TCP/IP网或TCP/IP Internet网。在这种意义下,Internet的TCP/IP协议可以说就是基于四种模型的协议:即应用层、传输层、网络层和网络访问层。其中网络访问层又分为网络接口层(链路层)和最基础的物理层。所以也可以说Internet的网络协议是基于五层模型的协议。
根据TCP/IP协议,互联网分为4层,加上最底层的硬件层一共是5层
应用层(第五层) 传输层(第四层) 网络层(第三层) 链路层(第二层) 物理层(第一层) 图2-1 TCP/IP协议分层
1)物理层:
物理层的任务是把帧中的各位从一个节点移往下一个节点。这一层的协议也取决于链路,而进一步取决于链路真正的传输介质。
物理层提供了一个基本机制:对二进制数据(比特)进行编码(发送到物理介质)和解码(从物理介质接收),例如10Mbit/s(bit/s指比特每秒)以太网的曼彻斯特编码、光纤分布式数据接口(Fiber Distributed data Interface,简称FDDI)的4B/5B编码;物理层也负责通知第二层(链路层)何时访问介质。物理层以比特流的方式传送来自链路层的数据,而不理会数据的含义或格式;同样,它接收数据以后,不加分析直接传给链路层。
物理层也定义与介质的物理连接机制,但不是介质本身,按照参考模型的原理,实际的物理介质在物理层之下。
2)链路层:
链路层的任务是把完整的帧从一个网络组建移往某个紧邻的组件,负责管理数据格式。它定义了将数据组成正确帧的规程和在网络中传输帧的规程,帧是指一串数据,它是数据在网络中传输的单位。网络层在源端和目的端之间经由一系列分组交换机(路由器)路由分组。为了将一个分组从一个节点(主机或分组交换机)移往其路径上的下一个节点,网络层必须依赖由链路层提供的服务。链路层提供了对链路的管理,链路层提供的服务取决于应用在链路上的特定链路层协议。分组从源端到目的端一般需要经过多个链路,每个分组沿其路径到达不同链路是,可能有不同的链路层协议来处理。既是说,IP从不同的链路层协议获取的服务会不一样。
链路层负责监督相邻网络节点的信息流动,它使用检错或纠错技术来确保正确的传输:当链路检测到错误时,它请求重发,或是根据情况纠正。此外,链路层还要解决流量控制的问题。
3)网络层:
网络层提供越过多个网络的选路功能,为端点提供无连接的数据报访问,并定义端到端通过整个互联网网络的寻址功能。网络层负责寻址、打包以及从一台计算机通过一个或多个路由器到最终目标的包转发机制。网络层的核心协议有:IP、ARP/RARP、ICMP和IGMP。IP协议(Internet protocol,简称IP)是TCP/IP模型的核心,它是一个路由协议,负责IP寻址、路由选择、分段及包重组。
4)传输层:
传输层给应用提供在其客户端和服务器之间传输应用层消息的服务。即传输层负责为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接。传输层的核心协议是传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram Protocol)。TCP给其应用提供面向连接的服务,该服务包括应用层消息往目的地有保证的递送以及流量控制(既发送端和接收端之间速度的匹配)。TCP还把长数据块分割成较小的段,并提供拥塞控制机制。这样当网络处于拥塞状态时,源端会抑制其发送速率。UDP协议给其应用提供无连接的服务,是一个几乎没有任何修饰的服务。
5)应用层:
应用层负责支持网络应用,直接与用户或应用程序通信,它给应用程序提供访问其他层服务的能力并定义应用程序用于交换数据的协议。应用层包括许多协议,例如支持Web的HTTP、
上一篇:
小型自选商场综合管理系统(ER图+VC++Sql_Server+源代码)-论文(2003doc)
下一篇:
采用VC的伺服电机控制毕业论文(2003doc)