zoukankan      html  css  js  c++  java
  • TCP:传输控制协议

    概述:

      书中采用了8章来介绍TCP,可见其重要性。TCP是一种面向连接的、可靠的字节流服务,也就是说两方要交换数据必须先建立一个连接。

      TCP的信息单位称为segment。TCP对字节流的内容不作任何解释,这项工作交给TCP连接双方的应用层去做。

      TCP为应用层提供全双工服务,即数据能在两个方向上独立地传输。

    TCP首部:

      TCP首部通常是20个字节加可选字段。它的前8位必须使源端口号和目的端口号,这是因为ICMP差错至少会返回除了IP首部外的前8个字节,这样方便检查差错对应于哪个连接。MSS为Maximum Segment Size,表示本端所能接收报文段的最大长度。

      TCP首部中有6个标志比特,分别为URG(urgent pointer)、ACK(确认序号有效)、PSH(接收方应尽快将此报文交给应用层)、RST(重建连接)、SYN(同步序号,用来发起连接)、FIN(结束)。

    TCP连接的建立与终止:

      TCP连接的建立通过three-way handshake。连接的确认序号ack是上次成功收到的数据字节序号加1。而连接的终止要通过4次握手,因为TCP是全双工的,每个方向必须单独地进行关闭。

      Half-close指连接的一端在结束它的发送后还能接收来自另一端的数据。

      MSL(Maximum Segment Lifetime)指报文段最大生存时间。2MSL等待状态使指在结束连接后2MSL时间内双方的用于此次连接的端口号不可用,因为这样可以让TCP发送最后的ACK以防ACK丢失,一来一回即2MSL。

    复位报文段:

      产生复位(RST)的一种常见情况是当连接请求到达时,目的端口没有进程正在听。

      终止一个连接的正常方式是发送一个FIN,这称为有序释放(orderly release),发送复位报文段来释放一个连接则称为异常释放(abortive release)。收到RST的一方不会有任何响应,它只是终止连接并通知应用层连接复位。

      Half-open是指一方已经关闭或异常终止连接而另一方却还不知道。

    随想:

      今天突然在想,怎么样才能获得终极的自由呢?我觉得是靠技术。富有的商人受到顾客、市场的约束,有威望的政客受到时局、民意的约束,普通人受到人际关系、信息洪水的约束。尤其在这个网络高度发达的时代,你不知道自己的信息是否被人所窥探。

      古代游侠凭借武艺行走江湖,可以不受贪官酷吏的约束;贵族墓穴通过精妙的机关,避免盗墓者扰其清净;黑客有了厉害的技术,才能在网络世界里任意逍遥。所以真正强大的黑客运用它们的技术,并不主要是为了钱财、名誉等等,而是为了对绝对自由的渴望和追求!

  • 相关阅读:
    MVC模式简单介绍
    Android AES加密算法及事实上现
    01背包问题
    C++继承经典样例
    [React] React Fundamentals: Using Refs to Access Components
    [React] React Fundamentals: Owner Ownee Relationship
    [React] React Fundamentals: State Basics
    [React] React Fundamentals: First Component
    [Javascript] Lodash: Refactoring Simple For Loops (_.find, _.findLast, _.filter)
    [Javascript] Create an Array concatAll method
  • 原文地址:https://www.cnblogs.com/justforfun12/p/4967654.html
Copyright © 2011-2022 走看看