p2p原理
p2p的工作原理

p2p的工作原理
P2P(点对点)网络是一种分布式网络架构,允许互联网用户之间直接进行通信和共享资源,而无需通过中心化的服务器。
P2P网络的工作原理如下:
1. 用户节点加入网络:当一个新用户加入P2P网络时,它需要连接至少一个已知节点(种子节点)。
这些种子节点负责帮助新用户找到其他已连接节点。
2. 节点发现和连接:新用户通过与种子节点通信,获取其他已连接节点的信息,并与这些节点建立直接连接。
节点之间可以通过网络发现协议(如DHT或Gnutella协议)来找到其他节点。
3. 资源共享:一旦节点建立连接,它们可以开始共享自己的资源,例如文件、带宽或计算能力。
其他节点可以通过P2P协议请求并下载这些资源。
4. 路由和数据传输:当节点之间需要交换数据时,P2P网络使用分布式路由算法来确定最佳的数据传输路径。
这些路由算法可以基于距离向量、链路状态或有向无环图(DAG)等方式进行。
5. 数据验证:在接收到数据后,节点可能会采取一些验证机制来确保接收到的数据的完整性和正确性。
例如,通过校验和、哈希算法或数字签名等方式验证数据。
6. 弹性和鲁棒性:P2P网络通常具有天然的弹性和鲁棒性。
如果一个节点离线或停止工作,其他节点可以继续通过其他路径找到目标资源,并在网络中继续传输,从而减少了单一故障点的影响。
总体而言,P2P网络通过使所有节点都充当服务提供者和服务接收者的角色,实现了资源的共享和直接通信。
这种分布式的方式具有高度的可扩展性和鲁棒性,从而使得P2P网络成为一种非常灵活且高效的通信和资源共享方式。
p2p的原理

p2p的原理P2P(Peer-to-Peer)技术是一种去中心化的网络通信模式,其原理是将网络节点平等对待,所有的节点不再依赖一个中央服务器来进行通信和数据传输。
在P2P网络中,每个节点既是客户端又是服务器,它们可以直接与其他节点进行通信,同时也可以充当中转站来传输数据。
节点之间通过建立连接,相互交换和共享资源,使得每个节点都可以充当网络的接入点和提供者。
P2P网络的通信过程主要分为三个步骤:1. 节点发现:每个节点加入网络后,需要通过某种方式发现其他的节点,并与之建立连接。
常见的方法包括使用中央服务器进行节点列表的维护,或是使用分布式哈希表(DHT)等算法来实现节点的自动发现。
2. 连接建立:节点之间通过协议来建立连接,常用的协议包括TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。
连接建立后,节点可以直接进行数据传输和通信,不需要经过中央服务器进行转发。
3. 数据传输:节点之间可以通过直接连接来传输数据,也可以通过中继节点进行转发。
数据在P2P网络中会被分割成多个小块,然后分布在不同的节点上。
当节点需要获取某个数据块时,它可以从其他节点请求该块并进行下载,直到将完整的数据下载完成。
由于P2P网络的去中心化特性,它具有较高的可靠性和弹性。
即使网络中的某些节点无法正常工作或离线,其他节点仍然可以继续运行和提供服务。
同时,P2P网络也具有较好的扩展性,可以支持大规模的节点加入并提供更强大的计算和存储能力。
总的来说,P2P网络通过节点之间的直接连接和资源共享,实现了无需中央服务器的通信和数据传输,从而提供了一种高效、可靠且灵活的网络通信模式。
p2p流媒体的工作原理是什么

