【TCP】⾯向连接的TCP概述
TCP连接概述
⾯向连接的(connection-oriented)可靠运输协议。之所以说它是⾯向连接的是因为    TCP是因特⽹运输层⾯向连接的(
  ⼀个应⽤进程向另外⼀个应⽤进程发送数据之前,两个进程必须先要“握⼿”(建⽴连接),初始化⼀些建⽴连
  接的TCP状态变量。
    TCP协议是在端系统中运⾏的,不会在中间的⽹络元素(路由器和链路层交换机)中运⾏,所以中间元素不  会维持TCP连接状态。它的连接状态完全保留在两个端系统中。在实际中,中间路由器看到的只是数据包⽽不是  连接。
全双⼯服务(full-duplex-service),并且TCP连接也是点对点(
点对点(piont-to-piont)的,这    TCP连接提供的是全双⼯服务(
  就说明TCP连接是单个发送⽅与单个接收⽅之间的连接。在⼀次发送操作中,从⼀个发送⽅将数据传给多个接收  ⽅,即“多播”操作对TCP来说是不可能的。
    两个应⽤进程经过“三次握⼿”(three-way handshake)后建⽴TCP连接。连接建⽴后两个应⽤进程便可以  相互发送数据了。
    如图所实,假设左边进程为客户进程,右边进程为服务器进程。
套接字传递传递数据流。TCP将数据引导到该连接的发送缓存(
发送缓存(send buffer)⾥(该缓存是    客户进程通过套接字
  TCP三次握⼿初期设置的缓存之⼀)。TCP会不时的从发送缓存⾥取出⼀块数据,为每块数据加上⼀个TCP
  ⾸部,从⽽形成TCP报⽂段(TCP segment)。这些报⽂段被传递给下层的⽹络层,⽹络层再将报⽂段封装在  IP数据报中。然后,IP数据报被发送到⽹络中。TCP在另⼀端接收到⼀个报⽂段后,该报⽂段就被放⼊该TCP连  接的接收缓存中。应⽤程序再从此缓存中读取数据流。
    上⽂中说的TCP会不时的从发送缓存⾥取出⼀块数据,这⾥的不时在TCP规范⾥并没有提及确切时间,只是
最⼤报⽂段长度(Maximum Segment Size,MSS)。
  说在它“⽅便时”。TCP所取数据⼤⼩会受限于最⼤报⽂段长度(
    MSS通常根据最初确定的由本地发送主机发送的最⼤链路帧长度(所谓最⼤传输单元MTU)来确定。
    设置MSS时要保证⼀个TCP报⽂段(封装在IP数据报中在加上TCP⾸部,通常40个字节)适合单个链路层帧    以太⽹和PPP链路层协议都具有1500字节的MTU,⼀次MSS的典型值为1460字节。
    需要注意:MSS是报⽂段⾥应⽤层数据的最⼤长度,不包括TCP⾸部。
tcp三次握手图解  此⽂为《计算机⽹络⾃顶向下⽅法》学习笔记3

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。