一种基于TCP协议的点对点通信方法

合集下载

VB中基于TCPIP协议的点对点文件传输

VB中基于TCPIP协议的点对点文件传输
Dim data() As Byte, pack As Long, send As Long '数据缓冲区,文件包数,已传输的数据
“发送文件”按钮事件代码:
Private Sub sendfile_Click()
StatusBar1.SimpleText = "向客户端发送数据…"
'计算需要传输文件的包数
Winsock1.Listen '等待客户端连接请求
'状态栏显示提示文字
StatusBar1.SimpleText = "服务器已工作,准备接受请求…"
End Sub
"客户端请求连接"事件代码:
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
End If
End Sub
运行结果如图3所示:
图3客户端运行效果
从以上的实例中,基本了解了有关Winsock控件的使用方法和文件传输的过程。然而,当需要传送的数据比较大时,就不能像以上介绍的那样,直接将整个文件放入数据缓冲区中了,我们的内存是无法忍受用一个几百MB甚至上GB的空间去存储那些临时数据的。显然,这种做法已远不能满足我们的需求,这时可以将文件按照一定的大小,分成若干个数据包(远小于内存的容量)。首先,设置数据包的大小(如64K),根据文件的基本信息(主要文件的长度),计算出总共需要的数据包数;然后,依次读取同数据包一样大小的数据到数据缓冲区中;接着,将数据缓冲区中的数据,发送到指定的计算机上;同时在另一端,建立一个数据缓冲区,缓冲区的大小要根据接收到的数据来确定,依次接收客户端传输过来的数据包,并将数据缓冲区的数据写入相应的文件中,这样就很容易实现大文件的传输了。

网络协议知识:LTP协议和PPTP协议的比较

网络协议知识:LTP协议和PPTP协议的比较

网络协议知识:LTP协议和PPTP协议的比较LTP协议和PPTP协议的比较LTP协议和PPTP协议都是网络通信中常用的协议。

而这两者虽然都能用于虚拟专用网络(VPN)等环境中,但它们的设计和用途有所不同。

1. LTP协议LTP(Licklider Transmission Protocol)协议是由美国宇航局(NASA)研究开发的一种安全传输协议。

LTP协议旨在使数据得以在非常不可靠的网络连接中传输,例如用于天体网络间通信。

与其他协议不同,LTP协议可以异步传输数据,即不需要等待确认消息或重传,只需要将数据发送到目的地即可。

如果发生丢失或损坏,发送方会在一段时间后重新传输。

此外,LTP支持点对点通信和多对多通信,并提供了完整的数据完整性和机密性。

LTP协议还支持基于Web的用户界面,可供用户交互式配置和控制所需的路由器和终端设备。

然而,LTP协议并不是用于大规模网络通信的协议,因此它在一些实际场景中可能不实用。

2. PPTP协议PPTP(点对点隧道协议)是一种基于TCP/IP的VPN协议。

它是由微软公司开发的,用于建立安全的远程网络连接。

PPTP协议可以在公共互联网上建立加密通道,以便通过本地网络(例如,公司内部网络)之间进行通信。

PPTP协议的工作原理是使用一种称为GRE(通用路由封装)的协议。

它是一种通用的协议,用于将不同类型的数据封装在单个数据包中,以便在网络上传输。

PPTP协议支持许多安全性传输协议,包括PAP(密码验证协议)和CHAP(挑战-响应身份验证协议)。

PPTP协议也支持基于Windows的用户界面,可供用户配置和控制VPN连接。

3.比较LTP协议和PPTP协议都是网络通信中常用的协议。

它们的功能各有所长,可以根据需求选择使用。

LTP协议专为极端环境下的网络通信而设计,可以支持点对点和多对多通信,并具有数据的完整性和机密性。

而PPTP协议则是用于交换敏感数据的传输,或在本地网络之间建立安全连接的工具。

基于TCP/IP协议的点对点通信

基于TCP/IP协议的点对点通信