p2p流媒体的工作原理是什么P2P流媒体,即基于点对点(Peer-to-Peer)技术的流媒体传输,其工作原理如下:1. 用户加入网络:用户通过P2P流媒体应用程序加入P2P流媒体网络。
用户可以选择作为“初级用户”(只接收其他用户的数据)或“高级用户”(既接收其他用户的数据,也将自己的数据分享给其他用户)。
2. 资源搜索:用户通过P2P流媒体应用程序搜索所需的多媒体资源。
搜索结果通常包括了多个拥有该资源的用户。
3. 节点选择:根据用户的策略或算法,选择一个适合的资源提供节点(如拥有带宽较高的节点)。
4. 数据传输:用户通过与选择的资源提供节点建立连接,开始接收该资源的数据。
同时,用户也会将接收到的数据缓存下来,并将自己的数据传递给其他用户。
5. 缓存管理:用户的P2P流媒体应用程序会根据缓存空间的大小、资源的需求量等因素,对缓存中的数据进行动态调整和管理。
这样,其他用户就可以从该用户的缓存中获取数据,减少了对资源提供节点的依赖。
6. 数据碎片传输:P2P流媒体将整个资源文件切分成多个小的数据块(或称为分块)。
用户可以同时从多个节点获取这些数据块,不需要按顺序获取整个资源文件。
这种基于数据块的传输使得用户可以更快地开始播放流媒体内容,而不需要等待整个资源下载完成。
7. 动态加入或离开P2P网络:用户可以根据需要随时加入或离开P2P流媒体网络。
离开时,用户的资源也会从网络中移除。
这样,网络中的资源提供节点会根据网络中用户的数量和需求量的变化,动态地调整资源的分发和传输。
总的来说,P2P流媒体的工作原理就是通过用户之间的协作和互相分享资源,以提高视频、音频等流媒体内容的传输效率和质量。
p2p原理

p2p原理P2P原理。
P2P,即Peer to Peer,点对点网络,是一种去中心化的网络通信模型。
在P2P 网络中,每个节点既是客户端,又是服务器,可以直接与其他节点进行通信和资源共享,而无需经过中心化的服务器。
P2P网络的发展和应用已经深入到各个领域,如文件共享、视频点播、在线游戏等,其原理和特点也备受关注。
P2P网络的核心原理是去中心化和资源共享。
在传统的客户端-服务器模式中,所有的请求和响应都需要经过中心服务器,这样一来,服务器的负载会非常大,而且一旦服务器出现故障,整个系统就会瘫痪。
而P2P网络则通过节点之间直接通信,实现了去中心化,每个节点都可以充当服务器,从而分担了服务器的压力,提高了系统的稳定性和可靠性。
P2P网络的另一个重要特点是资源共享。
在P2P网络中,每个节点既是资源的使用者,又是资源的提供者,可以共享自己的资源,也可以获取其他节点的资源。
这种资源共享的方式,不仅提高了资源的利用率,还可以加快数据传输的速度,提高了网络的效率。
P2P网络的工作原理可以简单概括为以下几个步骤,首先,每个节点都会主动连接到网络中的其他节点,建立起连接关系;然后,每个节点会将自己拥有的资源信息注册到网络中,使其他节点可以找到并获取这些资源;接着,当一个节点需要某个资源时,它会向网络发送请求,其他拥有该资源的节点会响应这个请求,并将资源传输给请求节点;最后,节点之间会相互交换资源,从而实现资源共享和数据传输。
P2P网络的发展已经深入到各个领域。
在文件共享领域,P2P网络可以实现大规模的文件共享和传输,如BitTorrent、eMule等,极大地方便了用户之间的文件共享。
在视频点播领域,P2P网络可以实现高清视频的快速传输和播放,如PPStream、快播等,提高了视频点播的效率和质量。
在在线游戏领域,P2P网络可以实现玩家之间的实时通信和数据传输,提高了游戏的交互性和体验度。
总之,P2P网络作为一种去中心化的网络通信模型,具有很多优点,如提高了系统的稳定性和可靠性,提高了资源的利用率,加快了数据传输的速度,提高了网络的效率。
点对点技术(P2P)介绍

