zoukankan      html  css  js  c++  java
  • 【TCP】面向连接的TCP概述

    TCP连接概述

        TCP是因特网运输层面向连接的(connection-oriented)可靠运输协议。之所以说它是面向连接的是因为
      一个应用进程向另外一个应用进程发送数据之前,两个进程必须先要“握手”(建立连接),初始化一些建立连
      接的TCP状态变量。

        TCP协议是在端系统中运行的,不会在中间的网络元素(路由器和链路层交换机)中运行,所以中间元素不
      会维持TCP连接状态。它的连接状态完全保留在两个端系统中。在实际中,中间路由器看到的只是数据包而不是
      连接。

        TCP连接提供的是全双工服务(full-duplex-service),并且TCP连接也是点对点(piont-to-piont)的,这
      就说明TCP连接是单个发送方与单个接收方之间的连接。在一次发送操作中,从一个发送方将数据传给多个接收
      方,即“多播”操作对TCP来说是不可能的。

        两个应用进程经过“三次握手”(three-way handshake)后建立TCP连接。连接建立后两个应用进程便可以
      相互发送数据了。

      

        如图所实,假设左边进程为客户进程,右边进程为服务器进程。
        客户进程通过套接字传递传递数据流。TCP将数据引导到该连接的发送缓存(send buffer)里(该缓存是
      TCP三次握手初期设置的缓存之一)。TCP会不时的从发送缓存里取出一块数据,为每块数据加上一个TCP
      首部,从而形成TCP报文段(TCP segment)。这些报文段被传递给下层的网络层,网络层再将报文段封装在
      IP数据报中。然后,IP数据报被发送到网络中。TCP在另一端接收到一个报文段后,该报文段就被放入该TCP连
      接的接收缓存中。应用程序再从此缓存中读取数据流。

        上文中说的TCP会不时的从发送缓存里取出一块数据,这里的不时在TCP规范里并没有提及确切时间,只是
      说在它“方便时”。TCP所取数据大小会受限于最大报文段长度(Maximum Segment Size,MSS)

        MSS通常根据最初确定的由本地发送主机发送的最大链路帧长度(所谓最大传输单元MTU)来确定。
        设置MSS时要保证一个TCP报文段(封装在IP数据报中在加上TCP首部,通常40个字节)适合单个链路层帧
        以太网和PPP链路层协议都具有1500字节的MTU,一次MSS的典型值为1460字节。
        需要注意:MSS是报文段里应用层数据的最大长度,不包括TCP首部


      此文为《计算机网络 自顶向下方法》学习笔记3

  • 相关阅读:
    CSUFT 1002 Robot Navigation
    CSUFT 1003 All Your Base
    Uva 1599 最佳路径
    Uva 10129 单词
    欧拉回路
    Uva 10305 给任务排序
    uva 816 Abbott的复仇
    Uva 1103 古代象形文字
    Uva 10118 免费糖果
    Uva 725 除法
  • 原文地址:https://www.cnblogs.com/myworld7/p/8364939.html
Copyright © 2011-2022 走看看