即物理层 、 数据链路层 、网络层 、 传输层 、 会话
层、 表示 层 和应用层 而 T PI C/ P协议参 考 模 型对 网络 的分层 进 行 了精 简 ,即改 进 为 网络 接 口层 、
择和配置网 络 议 , 当所选 的网络协议配 置好 后 ,便 可 将 各 层 协议 的 数 据 包 发 送 到 数 据 链 路
协议 ,它的 出现 成功 地解 班 了畀 网互连 通 信 . 通 讯 的 步骤 为建 立连 接一 发 送数 据 一 拆 除 连 其
接 .P P P协议 (o toPi roo) 由 Iq Pi o t o c1是 n t nP t ET定 义的点 对点 的协议 ,用 来取 代 串行 链路 互连 网
1 T PI P C/ P、P P协 议 剖 析
1 1 协议 分层 的概念 及 协议 分层 结构 .
网络通 讯协 议分 层 的思想 源 于各层 的工作 独 立 ,即编写应用 软 件的程 序 员 可 以不 用过 多地 去 了解底 层 的阿络协 议 , 写 协议 软 件 的程 序员 可 编 以不用 过 多 的 了解 硬件 .网络 协 议 就是 规 范 、 协 同、 统一 .即在通 讯 双 方 建 立 一通 信 规 则 ,使得 接收方 和发送 方都 明 白其 含 义 .
的结 构和 PP P /P的通 讯 协 议特 点 介 绍 基 于 P 、ITC T PI C, P协议 的点 对 点通 信 ,并用 Dl i e h 5实 现 了 p 这一 过程
相同使得不同计算机之间 , 不同网络之间难 以互
连通 信 T PI‘ r s a i ot l rt o It — c , Ta m s o C nr o clne P n sn oP o / r

101协议与104协议

101协议与104协议

101协议与104协议协议名称:101协议与104协议一、背景介绍101协议和104协议是电力行业中常用的通信协议,用于实现电力系统中的数据交换和通信。

本协议旨在详细描述101协议和104协议的基本概念、通信要求、数据格式等内容,以便确保协议的正确实施和应用。

二、101协议1. 概述101协议是一种常用的电力系统通信协议,用于在电力系统中实现数据的传输和通信。

该协议采用二进制编码方式,具有高效、可靠的特点。

2. 通信要求101协议要求通信双方具备以下要求:- 支持点对点和点对多点通信;- 支持数据的实时传输和同步;- 支持数据的可靠传输,具备重传机制;- 支持数据的加密和认证。

3. 数据格式101协议的数据格式如下:- 帧头:标识数据帧的起始位置;- 控制字:用于指示数据帧的类型和控制信息;- 地址域:用于标识发送方和接收方的地址;- 信息体:包含实际的数据内容;- 帧尾:标识数据帧的结束位置。

4. 应用场景101协议广泛应用于电力系统的自动化控制、保护和监控等领域。

通过101协议,电力系统可以实现实时数据的传输和通信,提高系统的可靠性和安全性。

三、104协议1. 概述104协议是一种高级电力系统通信协议,用于在电力系统中实现数据的交互和通信。

该协议采用基于TCP/IP的通信方式,具有高速、可靠的特点。

2. 通信要求104协议要求通信双方具备以下要求:- 支持点对点和多点对多点通信;- 支持数据的实时传输和同步;- 支持数据的可靠传输,具备确认和重传机制;- 支持数据的加密和认证。

3. 数据格式104协议的数据格式如下:- 帧头:标识数据帧的起始位置;- 长度字段:指示数据帧的长度;- 类型字段:指示数据帧的类型;- 传输原因字段:指示数据帧的传输原因;- 应用服务数据单元:包含实际的数据内容;- 帧尾:标识数据帧的结束位置。

4. 应用场景104协议广泛应用于电力系统的远程监控、自动化控制和数据交换等领域。

bittorrent原理

bittorrent原理

bittorrent原理BitTorrent原理引言BitTorrent是一种点对点文件共享协议,它基于TCP/IP协议,具有高效、可靠和分布式的特点。

本文将介绍BitTorrent的原理及其工作机制。

一、BitTorrent的基本原理1. 服务器与客户端模式BitTorrent采用了一种分布式的服务器和客户端模式。

在传统的客户端-服务器模式中,服务器负责存储文件并向客户端提供下载。

而在BitTorrent中,用户通过BitTorrent客户端连接到一个或多个其他用户的客户端,每个用户同时充当服务器和客户端,共享文件资源。