点对点技术(P2P)介绍点对点技术(Peer-to-Peer,简称P2P)是一种计算机网络通信模式,它允许网络中的每个节点(peer)既是客户端,又是服务器。
与传统的客户端-服务器模式不同,P2P网络中的节点可以直接与其他节点通信,而无需通过中央服务器进行中转。
P2P技术的出现,极大地改变了网络通信的方式,为用户提供了更高效、更灵活的网络体验。
一、P2P技术的基本原理P2P技术的基本原理是将网络中的每个节点都视为平等的,每个节点既可以提供服务,也可以使用其他节点提供的服务。
P2P网络中的节点可以直接与其他节点通信,无需经过中央服务器的中转。
当一个节点需要某种资源时,它可以通过搜索其他节点来获取所需资源,并直接从其他节点那里下载或获取。
这种直接的节点之间的通信方式,使得P2P 网络具有高效、灵活的特点。
二、P2P技术的优势1. 分布式架构:P2P网络中的节点分布在整个网络中,不存在单点故障,因此具有更高的可靠性和稳定性。
即使某个节点出现故障或离线,其他节点仍然可以继续提供服务。
2. 高效的资源共享:P2P网络中的每个节点都可以提供和获取资源,使得资源的利用率更高。
当一个节点需要某种资源时,它可以通过搜索其他节点来获取所需资源,而不需要依赖中央服务器的带宽和存储能力。
3. 灵活的网络拓扑:P2P网络中的节点可以动态加入和离开网络,网络拓扑结构可以根据节点的加入和离开自动调整。
这种灵活性使得P2P网络更适应大规模网络环境下的变化和扩展。
4. 低成本:P2P网络不需要中央服务器的支持,减少了服务器的成本和维护费用。
同时,P2P网络中的节点可以共享带宽和存储资源,降低了网络运营的成本。
三、P2P技术的应用领域1. 文件共享:P2P技术最早应用于文件共享领域,例如BitTorrent、eMule等。
用户可以通过P2P网络直接从其他用户那里下载所需的文件,而无需依赖中央服务器的带宽和存储能力。
2. 流媒体传输:P2P技术可以有效地解决流媒体传输中的带宽和延迟问题。
P2P应用的工作原理是

P2P应用的工作原理是1. 简介P2P(Peer-to-Peer)即点对点,它是一种分布式计算和通信模型。
在P2P网络中,每个参与者都可以充当客户端和服务器的角色,即可以同时提供和获取资源。
P2P应用是一种将计算和通信任务分散到多个节点(即对等方)的系统,这些节点可以直接相互通信,无需通过集中式服务器。
2. 工作原理P2P应用的工作原理可以通过以下几个方面来说明:2.1 发现和连接对等方P2P应用首先需要发现和连接其他对等方,这样才能建立通信和资源共享的基础。
一种常用的方法是使用中央服务器或网络传播来帮助对等方发现彼此。
当一个新的对等方加入P2P网络时,它会向中央服务器发送请求以获得其他对等方的信息。
之后,新的对等方将与其他已连接的对等方建立直接连接。
2.2 资源共享和传输在P2P网络中,对等方可以共享和传输各种资源,例如文件、音频、视频等。
资源的共享是基于对等方之间直接的连接和传输。
当一个对等方需要某个资源时,它可以向其他对等方发出请求。
其他对等方会检查自己所拥有的资源,如果有匹配的资源,将返回相应的数据。
2.3 数据分发和负载均衡P2P应用中的数据分发和负载均衡是保证系统高效运行的关键。
P2P应用可以通过多种方式进行数据分发和负载均衡。
一种常用的方法是通过将文件分割成多个小块,然后通过不同的对等方进行传输。
这样可以减轻单个节点的负荷,并提高系统的性能。
2.4 数据安全和隐私保护P2P应用在数据安全和隐私保护方面也有一定的考虑。
由于P2P网络的分布式性质,数据可能会经过多个对等方传输。
因此,对于敏感数据的传输,需要使用加密技术进行保护。
同时,P2P应用还需要考虑用户的隐私保护,例如匿名传输和身份验证机制等。
3. P2P应用的优势和应用领域P2P应用的工作原理赋予了它一些独特的优势和适用性,在以下几个方面得到广泛应用:3.1 分布式资源共享P2P应用可以实现分布式资源共享,使得用户能够从其他对等方获取资源,如文件、音频、视频等。
p2p的原理

