zoukankan      html  css  js  c++  java
  • 学习笔记:08_26

    学习笔记:08_26

    TCP 黏包问题

    原因

    TCP 是一个基于字节流的传输服务(UDP 基于报文的),“流” 意味着 TCP 所传输的数据是没有边界的。所以可能会出现两个数据包黏在一起的情况。

    解决
    • 发送定长包。如果每个消息的大小都是一样的,那么在接收对等方只要累计接收数据,直到数据等于一个定长的数值就将它作为一个消息。
    • 包头加上包体长度。包头是定长的 4 个字节,说明了包体的长度。接收对等方先接收包头长度,依据包头长度来接收包体。
    • 在数据包之间设置边界,如添加特殊符号 标记。FTP 协议正是这么做的。但问题在于如果数据正文中也含有 ,则会误判为消息的边界。
    • 使用更加复杂的应用层协议。

    为什么三次握手

    【答案一】因为信道不可靠,而 TCP 想在不可靠信道上建立可靠地传输,那么三次通信是理论上的最小值。(而 UDP 则不需建立可靠传输,因此 UDP 不需要三次握手。)

    【答案二】因为双方都需要确认对方收到了自己发送的序列号,确认过程最少要进行三次通信。

    【答案三】为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。

    LinkedList源码:

    成员变量:

    ``

    transient int size = 0; // 当前列表的节点个数
    transient Node<E> first; // 第一个节点
    transient Node<E> last; // 最后一个节点
    

    构造方法

    ``

    /* 构造方法一 */
    public LinkedList() {
    }
    /* 构造方法二 */
    public LinkedList(Collection<? extends E> c) {
      this();
      addAll(c);
    }
    

    HTTP 的缺点

    1. 通信使用明文(不加密),内容可能会被窃听
    2. 不验证通信方的身份,因此有可能遭遇伪装
    3. 无法证明报文的完整性,所以有可能已遭篡改
  • 相关阅读:
    SSL JudgeOnline 1194——最佳乘车
    SSL JudgeOnline 1457——翻币问题
    SSL JudgeOnlie 2324——细胞问题
    SSL JudgeOnline 1456——骑士旅行
    SSL JudgeOnline 1455——电子老鼠闯迷宫
    SSL JudgeOnline 2253——新型计算器
    SSL JudgeOnline 1198——求逆序对数
    SSL JudgeOnline 1099——USACO 1.4 母亲的牛奶
    SSL JudgeOnline 1668——小车载人问题
    SSL JudgeOnline 1089——USACO 1.2 方块转换
  • 原文地址:https://www.cnblogs.com/liguo-wang/p/11419569.html
Copyright © 2011-2022 走看看