2. 文件分块BitTorrent将待分享的文件分成固定大小的块,通常为256KB或512KB。

每个块都被分配一个唯一的标识符,称为哈希值,用于校验文件的完整性。

3. 种子文件种子文件是一个小文件,包含了待分享文件的元数据,包括文件名、文件大小、块大小、Tracker服务器的地址等信息。

用户通过种子文件来获取待分享文件的相关信息,并连接到Tracker服务器。

4. Tracker服务器Tracker服务器是BitTorrent网络中的关键组件,它维护了当前参与共享文件的用户列表。

当用户连接到Tracker服务器时,它会返回一个包含其他用户IP地址的列表,用户可以从这些用户中选择连接的对象。

5. 分片下载BitTorrent的核心机制是分片下载。

当用户连接到其他用户时,它们可以请求和接收已经拥有的块,并向其他用户提供自己已经下载的块。

这种分片下载的方式可以加快下载速度,同时减轻了服务器的负担。

6. 块的校验和和完整性检查每个块都有一个唯一的哈希值,用于校验块的完整性。

当用户接收到一个块时,会根据块的哈希值进行校验,确保接收的块没有被篡改。

二、BitTorrent的工作流程1. 创建种子文件在共享文件之前,用户需要先创建种子文件。

种子文件包含了待分享文件的元数据,用户可以使用BitTorrent客户端创建种子文件。

一种新的路由算法——点对点路由协议

一种新的路由算法——点对点路由协议