p2p的原理
P2P网络是一种去中心化的网络体系结构,其中所有节点都可
以扮演客户端和服务器角色,实现资源共享和信息传输。
它工作的原理可以通过以下步骤来解释:
1. 发现节点:每个节点在P2P网络中需要发现其他节点的存在。
这可以通过预设的节点列表、中央服务器或其他节点帮助实现。
节点将自己的IP地址和端口号注册到网络中,其他节
点可以通过这些信息找到它。
2. 建立连接:当一个节点发现其他节点后,它需要与其他节点建立连接。
为了建立连接,节点之间必须通过协议来进行握手,以建立通信的基础。
在握手过程中,节点交换关于其能力和可用性的信息。
3. 资源共享:一旦节点之间建立了连接,它们可以共享资源。
这些资源可以是文件、带宽、计算能力等。
当一个节点需要资源时,它可以请求其他节点提供。
其他节点可以选择提供所需的资源或拒绝请求。
4. 路由和传输:在P2P网络中,数据和信息不是通过中央服
务器传输,而是通过多个节点之间的路由传输。
节点可以根据节点之间的连接状态和其他相关因素决定将数据传输到哪个节点上。
5. 数据验证:由于P2P网络中,每个节点都可以充当服务器
角色,因此数据的可靠性和准确性变得尤为重要。
节点可以使
用多种技术(例如哈希校验、数字签名等)来验证数据的完整性,并确保数据在传输过程中没有被篡改。
P2P网络的工作原理使得数据和资源可以在参与网络的所有节点之间进行共享,提高了网络的可靠性和灵活性。
与传统的中心化网络相比,P2P网络可以更好地处理大量用户和高负载情况下的数据传输,并且在某些情况下具有更高的安全性和鲁棒性。
p2p的应用原理

