精华内容
参与话题
问答
  • Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
  • 我们之前介绍过TCP的连接比UDP连接复杂,也比较安全,但是我们想知道它是如何保证这些数据的安全的?数据的发送先后有什么秘诀呢?接下来我就一一去总结这些细节的问题。 02 保证数据安全的方法 TCP主要提供了...

    TCP的可靠性传输是如何保证的

    系统总结TCP连接中,它是如何保证数据的传输

    在这里插入图片描述

    01 前言


    我们之前介绍过TCP的连接比UDP连接复杂,也比较安全,但是我们想知道它是如何保证这些数据的安全的?数据的发送先后有什么秘诀呢?接下来我就一一去总结这些细节性的问题。

    在这里插入图片描述

    02 保证数据安全的方法


    TCP主要提供了检验和、序列号/确认应答、超时重传、最大消息长度、滑动窗口控制等方法实现了可靠性传输。

    检验和

    通过检验和的方式,接收端可以检测出来数据是否有差错和异常,假如有差错就会直接丢弃TCP段,重新发送。TCP在计算检验和时,会在TCP首部加上一个12字节的伪首部。检验和总共计算3部分:TCP首部、TCP数据、TCP伪首部
    在这里插入图片描述

    序列号/确认应答

    这个机制类似于问答的形式。比如在课堂上老师会问你“明白了吗?”,假如你没有隔一段时间没有回应或者你说不明白,那么老师就会重新讲一遍。其实计算机的确认应答机制也是一样的,发送端发送信息给接收端,接收端会回应一个包,这个包就是应答包。

    在这里插入图片描述

    上述过程中,只要发送端有一个包传输,接收端没有回应确认包(ACK包),都会重发。或者接收端的应答包,发送端没有收到也会重发数据。这就可以保证数据的完整性。

    超时重传

    超时重传是指发送出去的数据包到接收到确认包之间的时间,如果超过了这个时间会被认为是丢包了,需要重传。那么我们该如何确认这个时间值呢?

    我们知道,一来一回的时间总是差不多的,都会有一个类似于平均值的概念。比如发送一个包到接收端收到这个包一共是0.5s,然后接收端回发一个确认包给发送端也要0.5s,这样的两个时间就是RTT(往返时间)。然后可能由于网络原因的问题,时间会有偏差,称为抖动(方差)。

    从上面的介绍来看,超时重传的时间大概是比往返时间+抖动值还要稍大的时间。

    在这里插入图片描述

    但是在重发的过程中,假如一个包经过多次的重发也没有收到对端的确认包,那么就会认为接收端异常,强制关闭连接。并且通知应用通信异常强行终止。

    最大消息长度

    在建立TCP连接的时候,双方约定一个最大的长度(MSS)作为发送的单位,重传的时候也是以这个单位来进行重传。理想的情况下是该长度的数据刚好不被网络层分块。
    在这里插入图片描述

    滑动窗口控制

    我们上面提到的超时重传的机制存在效率低下的问题,发送一个包到发送下一个包要经过一段时间才可以。所以我们就想着能不能不用等待确认包就发送下一个数据包呢?这就提出了一个滑动窗口的概念。

    在这里插入图片描述

    窗口的大小就是在无需等待确认包的情况下,发送端还能发送的最大数据量。这个机制的实现就是使用了大量的缓冲区,通过对多个段进行确认应答的功能。通过下一次的确认包可以判断接收端是否已经接收到了数据,如果已经接收了就从缓冲区里面删除数据。

    在窗口之外的数据就是还未发送的和对端已经收到的数据。那么发送端是怎么样判断接收端有没有接收到数据呢?或者怎么知道需要重发的数据有哪些呢?通过下面这个图就知道了。

    在这里插入图片描述

    如上图,接收端在没有收到自己所期望的序列号数据之前,会对之前的数据进行重复确认。发送端在收到某个应答包之后,又连续3次收到同样的应答包,则数据已经丢失了,需要重发。

    拥塞控制

    窗口控制解决了 两台主机之间因传送速率而可能引起的丢包问题,在一方面保证了TCP数据传送的可靠性。然而如果网络非常拥堵,此时再发送数据就会加重网络负担,那么发送的数据段很可能超过了最大生存时间也没有到达接收方,就会产生丢包问题。为此TCP引入慢启动机制,先发出少量数据,就像探路一样,先摸清当前的网络拥堵状态后,再决定按照多大的速度传送数据。

    此处引入一个拥塞窗口:

    发送开始时定义拥塞窗口大小为1;每次收到一个ACK应答,拥塞窗口加1;而在每次发送数据时,发送窗口取拥塞窗口与接送段接收窗口最小者。

    慢启动:在启动初期以指数增长方式增长;设置一个慢启动的阈值,当以指数增长达到阈值时就停止指数增长,按照线性增长方式增加至拥塞窗口;线性增长达到网络拥塞时立即把拥塞窗口置回1,进行新一轮的“慢启动”,同时新一轮的阈值变为原来的一半。

    在这里插入图片描述

    03 小结


    其实上面所说的知识在学校也学过,但是重来不会认真对待这些看似没有用的知识,所以现在就好好总结一下了。对于网络优化的部分可以参照上面的方法来进行优化,可以利用这些方法提供高速、可靠的通信服务。

    参考文章

    • 图解TCP/IP
    • TCP是如何保证数据的传输

    在这里插入图片描述

    展开全文
  • 传输控制协议,是一个安全可靠的互联网协议,需要通信的主机之间需要先建立正确的链接,才能够进行通信,并且改协议能够保证数据传输稳定(必须的保证信息发送到一台主机,由该主机确认之后才能发送下一条信息),...

    一、TCP/IP协议
    传输控制协议,是一个安全可靠的互联网协议,需要通信的主机之间需要先建立正确的链接,才能够进行通信,并且改协议能够保证数据传输稳定性(必须的保证信息发送到一台主机,由该主机确认之后才能发送下一条信息),另外该协议也能保证数据传输的有序性(先发送的信息一定先到达)。一般基于C/S架构,存在服务器客户端模式。

    应用领域: 语音通话,视频会议
    通信:Socket(套接字),实际上就是由IP地址跟端口号的结合,通过Socket对象可以实现两台主机之间的通信;Socket分为服务端Socket(java.net.ServerSocket),以及客户端Socket(java.net.Socket)

    二、UDP协议
    User Diagram Protocol(用户数据报协议),是一个不安全的网络协议,不需要双方之间建立联系,也不保证信息传输的有序性(有可能后发消息先到),传输效率比TCP/IP更高.没有专门服务器和客户端,只有发送端和接收端
    通信

    /**
     * 发送方
     * @author mrchai
     *
     */
    public class Sender {
    
        public static void main(String[] args) throws IOException {
            //创建一个数据报的网络通道(创建物流公司)
            DatagramSocket ds = new DatagramSocket();
    
            //准备需要传输的数据(货物)
            String msg = "今天天气真好";
            //将需要发送的数据打包成数据报包(打包货物)
            DatagramPacket packet = new DatagramPacket(
                msg.getBytes(), 		//需要被发送的数据的字节数组
                msg.getBytes().length, 	//发送的数据长度(字节数组长度)
                InetAddress.getByName("localhost"),  //接收方的ip
                1025	//接收方的端口				
            );
            //发送数据报包(投递包裹)
            ds.send(packet);
            //关闭通道
            ds.close();
        }
    }
    
    
    
    
    
    
    /**
     * 接收方
     * @author mrchai
     *
     */
    public class Receiver {
    
        public static void main(String[] args) throws IOException {
            //创建一个数据报的网络通道,绑定到指定端口
            DatagramSocket ds = new DatagramSocket(1025);
    
            //声明字节数组,用于存储接收的数据
            byte[] b = new byte[1024];
            //准备数据报包(空包)
            DatagramPacket packet = new DatagramPacket(b, b.length);
    
            //通过循环可以不断接收发送到当前地址和端口的数据报包
            while(true) {
                //接收数据到数据报包中
                ds.receive(packet);
                //接受到的数据(字节数组)实际长度
                int len = packet.getLength();
                //将字节数组转换为字符串
                String s = new String(b, 0, len);
                //获取发送方的ip地址
                String ip = packet.getAddress().getHostAddress();
                System.out.println("收到来自【"+ip+"】消息:"+s);
            }
        }
    }
    
    
    展开全文
  • TCP传输相比于UDP传输,其更具有可靠性,安全性。但是传输效率与速度都比UDP要稍逊一筹。不过TCP协议自身是保证其效率及性能的。 TCP协议保证高性能的方式有: 滑动窗口 快速重传 延迟应答 捎带应答 滑动窗口 ...

    TCP高性能的保证

    TCP传输相比于UDP传输,其更具有可靠性,安全性。但是传输效率与速度都比UDP要稍逊一筹。不过TCP协议自身是保证其效率及性能的。

    TCP协议保证高性能的方式有:

    • 滑动窗口
    • 快速重传
    • 延迟应答
    • 捎带应答

    滑动窗口

    在保证TCP传输的可靠的性的时候,其中有一条就是确认应答。倘若是每发送一条数据,就等待一次ACK应答的话。大量的时间就会浪费在数据的往返上,这样性能会大大降低。如果能够一次发送多条数据,就可以大大的提高性能(实质是将多个数据等待的ACK响应时间重叠)。

    窗口大小指的是无需等待ACK应答可发送的数据最大值。
    这里写图片描述
    这里写图片描述
    如图,假设窗口大小为4000。那么就是是说图上1001~5001之间的数据是可以一次性全部发送,并且不需要等待ACK响应的。当发送完这4000的数据后,此时等待。等到ACK响应中确认收到1001~2000的数据时,滑动窗口右移。
    这里写图片描述

    以此类推。滑动窗口内部的数据都是已经发送但是没有收到ACK应答的数据。滑动窗口左侧的都是已经收到了ACK应答的数据。滑动窗口右侧是未发送的数据。

    操作系统维护滑动窗口时,需要开辟一个发送缓冲区,缓冲区内的记录了没有被应答的数据。只有去确认过应答的数据才能够被缓冲区删除掉。

    滑动窗口处理丢包问题

    丢包问题主要有两种情况:

    1. 发送端发送的数据丢包
    2. 接收端的ACK响应丢包
    发送端发送的数据丢包

    这里写图片描述

    这里1001~2000的数据报文丢失,此时发送端并不知道,继续发送滑动窗口内的报文。这时候接收到了三条重复的ACK响应(TCP协议规定,收到三条相同的ACK响应就出发重传)。此时重传1001~2000的数据报文。重传完毕后,等待接收端的响应。此时接收端响应为下一条是6001的数据报文,也就是说在2001~6000的报文都接收到了,这段报文被放到了接收端的接收缓冲区中。那么此时滑动窗口继续移动,发送端继续发送。

    这个接收到三个重复的ACK响应,就开始重传响应所要求的报文的机制就是快重传速机制。

    注:快重传机制与超时重传机制不同,超时重传机制应用于没有任何一条ACK响应收到,而超时时间已经到达,则出发超时重传;而快速重传机制是接收到了重复的三条ACK响应才触发。两者缺一不可!!
    接收端ACK响应丢包

    这里写图片描述

    接连三条的ACK响应都丢包,但是第四条ACK响应到达。此时并不会影响发送端的发送。因为ACK响应的是下一条数据包是4001,这意味着接收端已接收到前面的所以报文数据。所以接收端ACK响应丢包其实对发送端发送的影响并不是那么大,后续的ACK响应能够处理好这个问题。

    延迟应答

    我们知道,TCP传输的效率是由接收端的窗口大小决定。窗口越大,网络的吞吐量就越大,传输效率就越高。在避免网络阻塞的前提下进程提高传输效率。 而窗口大小就是每次接收端接收到数据后,发送 ACK响应中保存的一个字段。

    比如说接收端接收缓冲区起初大小为 1 M,发送端发送500K的数据供接收端处理,接收端收到后,立刻进行ACK应答,此时的窗口大小应该是500K。倘若接收端处理刚刚接收的500K数据速度很快,在ACK应答还没有到达的时候已经处理完了,这个时候实际上窗口大小是1M,但是由于响应的过快,发送端收到ACK响应时默认的窗口大小是500K,这就变相的浪费了500K的空间。如果能够在收到数据时,延迟一会再应答,那么可能就将一些简易处理的数据已经处理完毕了,这样的话,使得窗口大小变大,从而增加传输的效率。

    延迟应答的规则:

    • 数量限制:每个N个包就应答一次
    • 时间限制:超过最大延迟时间就应答一次

    具体的数量以及时间限制与操作系统有关。一般情况数量取 2,最大延迟时间取200ms。

    捎带应答

    在两主机之间通信时,常常采用捎带应答的方式来提高效率。而ACK响应常常伴随着数据报文共同传输。比如说TCP连接的三次握手时,在服务器收到SYN请求报文后,也会给客户端发送SYN请求,这时候服务器对于刚才客户端SYN请求的ACK应答就随着服务器发送的SYN请求一并过去,这个过程就是捎带应答。


    欢迎大家共同讨论,如有错误及时联系作者指出,并改正。谢谢大家!

    展开全文
  • TCP与UDP区别

    2018-01-19 17:02:54
    TCP连接是由4个值来识别的: TCP是面向...UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发如何保证UDP的连接可靠? 本人想法,仅供参考:如果不

    TCP连接是由4个值来识别的: <源IP地址、源端口号、目的IP地址、目的端口号>

    • TCP是面向连接的、可靠的 
      其实网络的不安全不稳定特性,无论多少次握手都不能保证连接的可靠性 
      但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性

    • UDP 无连接的、不可靠 
      UDP传送数据前并不与对方建立连接,对接收到的数据也不发送确认信号,发送端不知道数据是否会正确接收,当然也不用重发



    如何保证UDP的连接可靠性?
      本人想法,仅供参考:如果不是特别注重UDP的可靠性,像教师发作业这样的场景丢失一两个是完全可以理解的,大不了老师在多发几次,但是肯定有一只收不到的机子。。。当然了,我们如果想要确保UDP的可靠性,我想到的方法是给每个UDP添加一个不同的uid,通过uid来返回是否接收到


    NAT穿透技术

    NAT(Network Address Translation,网络地址转换)是一种网络地址翻译技术,将内部私有IP地址改变成可以在公网上使用的.

    NAT


    NAT三种实现方式

    • 静态地址转换:一个公网IP对应一个内部IP,一对一转换

    • 动态地址转换:N个公网IP对应M个内部Ip,不固定的一对一IP转换关系.同一时间,有M-N个主机无法联网.

    • 端口多路复用:对外只有一个公网IP,通过端口来区别不同内部IP主机的数据.

    网关

    • 网关(gateway)能在不同协议间移动数据

    • 路由器(router)是在不同网络间移动数据 
      相当于传统所说的IP网关(IP gateway)

    三次握手

    一些名词

    • seq (Sequence Number)序列号,这是为了连接以后传送数据用的
    • ack(Acknowledgment Number)确认序列号,是对收到的数据包的确认,值是等待接收的数据包的序列号。
    • SYN synchronous 同步信号
    • ACK Acknowledgement 应答信号, 当 ACK=1时候表示ack字段有意义
    • SYN 和 ACK 也表示 TCP 的标志位?

    三次握手的步骤

    三次握手

    1. 客户端 发起握手,目的端点是 服务端 的端点 post_server 
      • 生成一个随机数作为它的初始化发送序号 x
      • 发出一个同步报文段,SYN=1,发送序号 seq=x
      • 并进入SYN_SEND状态,等待服务器确认
    2. 服务端监听到端口 post_server 上有连接请求,响应 
      • 生成一个随机数作为它的初始发送序号 seq = y
      • 发出同步报文字段并对主机 A 端口1的连接请求进行确认,发送ack=x+1
      • 即发送 SYN+ACK 包,此时服务器进入SYN_RECV状态
    3. 主机 A 
      • 发出对 服务端 端口 post_server 的确认,确认序号 ack=y+1,还有seq=x+1
      • 客户端和服务器进入ESTABLISHED状态,完成三次握手

    为什么采用3次握手而不是2次握手?

    • 第一次握手 客户端发,服务端 知道 客户端 可以 发消息
    • 第二次握手 服务端收和发,客户端 知道 服务端 可以 接收消息 和 发消息
    • 第三次握手 客户端收和发,服务端 知道 客户端可以 接收消息 和 发消息

    3 次是双向通信的最小值,也就是 SYN, SYN ACK, ACK ,两个发送、两个接收 ,其中第二次把接收和发送合在一起了

    如果两次握手的话,客户端有可能因为网络阻塞等原因会发送多个请求报文,这时服务器就会建立连接,浪费掉许多服务器的资源。所以要增加第三次握手。

    第3次失败会怎么办?

    第三次失败,只有客户端处于成功状态(因为第2次服务器返回了ACK),服务器端没有接收到客户端的 ACK。

    这要分几种情况讨论:

    • In other words, if the ACK is dropped but the next packet is not dropped, then everything is fine.
      也就是说客户端发出的 ACK 丢失了,发出的 下一个数据包 没有丢失,则服务端接收到下一个数据包(这个数据包里也会带上 ACK 信息),能够进入正常的 ESTABLISHED 状态

    • 如果服务端和客户端都没有数据发送,或者服务端想发送数据(但是发不了,因为没有收到客户端的 ACK),服务器都会有定时器发送第二步SYN+ACK数据包,如果客户端再次发送ACK成功,建立连接。

      如果一直不成功,服务器肯定会有超时设置,超时之后会给客户端发RTS报文,进入CLOSED状态,防止SYN洪泛攻击。

    四次握手关闭连接

    四次握手

    1. 主机 A 关闭 A主机的 端口1 到 B主机的 端口2 的传输连接:

      • 应用程序通知 TCP 数据已经发送完毕时,关闭连接
      • TCP 向主机 B 发送一个带 FIN 附加标记的报文段(FIN 表示 finish),FIN=1,seq=x
    2. 主机 B 响应: 

      • 收到这个 FIN 报文段之后,并不立刻用 FIN 报文段回复主机 A,而是先向主机 A 发送一个确认序号 ,ACK=1,ack=x+1
      • 同时通知自己相应的应用程序,主机 A 方传输已经结束,对方要求关闭连接(先发送 ACK 的目的是为了防止这段时间内,主机 A 重传 FIN 报文段) 

      此时 A 到 B 方向上的传输连接已经关闭(看第4有TIME_WAIT状态等待2MSL,第2步的 A 到 B 并没有彻底关闭?),但是主机 B 到 A 还可以发送数据,连接处于半关闭的状态。(因为原来 TCP 是全双工的工作方式,只关闭了一端的连接)

    3. 主机 B 关闭 端口2到端口1的传输连接:

      • 应用程序告诉 TCP: 我要彻底地关闭连接
      • TCP 收到对最后数据的确认后,向主机 A 发送一个 FIN 报文段。FIN=1,seq=y,y 是 B 发送数据的最后字节的序号加1。ACK=1,seq=x+1。
    4. 主机 A 响应:

      • 收到这个 FIN 报文段之后,向主机 B 发送一个 ACK 表示连接彻底释放。ACK=1,ack=y+1
      • 主机B收到主机A的ACK报文段以后,就关闭连接;此时,主机A等待2MSL (Maximum Segment Lifetime)后依然没有收到回复,则证明主机 B已正常关闭,那好,主机A也可以关闭连接了。

    为什么连接的时候是三次握手,关闭的时候却是四次握手?

    TCP是全双工模式,关闭连接时,当 主机 B收到主机A的FIN报文时,仅仅表示主机 A不再发送数据了但是还能接收数据。

    主机 B也未必全部数据都发送给A了,所以B可以立即close;也可以发送一些数据给A后,再发送FIN报文给对方来表示同意现在关闭连接,因此, 主机 BACK和FIN一般都会分开发送。




    展开全文
  • 保证弹性云服务器的安全性,每个弹性云服务器创建成功后都会加入到一个安全组中,安全组默认Internet对内访问是禁止的 (Linux SSH“TCP22”端口、Windows RDP “TCP3389”端口 除外),所以需要在安全组中添加对应...
  • TCP和UDP的区别

    2019-04-12 11:36:02
    1、安全性2、0-RTT建立连接3、丢包恢复4、快速重启会话(支持网络切换) 一、TCP和UDP的区别? TCP是一种面向连接的、可靠的、基于字节流的传输层协议(类似于打电话); UDP是一种无连接的、不可靠的、基于数据...
  • JAVA面试题最全集

    2010-03-13 13:09:10
    1.Web安全性的考虑(表单验证、浏览器Basic方式的验证,应用程序的安全性,SSL,代码考虑) 2.简单介绍您所了解的MVC。 3.简单介绍所了解的XML。 4.文档和编码规范 5.Java中的分页、效率考虑。 6.简单介绍您所...
  • 网络和安全总结

    2019-03-09 11:54:40
    文章目录网络及安全Get和Post区别Https协议的实现长连接管理Socket的基本方法什么是XSS攻击,如何实现如何保证系统安全性netty可以干什么,NIO,BIO,AIO 都是什么啊有什么区别TCP /IP四层http 的工作流程...
  • 安全安装SQL Server

    2009-12-17 13:36:51
    不管它们是什么操作系统,数据库服务器需要特殊的管理以保证操作上的安全性。 良好的安全性开始于安装。现在让我们看一看如何才能在开始的时候就获得SQL Server的安全性。安装在开始安装之前,先定位到终端路由器...
  • TCP如何实现可靠传输

    2020-03-11 15:50:01
    1.TCP 和 UDP的区别: ...(4)UDP实时性好,效率高,适用场景:短消息传输,大量客户端,对数据安全性要求不高但实时性要求高 (5)TCP面向数据流;UDP面向数据报 2.TCP如何保证数据传输的可靠性? 1. 序列号,...
  • 软件测试经典面试题 (超实用)

    热门讨论 2012-02-16 13:48:08
    18、防火墙如何保证安全的?主要有哪些? 31 19、目前流行的操作的系统有哪些?请举例说明安装操作系统的注意事项? 33 20、简述一下c/s模式或者b/s模式? 33 21、TCP/UDP有哪些区别? 34 22、ISO模型?HUB、tch、...
  • 与Linux相比,当时没有其他的操作系统能够在保持总体拥有成本(Total Cost of Ownership,TCO)较低的同时还保证运行的安全性和稳定性。这个状况在今天依然没有太大的变化。单从技术的角度来评价的话,Linux是最出色的...
  • asp.net知识库

    2015-06-18 08:45:45
    如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值在2个页面之间 :要求不刷新父页面,并且不能用Querystring传值 Asp.net地址转义(分析)加强版 Web的桌面提醒(Popup) Using the Popup ...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    独立打包,保证可解压,内含大量源码,网上搜集而来。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、...
  • 思科网络技术学院教程CCNA1

    热门讨论 2013-05-28 06:37:53
     注释、提示、注意和警告——在文中,用简短的文字指出有趣的事实、节约时间的方法及一些重要的安全提示。  每章总结——每章最后是对本章关键概念的总结。它提供了本章的大纲,帮助学习。可读性  作者用相同的...
  • 8.9/运行安全性:防火墙和入侵检测系统/475 8.9.1/防火墙/475 8.9.2/入侵检测系统/479 8.10/小结/482 课后习题和问题/482 复习题/482 习题/483 讨论题/485 Ethereal实验/485 人物专访/485 第9章 网络管理 9.1/什么...
  • realplayer

    2010-08-18 10:57:02
    c) 媒体商业软件允许您接受并播放已经由内容供应商以数字方式保证安全的内容。 媒体商业软件会与您的计算机通过以下方式相互作用: 1. 硬件信息:为下载合适的软件,RealPlayer 必须将某些有关计算机硬件的匿名信息...
  • 47.在 java 程序中怎么保证多线程的运行安全? 48.多线程锁的升级原理是什么? 49.什么是死锁? 50.怎么防止死锁? 51.ThreadLocal 是什么?有哪些使用场景? 52.说一下 synchronized 底层实现原理? 53....
  • c# 加密和解密相关代码

    热门讨论 2011-09-06 11:04:59
    本实例介绍如何使用ROT13 算法加密和解密数 C#开发实战1200 例(第II卷) 832 据。实例运行效果如图19.3 所示。 图19.3 使用ROT13算法加密解密数据 关 键技术 本实例实现时,主要是用Convert 类的ToChar 方法来获取...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    独立打包,保证可解压,内含大量源码,网上搜集而来。一共10几包,每个包几十兆。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    独立打包,保证可解压,内含大量源码,网上搜集而来。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、...
  • 问题3-34:当局域网刚刚问世时,总线形的以太网被认为可靠比星形结构的网络好。但现在以太网又回到了星形结构,使用集线器作为交换结点。那么以前的看法是否有些不正确? 第4章 网络层 问题4-1:存在多种异构网络...
  • 问题4-28:当局域网刚刚问世时,总线形的以太网被认为可靠比星形结构的网络好。但现在以太网又回到了星形结构,使用集线器作为交换结点。那么以前的看法是否有些不正确? 问题4-29:什么是10 Mb/s以太网的5-4-3...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    独立打包,保证可解压,内含大量源码,网上搜集而来。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    独立打包,保证可解压,内含大量源码,网上搜集而来。一共10几包,每个包几十兆。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    独立打包,保证可解压,内含大量源码,网上搜集而来。 Visual.C++编程技巧精选500例源代码 内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、...

空空如也

1 2
收藏数 40
精华内容 16
关键字:

udp如何保证安全性