一种新的路由算法——点对点路由协议胡清桂【摘要】文章介绍路由算法原理,提出将点对点策略引入路由算法的观点.分析表明:新的路由算法具有更高的自适应性,它可以提高网络的容错能力,降低网络延迟,增强网络稳健性.文章对新的协议进行仿真,仿真结果表明:在新的协议情况下,网络丢包率要小.【期刊名称】《广州大学学报(自然科学版)》【年(卷),期】2013(012)002【总页数】4页(P78-81)【关键词】路由器;丢包率;点对点;缓存表【作者】胡清桂【作者单位】内江师范学院现代教育技术中心,四川内江641112【正文语种】中文【中图分类】TP393.1随着网络技术的飞速发展,网络与人们的工作学习密不可分,网络在日常生活中发挥着越来越重要的作用.为了保证网络的正常运行,路由器的功能显得愈加重要,路由器采用何种路由算法来找到最佳路由是网络技术的核心问题[1-3].为了提高路由器工作效率,本文提出一种新的点对点策略,作为对普通路由算法的补充,供专家商榷.1 路由及路由算法介绍路由是把信息从源地址穿过网络传递到目的地的行为,它包含两个基本的动作,一是确定最佳路径,二是通过网络传输信息.在路由的过程中,后者也称为数据交换.数据交换相对比较简单,而选择路径通常较为复杂[4].如何选择“最佳路由”是路由算法的核心问题.“最佳路由”考虑的参数包括诸如跳跃数、延时以及分组数据包传输通信耗时等.关于路由器如何收集网络的结构信息以及对之进行分析来确定最佳路由,有两种主要的路由算法:总体式路由算法和分散式路由算法.采用分散式路由算法时,每个路由器只有与它直接相连的路由器的信息,这些算法也被称为DV(距离向量)算法[5].采用总体式路由算法时,每个路由器都拥有网络中所有其他路由器的全部信息以及网络的流量状态,这些算法也被称为LS(链路状态)算法.各种具体的路由算法不在本文研究范围之内.图1是路由器工作示意图.图1 路由器工作原理Fig.1 The work process of the router2 一种新的点对点策略如何选择“最佳路由”是路由算法的核心问题,目前,路由器的基本作用就是确定最佳路径和转发数据,为了提高路由器工作效率,本文提出一种新的点对点策略,作为对普通路由算法的补充,见图1,按照笔者的观点,新协议工作过程如下:(1)当有数据包要访问外部网址时,路由器先查看缓存表中是否已经有主机曾访问相同的目的网址;(2)当发现有主机曾访问相同的目的网址时,把数据包转发至该主机;(3)如果访问成功则结束,如果访问失败,再采用路由算法,确定最佳路径,最后转发数据包,访问外部目的网址.以上新的协议工作过程十分简单,但路由器需要创建一个缓存表,保存内部主机曾经访问的外部网址,并保存访问时间,以便其它内部主机访问相同外部网址时,可以直接访问该主机.另外,对于路由器需要创建的缓存表,笔者认为只需要以下几项内容:<内部主机IP地址,目的地IP地址,访问文件及其路径,访问时间>这样,路由器内部主机访问相同的外网地址,并且访问相同的文件时,路由器就可以让它直接访问内部主机.图2是引入点对点协议后路由器工作原理.图2 新的点对点路由协议工作原理Fig.2 The work process of P-to-P router protocol3 路由器引入P2P新协议后的分析路由器增加新的点对点路由协议后,可以缓解内部主机访问外部网络的压力,对局域网来说,一般出口带宽常常是网络瓶颈[6],从这一点看,路由器增加新的点对点路由协议是十分必要的.在一个局域网内,尽管用户众多,但很多时候用户访问相同的外网地址,甚至很多用户的需求也是相同的,所以,路由器增加新的点对点路由协议可以较大地提高其工作效率.路由器增加点对点协议,虽然可以缓解出口压力,但需要自己创建缓存表,保存内部主机的访问地址,然而这也会耗费一定的资源.增加新的点对点路由协议后,路由器耗费本身的内存资源,由此节约了网络资源,笔者认为,这是值得的.路由算法中增加新的点对点路由协议后,网络的容错能力将会得到提高.容错是指并行计算机互连网络应对部件故障的能力,任何网络设备都有发生故障的可能,当网络部件发生故障时,路由算法应该具有更高的自适应性,使消息能够绕过网络中的故障区域,同时又要保证路由算法的无死锁特性[7].引入点对点路由协议后,路由器发现内部主机已经存在相应的资料,它就让对方直接访问内部主机,避免访问外部网络,在这种情况下,即使外部网络存在很多网络故障,同时不管外部网络是何种拓扑结构,消息都能够绕过这些故障区域.由于消息不需要经过外部网络,所以网络的容错能力将会得到提高.同时,引入点对点路由协议后,网络延迟将会降低.各种数据在网络介质中通过网络协议(如TCP/IP)进行传输时,信息量过大,超额的网络流量就会导致设备反映缓慢,这是造成网络延迟的最主要因素[8].引入点对点路由协议后,路由器可让访问请求直接访问内部主机,避免访问外部网络,这可以减轻网络压力,减小网络流量,使网络延迟得到降低[9].同时,访问请求没有经过外部网络,其路径将会变短,这也会降低网络延迟.因此,网络延迟将会降低.路由器增加点对点协议,可能会导致更多的材料更容易得到传播,同时,个人主机接受路由器的访问,可能会让用户感到不安全,这些类似的问题都是可以解决的[10].实际上,这些问题都不是P2P技术本身的问题,而是如何使用P2P技术的问题,从总体来说,路由器中引入P2P技术也是可以尝试的.4 标准协议和新协议的仿真为了进一步对路由器引入P2P协议进行分析,笔者采用OPNET网络仿真软件进行仿真.4.1 网络结构模型的配置首先,笔者配置了如下简单的网络结构模型, 6个路由器node_0, node_1,node_2, node_3,node_4, node_5相互连接.其中node_0连接2个客户机host1和host 2; node_2, node_3,node_5各连接一个客户机(见图3).其次,假设主机host 1要通过网络访问远处主机host 5的一个文件,而这个文件已经被主机host 2下载到了本地,同时主机host 2允许路由器访问本机.而其它主机在正常通信.按照传统路由协议,路由器node_0将会把主机host 1的访问请求通过网络转发到远处主机host 5,而按照新的路由协议,路由器node_0将会让主机host 1直接访问本地主机host 2.在这种特殊的情形下,分析网络数据包被丢弃的情况.图3 网络拓扑结构Fig.3 The topology of the network4.2 节点模型的选择网络结构模型中(见图3),所有客户主机节点模型采用OPNET软件,现有的名为ethernet_wkstn_adv的节点模型(见图4).4.3 业务量配置和仿真完成网络拓扑结构配置以及节点模型设计后,开始配置业务量和确定统计量,并运行仿真.本次仿真实验是选择被丢弃的数据包dropped data packets (bits/sec)作为统计量.图5是仿真结果,上面一组统计结果是采用标准路由协议情况下数据包被丢弃的情况,下面一组统计结果是采用新协议情况下数据包被丢弃的情况.从图5可见, 在新协议情况下,数据包被丢弃的要少.这是因为采用新协议时,路由器node_0让主机host 1直接访问本地主机host 2,网络负载要小,所以数据包被丢弃的要少. 图4 ethernet_wkstn_adv节点模型Fig.4 The model of the node ethernet_wkstn_adv图5 两种协议模式下网络中数据包丢失情况 (bits/sec)Fig.5 The dropped data packets under different protocols (bits/sec)5 结束语为了提高路由器工作效率,本文提出了将点对点策略引入路由算法的观点.分析表明,引入新的算法后,路由器工作效率可以得到提高,局域网内部主机访问外部网络的压力可以得到缓解.本文最后对新的协议进行了仿真, 仿真结果表明,在新的协议情况下,网络丢包率要小.但这只是理论分析的结果, 实际上,要真正实现这一新的协议,还有许多具体问题需要解决,比如,当内部多个主机都有相同的资源时,路由器应采用何种算法确定访问对象,再比如,引入新的点对点路由协议后与原来路由器如何兼容,等等.参考文献:[1] IETF RFC 4225. Mobile IP version 6 route optimization security design background[S].[2] BENINI L,MICHELI G D.Networks on chips: A new SoCparadigm[J].IEEE Comput,2002,35(1):70-78.[3] GRATZ P,KIM C,MCDONALD R,et al.Implementation and evaluation of on-chip network architectures[C]∥Pr oceedings of International Conference on Computer Design,2006:477- 484.[4] GOMEZ C,GOMEZ M E,LOPEZ P,et al.Reducing packet droppingin a bufferless NoC[C]∥Proceedings of the 14th International Euro-Par Conference on Parallel Processing,2008:899-909.[5] 李鹏,兰巨龙. 一种新型的可重构路由交换通用平台[J]. 计算机应用研究,2009,26(6):2016-2019.LI P, LAN J L. New reconfigurable general platform for routing/switching nodes[J].Appl Res Comput,2009,26(6):2016-2019.[6] 李黎,管晓宏,蔡忠闽,等.可重构网络系统的模型及体系结构[J].小型微型计算机系统,2009,30(4):637-641.LI L,GUANG X H,CAI Z M, et al. Reconfigurable network model and architecture[J].J Chin Comput Sys,2009,30(4):637-641.[7] 刘有耀,韩俊刚.一种星簇双环片上网络拓扑结构[J].西安电子科技大学学报, 2009, 36(6): 1063-1069.LIU Y Y, HAN J G. Star-cluster double-loop topology for the network-on-chip[J]. J Xi’an Univ of Elect Tech, 2009, 36(6): 1063-1069.[8] ROSTISLAV D, VISHNYAKOV V, FRIEDMAN, et al. An asynchronous router for multiple service levels networks on chip[C]∥Proceedings of the 11th IEEE International Symposium on Asynchronous Circuits and Systems, NewYork: IEEE CS Press, 2005:44-53.[9] 江海峰,钱建生,孙彦景.WSN中基于能量代价的能量优化路由算法[J]. 计算机科学, 2012, 39(1): 73-76.JIANG H F, QIAN J S, SUN Y J. Energy cost based energy optimized routing algorithm in WSN[J].Comput Sci, 2012, 39(1): 73-76.[10] 方效林,高宏,熊蜀光. 无线传感器网络高可靠低维护地理路由协议[J]. 通信学报, 2012, 33(5): 30-35.FANG X L, GAO H, XIONG S G. High-reliable low-cost geographical routing protocol in wireless sensor networks[J]. J Commu, 2012, 33(5): 30-35.。