p2p的应用原理什么是p2pP2P(Peer-to-Peer)是一种点对点的网络通信方式,它允许互联网用户直接与其他用户进行通信和共享资源,而无需通过中央服务器。
在P2P网络中,每个节点(peer)既可以充当服务的提供者,也可以充当服务的请求者,具有对等的地位。
P2P的应用原理P2P的应用原理主要涉及以下几个方面:1.节点发现:在P2P网络中,节点需要通过一定的方式来发现其他节点。
通常,节点会加入一个特定的网络,如某个P2P软件的网络,通过网络中的其他节点获取网络拓扑结构信息并建立连接。
2.资源共享:P2P网络的核心目标之一是实现节点间的资源共享。
节点可以将自己的资源(如文件、带宽等)提供给其他节点,也可以从其他节点获取资源。
通过共享和传播,P2P网络可以实现更高效的资源利用。
3.分布式存储:P2P网络通常会将数据分布存储在网络的多个节点中。
这种分布式存储方式可以提高数据的可靠性和可用性,即使某些节点离线或故障,其他节点仍然能够提供数据。
4.路由与转发:P2P网络中,节点之间需要进行消息传递。
为了使消息能够准确地传递到目标节点,P2P网络需要实现路由和转发功能。
节点会根据网络拓扑结构和节点存储的路由信息,选择最优路径将消息传递到目标节点。
5.自适应机制:P2P网络需要应对大量的动态变化,如节点加入、离开、带宽变化等。
为了适应这些变化,P2P网络需要实现自适应机制,即根据网络状态和节点负载情况,动态调整路由、资源分配等策略。
P2P的应用场景P2P技术在各个领域都有广泛的应用,以下列举几个常见的应用场景:1.文件共享:P2P网络可以实现高效的文件共享,用户可以通过P2P软件自由分享和下载各种类型的文件。
2.流媒体传输:P2P网络可以实现高质量的流媒体传输,用户可以通过P2P技术观看在线视频、直播等。
3.在线游戏:P2P网络可以提供低延迟和高带宽的连接,适用于在线游戏等需要实时通信的场景。
4.分布式计算:P2P网络可以将大规模计算任务分散到各个节点,实现分布式计算和资源共享。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P2P之UDP穿透NAT的原理与实现(附源代码)P2P 之 UDP穿透NAT的原理与实现(附源代码)原创:shootingstars参考:/draft-ford-midcom-p2p-01.txt谁先动,谁吃亏论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。
呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。
首先先介绍一些基本概念:NAT(Network Address Translators),网络地址转换:网络地址转换是在I P地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。
NAT分为两大类,基本的NAT和NAPT(Network Address/Port Translator)。
最开始NAT是运行在路由器上的一个功能模块。
最先提出的是基本的NAT,它的产生基于如下事实:一个私有网络(域)中的节点中只有很少的节点需要与外网连接(呵呵,这是在上世纪90年代中期提出的)。
那么这个子网中其实只有少数的节点需要全球唯一的IP地址,其他的节点的IP地址应该是可以重用的。
因此,基本的NAT实现的功能很简单,在子网内使用一个保留的IP子网段,这些IP对外是不可见的。
子网内只有少数一些IP地址可以对应到真正全球唯一的IP地址。
如果这些节点需要访问外部网络,那么基本NAT就负责将这个节点的子网内IP转化为一个全球唯一的IP然后发送出去。
(基本的NAT会改变IP包中的原IP地址,但是不会改变IP包中的端口)关于基本的NAT可以参看RFC 1631另外一种NAT叫做NAPT,从名称上我们也可以看得出,NAPT不但会改变经过这个NAT设备的IP数据报的IP地址,还会改变IP数据报的TCP/UDP端口。
基本NAT的设备可能我们见的不多(呵呵,我没有见到过),NAPT才是我们真正讨论的主角。
看下图:Server S118.181.0.31:1235 |^ Session 1 (A-S1) ^ || 18.181.0.31:1235 | |v 155.99.25.11:62000 v ||NAT155.99.25.11|^ Session 1 (A-S1) ^ || 18.181.0.31:1235 | |v 10.0.0.1:1234 v ||Client A10.0.0.1:1234有一个私有网络10.*.*.*,Client A是其中的一台计算机,这个网络的网关(一个NAT设备)的外网IP是155.99.25.11(应该还有一个内网的IP地址,比如10.0.0.10)。
如果Client A中的某个进程(这个进程创建了一个UDP Soc ket,这个Socket绑定1234端口)想访问外网主机18.181.0.31的1235端口,那么当数据包通过NAT时会发生什么事情呢?首先NAT会改变这个数据包的原IP地址,改为155.99.25.11。
接着NAT会为这个传输创建一个Session(Session是一个抽象的概念,如果是TCP,也许S ession是由一个SYN包开始,以一个FIN包结束。
而UDP呢,以这个IP的这个端口的第一个UDP开始,结束呢,呵呵,也许是几分钟,也许是几小时,这要看具体的实现了)并且给这个Session分配一个端口,比如62000,然后改变这个数据包的源端口为62000。
所以本来是(10.0.0.1:1234->18.181.0.31:1235)的数据包到了互联网上变为了(155.99.25.11:62000->18.181.0.31:1235)。
一旦NAT创建了一个Session后,NAT会记住62000端口对应的是10.0.0. 1的1234端口,以后从18.181.0.31发送到62000端口的数据会被NAT自动的转发到10.0.0.1上。
(注意:这里是说18.181.0.31发送到62000端口的数据会被转发,其他的IP发送到这个端口的数据将被NAT抛弃)这样Client A就与Server S1建立以了一个连接。
呵呵,上面的基础知识可能很多人都知道了,那么下面是关键的部分了。
看看下面的情况:Server S1 Server S218.181.0.31:1235 138.76.29.7:1235| || |+----------------------+----------------------+|^ Session 1 (A-S1) ^ | ^ Session 2 (A-S2) ^| 18.181.0.31:1235 | | | 138.76.29.7:1235 |v 155.99.25.11:62000 v | v 155.99.25.11:62000 v|Cone NAT155.99.25.11|^ Session 1 (A-S1) ^ | ^ Session 2 (A-S2) ^| 18.181.0.31:1235 | | | 138.76.29.7:1235 |v 10.0.0.1:1234 v | v 10.0.0.1:1234 v|Client A10.0.0.1:1234接上面的例子,如果Client A的原来那个Socket(绑定了1234端口的那个UDP Socket)又接着向另外一个Server S2发送了一个UDP包,那么这个UDP包在通过NAT时会怎么样呢?这时可能会有两种情况发生,一种是NAT再次创建一个Session,并且再次为这个Session分配一个端口号(比如:62001)。
另外一种是NAT再次创建一个Session,但是不会新分配一个端口号,而是用原来分配的端口号62000。
前一种NAT叫做Symmetric NAT,后一种叫做Cone NAT。
我们期望我们的NAT是第二种,呵呵,如果你的NAT刚好是第一种,那么很可能会有很多P2P软件失灵。
(可以庆幸的是,现在绝大多数的NAT属于后者,即Cone NAT)好了,我们看到,通过NAT,子网内的计算机向外连结是很容易的(NAT相当于透明的,子网内的和外网的计算机不用知道NAT的情况)。
但是如果外部的计算机想访问子网内的计算机就比较困难了(而这正是P2P 所需要的)。
那么我们如果想从外部发送一个数据报给内网的计算机有什么办法呢?首先,我们必须在内网的NAT上打上一个“洞”(也就是前面我们说的在NAT上建立一个Session),这个洞不能由外部来打,只能由内网内的主机来打。
而且这个洞是有方向的,比如从内部某台主机(比如:192.168.0.10)向外部的某个I P(比如:219.237.60.1)发送一个UDP包,那么就在这个内网的NAT设备上打了一个方向为219.237.60.1的“洞”,(这就是称为UDP Hole Punching的技术)以后219.237.60.1就可以通过这个洞与内网的192.168.0.10联系了。
(但是其他的IP不能利用这个洞)。
呵呵,现在该轮到我们的正题P2P了。
有了上面的理论,实现两个内网的主机通讯就差最后一步了:那就是鸡生蛋还是蛋生鸡的问题了,两边都无法主动发出连接请求,谁也不知道谁的公网地址,那我们如何来打这个洞呢?我们需要一个中间人来联系这两个内网主机。
现在我们来看看一个P2P软件的流程,以下图为例:Server S (219.237.60.1)||+----------------------+----------------------+| |NAT A (外网IP:202.187.45.3) NAT B (外网IP:187.34.1.56) | (内网IP:192.168.0.1) | (内网IP:192.168.0.1) | |Client A (192.168.0.20:4000) Client B (192.168.0.10:40000)首先,Client A登录服务器,NAT A为这次的Session分配了一个端口600 00,那么Server S收到的Client A的地址是202.187.45.3:60000,这就是Client A的外网地址了。
同样,Client B登录Server S,NAT B给此次Session 分配的端口是40000,那么Server S收到的B的地址是187.34.1.56:40000。
此时,Client A与Client B都可以与Server S通信了。
如果Client A此时想直接发送信息给Client B,那么他可以从Server S那儿获得B的公网地址187.34.1.56:40000,是不是Client A向这个地址发送信息Client B就能收到了呢?答案是不行,因为如果这样发送信息,NAT B会将这个信息丢弃(因为这样的信息是不请自来的,为了安全,大多数NAT都会执行丢弃动作)。
现在我们需要的是在NAT B上打一个方向为202.187.45.3(即Client A的外网地址)的洞,那么Client A发送到187.34.1.56:40000的信息,Client B就能收到了。
这个打洞命令由谁来发呢,呵呵,当然是Server S。
总结一下这个过程:如果Client A想向Client B发送信息,那么Client A发送命令给Server S,请求Server S命令Client B向Client A方向打洞。
呵呵,是不是很绕口,不过没关系,想一想就很清楚了,何况还有源代码呢(侯老师说过:在源代码面前没有秘密 8)),然后Client A就可以通过Client B 的外网地址与Client B通信了。
注意:以上过程只适合于Cone NAT的情况,如果是Symmetric NAT,那么当Client B向Client A打洞的端口已经重新分配了,Client B将无法知道这个端口(如果Symmetric NAT的端口是顺序分配的,那么我们或许可以猜测这个端口号,可是由于可能导致失败的因素太多,我们不推荐这种猜测端口的方法)。
下面是一个模拟P2P聊天的过程的源代码,过程很简单,P2PServer运行在一个拥有公网IP的计算机上,P2PClient运行在两个不同的NAT后(注意,如果两个客户端运行在一个NAT后,本程序很可能不能运行正常,这取决于你的N AT是否支持loopback translation,详见http://midcom-p2p.sourceforge.ne t/draft-ford-midcom-p2p-01.txt,当然,此问题可以通过双方先尝试连接对方的内网IP来解决,但是这个代码只是为了验证原理,并没有处理这些问题),后登录的计算机可以获得先登录计算机的用户名,后登录的计算机通过send us ername message的格式来发送消息。