通过SCTP在java三大例外发送消息的例外问题,怎么解决

用户数据报协议(UDP)
UDP是简单的传輸层协议应用进程网一个UDP套接字写入一个消息,该消息随后被封装到一个UDP数据报该UDP数据报进而又被封装到一个IP数据报,然后发送到目嘚地UDP不保证UDP数据报会到达其最终目的地,不保证各个数据报的先后顺序跨网络后保持不变也不保证每个数据报只到达一次。
我们使用UDP進行网络编程所遇到的问题是它所缺乏的可靠性如果一个数据报到达了其最终的目的地,但是校验和检测发现有错误或者该数据报在網络传输过程中被丢弃了,它就无法被投递给UDP套接字也不会被源端自动重传。如果想确保一个数据报到达其目的地可以用程序中添置┅大堆特性:来自对端的确认、本端的超时与重传等
每个UDP数据报都有一个长度。如果一个数据报确定地到达其目的地那么该数据报的长喥将随数据一道传递给接收端的应用进程。我们已经提到过TCP是一个字节流协议没有任何记录边界,这一点不同于TCP
我们也说UDP提供无连接嘚服务,因为UDP客户与服务器之间不必存在任何长期关系举例来说,一个UDP客户可以创建一个套接字并发送一个数据报给一个给定的服务器然后立即用同一个套接字发送另一个数据报给另一个服务器。同样地一个UDP服务器可以用同一个UDP套接字从若干个不同的客户接收数据报,每个客户一个数据报
由TCP向应用进程提供的服务不同于由UDP提供服务。首先TCP提供客户与服务器之间的连接。TCP客户先与某个给定服务器建竝一个连接再跨该连接与那个服务器交换数据,然后终止这个连接
其次,TCP还提供了可靠性当TCP向另一端发送数据时,它要求对端返回┅个确认如果没有收到确认,TCP就自动重传数据并等待更长时间在数次重传失败后,TCP才放弃如此在尝试发送数据上所花的总时间一般為4~10分钟
TCP含有用于动态估算客户端和服务器之间的往返时间的算法,以便它知道等待一个确认需要多少时间举例子来说,RTT在一个 局域网上夶约是几毫秒跨域一个广域网可能是数秒钟。另外因为RTT受网络的影响,TCP还持续估算一个给定连接的RTT
TCP通过给其中每个字节关联一个序列号对所发送的数据进行排序。举个例子来说假设一个应用写2048字节到一个TCP套接字,导致TCP发送2个字节:第一个分节所含数据的序列号为1~1024苐二个分节所含数据的序列号。(分节是TCP传递给IP的数据单元)如果这些分节非顺序到达,接收端TCP将先根据它们的序列号重新排序再把結果数据传递给接收应用。如果接收端TCP接收到来自对端的重复数据(譬如说对端认为一个分节已丢失并因此重传而这个分节并没有真正丟失,只是网络通信过于拥挤)它可以(根据序列号)判定数据是重复的从而丢弃重复的数据
UDP不提供可靠性,UDP本身不提供确认序列号,RTT估算超时和重传机制,如果某一个UDP数据报在网络中被复制两份副本就可能都递送到接收端的主机。同样地如果一个UDP客户发送两个數据报到同一个目的地,它们可能被网络重新排序颠倒顺序后到达目的地。UDP应用必须处理所有这些情况
再次TCP提供流量控制。TCP总是告知對端在任何时刻它一次能够对端接收多少字节的数据这称为通告窗口。在任何时刻该窗口指出接收缓冲区中当前可用的空间量,从而確保发送端发送的数据不会使接收缓冲区溢出该窗口时刻动态变化:当接收到来自发送端的数据时,窗口大小就减小但是当接收端应鼡从缓冲区中读取数据时,窗口大小就增大通告窗口大小减小到0是有可能的:当TCP对应的某个套接字的接收缓冲区已满,导致它必须等待應用从该缓冲区读取数据时方能从对端再接收数据。
UDP不提供流量控制让较快的UDP发送端以一个UDP接收端难以跟上的速率发送数据时非常容噫的。
最后TCP通信是全双工的这意味着一个给定的连接上应用可以在任何时刻在进出两个方向上既发送数据又接收数据。因此TCP必须为每個数据流方向跟踪诸如序列号和通告窗口大小等状态信息。建立一个全双工连接后需要的话可以把它转换成一个单工连接
流控制传输协議(SCTP)
SCTP提供的服务与UDP和TCP提供的类似。SCTP在客户和服务器之间提供关联并像TCP那样给应用提供可靠性、排序、流量控制以及全双工的数据传送。SCTP中使用“关联”这一词取代“连接”是为了避免这样的内涵:一个连接只涉及两个IP地址之间的通信一个关联指代两个系统之间的一个通信,它可能因为SCTP支持多宿而涉及不止两个地址
与TCP不同的是SCTP是面向消息的,它提供各个记录的按序递送服务与UDP一样,由发送端写入的烸条记录的长度随数据一道传递给接收端应用
SCTP能够在所连接的端点之间提供多个流,每个流各自可靠地按序递送消息一个流上某个消息的丢失不会阻塞同一关联其他流上的消息投递。这种做法和TCP正好相反就TCP而言,在单一字节流中任何位置的字节丢失都将阻塞该连接上其后所有数据的递送直到该丢失被修复为止。
SCTP还是提供多宿特性使得单个SCTP端点能够支持多个IP地址。该特性可以增强应对网络故障的健壯性一个端点可能有多个冗余的网络连接,每个网络有可能有各自接入因特网的基础设施连接当该端点与另一个端点建立一个关联后,如果它的某个网络或某个跨域因特网的通路发生故障SCTP就可以通过切换到使用已与该关联相关的另一个地址来规避所发生的故障

流控制传输协议SCTP 摘要 SCTP 被设计用来茬IP 网上传输PSTN 信令消息,但能有更广泛的用途 SCTP 是一个可靠的传输层协议,运行在无连接的包网络上(如IP 网)它为用 户提供下列服务: -- 确保(acknowledged)用户数据无差错,无重复的传送; -- 根据通路MTU 的限制进行用户数据的分段; -- 流内用户消息的顺序递交;(可选的)每个用户消息按到达順序

版权声明:本文为博主原创文章遵循

版权协议,转载请附上原文出处链接和本声明

    博文中,提到了添加端口到例外“例外”这个名词,在XP系统中存在Win7系统中没有叻这个名词,但这个功能依然是存在的

服务器上不同的协议是通过不同的端口进行服务的,默认服务器的防火墙并不是所有端口全开放嘚否则会被入侵破坏。那么当需要访问的时候防火墙就有可能阻止我们的某些访问,如果关闭防火墙电脑的安全性肯定会收到很大嘚影响。所以我们可以开放某些端口使其能够访问成功。

5.入站规则--新建规则

7.设置TCP端口输入端口号

9.对该规则应用的设置

10.对给规则命名和描述

11.完成后,可以看到我们设置添加的端口


  • “你的鼓励将是我创作的最大动力”

我要回帖

更多关于 java三大例外 的文章

 

随机推荐