高效点对点通信技术的研究与应用

高效点对点通信技术的研究与应用

高效点对点通信技术的研究与应用一、引言点对点通信技术是一种用于实现单个发送者到单个接收者之间的通信的技术。

该技术被广泛应用于通信网络、无线传感器网络和车辆通信系统等领域。

随着更高效的点对点通信技术的出现,它已经成为了解决实时通信和大规模数据传输的优选选择。

本文将介绍高效点对点通信技术的研究与应用。

二、点对点通信技术的基础2.1 OSI网络模型OSI网络模型是一个定义网络通信协议的参考模型,它把通讯系统分成七个层,每一层都定义了不同的协议。

点对点通信使用的协议主要在第四层,即传输层以及第五层,即会话层。

传输层的协议和UDP协议和TCP协议,UDP协议提供不可靠的、无连接的传输服务,而TCP协议提供可靠的、面向连接的传输服务。

会话层则是提供它们之间的通信。

2.2 点对点通信协议目前有很多种点对点通信协议。

典型的点对点通信协议有:HTTP协议和HTTPS协议,FTP协议,SMTP协议和SSH协议等等。

这些协议使用不同的技术和方法提供点对点通信功能。

三、点对点通信技术的应用3.1 P2P网络点对点网络(P2P网络)是一种由许多设备构成的互联网网络,代表了一种不同于传统的客户端 - 服务器模型的网络方案。

P2P网络的原理是一个节点可以充当服务器,同时也可以充当客户端,既可以发送数据,也可以接收请求和数据。

P2P网络在多媒体文件共享、VoIP、游戏和视频流媒体等领域得到广泛应用。

3.2 远程访问点对点通信技术可以被用于远程访问,如SSH协议和Telnet协议。

SSH协议是基于TCP/IP协议的安全远程登录协议,它支持远程执行命令、复制文件和加密流量。

Telnet协议也是一种远程访问协议,它通过TCP/IP协议转发数据,但是它不支持数据加密,不安全。

3.3 视频传输对于视频流传输和点对点视频会议,点对点通信技术是最好的选择。

P2P网络在这方面已经取得了一定的成果,它能够提供更高的流媒体质量和更少的延迟,这对于高清视频流传输是必不可少的。

基于Winsock技术实现点对点通信

基于Winsock技术实现点对点通信

V 1 1 No 4 o. 5 .
0c . oቤተ መጻሕፍቲ ባይዱ t 2 o6
基 于 Wisc nok技 术 实 现 点 对 点 通 信

摘 要

温 凯峰
( 应学 院 网络 中心 , 嘉 广东 梅州 5 4 1 ) 10 5
通 过 wi ok编程技术 , nc s 实现 了对基于 T P I C /P协议 的、 向连接 的流方 式套接字 网络通 信程序设计 , 面 阐述 了在
o i e a d gv h a i t o g t o e v ra d c in a sae rg a ma e b is c ’ c n ol rb n l n ie t e b sc h u hs fs r e n l tt n lt d p o m d y W n o k s o t l y VB. n e r r r e
完全兼 容 . no k的开 发 工具 可 以在 V 、 B的编 Wisc CV
Sce服 务端 程 序 也是 一 样 的 , 客 户端 程 序 okt 当 连接 到 服务端程 序 时 , 就 建 立 了一个 双 向通 信连 也
译器 中找 到. 用 Wisc 件 可 以与 远 程 计算 机 利 nok控
线点对点通信的技术 支持 , 出了利用 V 给 B中的 Wi ok控件编写服务器端 、 nc s 客户端通信程序 的基本思路. 关键词 T P I Wi ok Sce; C /P; n c ;okt异步通信 ; s 客户机/ 服务器模 型
【 中图分 类号 】P9.4 T 330
【 文献标识码 】 A
( e t f ew r , aigU i r t, i o 10 5,hn ) C n eo tok J yn nv s y Me h u5 4 1 C ia r N i ei z
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{ ... connect (dlg - > clisock , ( sockaddr 3 ) &( dlg - > cli) , sizeof (dlg - > cli) ) ;/ / 连接服务器端
... closesocket (dlg - > clisock) ;/ / 断开连接后 ,关闭 socket AfxBeginThread( &thread1 ,0) ;/ / 重新启动本方监听线程 AfxEndThread(0) ;/ / 断开连接后 ,则停止连接线程
(2) 由于程序要对多个程序模块进行启动和停止 的调度 ,所以采用多线程技术 。设置如下几个线程 : 连接线程 、监听线程和新套接字收发线程 ,具体的线 程调度如图 1 所示 。
图 1 线程调度
(3) 监听线程中的 accept () 函数接收到连接 后 ,产生一个新的套接字 ,可利用该套接字与主叫方 通信 。原先用于监听的套接字必须要关闭 ,否则重新 启动监听线程时会出错 。
摘要 :首先分析了基于 UDP 协议和基于 TCP 协议的点对点通信方式的不同之处 ,并对两者进行了比较 ,然后重点介绍了 一种采用多线程技术的 、基于 TCP 协议的点对点通信的方法 。这一方法有效地保证了数据传输的可靠性 ,避免了对大量 数据报的判断过程 ,使程序更为简洁和稳定 ,效率更高 。 关键词 :UDP ;TCP ;点对点通信 ;多线程 中图分类号 :TN915. 04 ;TP393 文献标识码 :A
参考文献 : [1 ] 胡延平 ,陈志刚 ,等. 基于 UDP 协议的语音聊天系统的设
计与实现[J ] . 计算机工程与设计 ,2002 ,23 (12) :58~60. [2 ] 汪晓平 ,钟军 ,等. Visual C ++ 网络通信协议分析与应用
实现[M] . 北京 :人民邮电出版社 ,2003. [3 ] 林晓. 多线程在网络程序设计中的应用 [J ] . 华侨大学学
(1) 在请求通话时 ,必须发送“请求通话”数据报 , 该数据报应包含“请求通话”报头 ,对方收到后 ,发回 一个“确认”数据报 ,表示同意建立呼叫 ,这样双方才 能建立通信 。
收稿日期 :2005204204 作者简介 :黄焕 (19772) ,男 (壮族) ,广东湛江人 ,湛江海洋大学航海学院助教 ,硕士 ,研究方向 :数字通信和信号处理 ;黄赞 (19712) ,男 ,广东湛江人 ,湛江师范学院信息科技学院工程师 、讲师 ,硕士 ,研究方向 :机电控制与先进制造技术 。
点对点通信的软件都是基于 UDP 协议的 ,如 PP 点点 通等等 。
1 基于 UDP 协议的点对点通信方式的 讨论
在一些特定的场合下 ,如某些模拟软件需要模拟 电传通信和电话通信的过程 ,双方要建立通信必须要 完成请求通话和互换应答码的“握手”过程 ,以及通信 过程中存在“占线”问题 ,即一旦线路连接 ,其他终端 对通信双方的呼叫都不能成功 。通信结束后 ,双方断 开连接 ,也需要信息交互 ,如果采用基于 UDP 协议的 编程模型 ,而且收发双方各自只设置一个 socket ,则从 建立通信线路 ,互发数据到结束通信 ,程序设计应能 完成以下过程 :
(4) 由于双方在通信过程中 ,停止了监听线程 ,如 果其他终端用 connect ( ) 函数连接它们 ,连接不通会 返回错误信息 ,则表明对方正在通话 。
(5) 用 VC ++ 编制的程序关键代码如下 : ①服务器型 socket 的监听线程 :
UINT thread1 (LPVOID p)
{ ... dlg - > msgsock = accept ( dlg - > sock , ( sockaddr 3 ) &( dlg - > serv) , &(dlg - > addlen) ) ;/ / 等待连接 if (dlg - > msgsock = = INVALID- SOCKET) { dlg - > m-edit. SetWindowText (″Error accept″) ; } else / / 如果接收到连接
2005 年第 9 期
黄焕等 :一种基于 TCP 协议的点对点通信方法
63
(2) 在互发数据过程中 ,为了模拟“占线”过程 ,对 其他终端发来的“请求通话”数据报 ,通信双方都应拒 绝 ,即发“拒绝通话”数据报 。
(3) 通信结束 ,双方都应互发“断开连接”数据报 。 以上过程会带来如下弊端 : (1) 假设一个机房内共有 36 台终端机 ,每台机之 间的数据报来往非常多 ,UDP 协议又是无连接的 ,不 保证数据传输的可靠性 ,这样很可能造成数据报丢 失 。如果有一方发出“请求通话”数据报后 ,为模拟 “占线”过程 ,它对其他终端的请求通话一律拒绝 ,但 被呼叫方的“确认”数据报由于在传输过程中丢失了 , 则双方不能建立通信 。这样 ,往往就出现这台终端机 看起来没有和其他终端机通信 ,而对该机的呼叫却屡 屡被拒绝 。实际上 , 该机是在等待被呼叫方的“确 认”,而“确认”数据报已丢失 。 (2) 在双方通信过程中 ,如果其他 34 台机都向他 们发“请求通话”数据报 ,则正在通信的两台机都要进 行处理 ,即发“拒绝”通话数据报 ,这样使程序的效率 下降 。 (3) 双方通信结束 ,应互发“断开连接”数据报 ,但 若有一方收不到 ,则使该方以为没有断线 ,结果是其 他终端机对他的“请求通话”数据报被拒绝 。 当然也可以采用收发双方都设置两个 socket ,一 个 socket 负责发送“请求通话”数据报或接收“请求通 话”数 据 报 , 双 方 同 意 建 立 通 话 后 , 转 到 另 外 一 个 socket 上进行信息交流 ,这样 ,就可避免“拒绝”通话 数据报的判断过程 ,但是 ,对“请求通话”数据报和“断 开连接”数据报的丢失问题不能够很好地解决 。
2005 年第 9 期 文章编号 :100622475 (2005) 0920062203
计算机与现代化 J ISUANJ I YU XIANDAIHUA
一种基于 TCP 协议的点对点 ,黄 赞2
(1. 湛江海洋大学 ,广东 湛江 524000 ;2. 湛江师范学院 ,广东 湛江 524022)
A Point2to2point Communication Method Based on TCP Protocol
HUANG Huan1 ,HUANG Zan2
(1. Zhanjiang Ocean University ,Zhanjiang 524000 ,China ; 2. Zhanjiang Normal University ,Zhanjiang 524022 ,China)
2 基于 TCP 协议的点对点通信实现方法
(1) 收发双发都设置两个 socket 。一个 socket 是 服务器型 socket ,绑定本地地址 ,监听对应的端口 ,收 到连接请求 ,则与要求连接的客户端进行信息交流 , 由于要模拟出“占线”的情况 ,该服务器型 socket 只能 与一 个 客 户 端 连 接 。另 外 一 个 socket 是 客 户 端 型 socket ,在发射方进行呼叫时 ,用 connect () 函数与接收 方的服务器型 socket 连接 ,由于要模拟出“占线”的情 况 ,在用 connect () 函数连接的同时 ,应停止本方的服 务器型 socket 监听 。
Abstract :This paper analyzes the differences between point2to2point communication methods based on UDP protocol and TCP protocol at first , and compares the two methods at the same time , then emphasizes to introduce a point2to2point communication method based on TCP protocol which adopts multi2thread technique. This method guarantees the reliability of data transmission efficiently , avoids the judgment for the mass data and makes the program more succinct , steady and efficiency. Key words :UDP ;TCP ;point2to2point communication ;multi2thread
{ closesocket (dlg - > sock) ;/ / 若接收到连接后 ,则关闭原先 用于监听的套接字 AfxBeginThread( &thread2 ,0) ;/ / 启动新套接字收发线程 AfxEndThread(0) ;/ / 停止本方监听线程
}
}
②连接线程 :
UINT thread(LPVOID v)
0 引 言
随着计算机网络的普及 ,通过网络进行信息交流 成为人们日常生活的一部分 ,为了保护自己的隐私 , 通过网络进行点对点的通信显得非常重要 。目前点 对点实时通信的软件很多 ,比如 NetMeeting、IPPhone 、 MediaRing 等等 ,这些软件都功能完善 、相对独立 ,但 不利于集成到自己开发的软件中 。有时为了把点对 点通信的功能集成到自己开发的软件当中 ,我们必须 自己动手编制程序 ,而选择基于何种协议的点对点通 信方式 ,是我们必须要考虑的问题 。在 TCP/ IP 协议 组中 ,TCP 是一种面向连接的协议 ,为用户提供可靠 的 、全双工的字节流服务 ,具有确认 、流控制 、多路复 用和同步功能 ,适于数据传输 。UDP 协议则是无连接 的 ,每个分组都携带完整的目的地址 ,各分组在系统 中独立传送 。它不能保证分组的先后顺序 ,不进行分 组出错的恢复与重传 ,因此 ,不保证传输的可靠性 。 但是 ,它提供高传输效率的数据报服务[1] ,大多数的
相关文档
最新文档