tcp服务

 

tcp提供面向连接,可靠的字节流服务

 tcp面向连接
   a. 两个tcp应用端在彼此交换数据前须建立tcp连接

 tcp可靠性
   a. 应用数据被分割成适合tcp的数据块,tcp传递给ip的信息单位称为报文段
   b. tcp发出一个段后,启动定时器,等待目的端确认收到这个报文段,如果不能及时收到一个确认,将重发这个报文段
   c. tcp收到发自tcp连接另一端的数据,它将发送一个确认,这个确 通常推迟几分之一秒
   d. tcp保持它首部和数据的效验和,这是一个端到端的检验和,目的是检测数据在传输过程中的变化,如果收到段的检验和有差错,tcp将丢弃这个报文段和不确认收到此报文段
   e. tcp报文段到达可能失序,如有必要,tcp将对收到的数据进行重新排 序,将收到的数据以正确的数据交给应用层
   f. tcp的接收端必须丢弃重复的数据
   g. tcp提供流量控制,tcp连接的每一方都有固定大小的缓冲空间,tcp接收端只允许另一端发送接收端缓冲区能接纳的数据,防止缓冲溢出

 tcp字节流
   a. 两端通过tcp连接交换8bit字节构成的字节流
   b. tcp不在字节流中插入记录标识符,称为字节流服务
   c. 一端将字节流放到tcp连接上,同样的字节流将出现在tcp连接的另一端

 tcp首部
   a. tcp数据被封装在一个ip数据报中
     a) ip首部(20字节)
     b) tcp首部(20字节)
     c) tcp数据

   b. tcp首部数据格式(20字节,不计可选字段)
     a) 16位源端口号  16位目的端口号
     b) 32位序号
     c) 32位确认序号
     d) 4位首部长度,保留6位
         URC,ACK,PSH,RST,SYN,FIN共6位
        16位窗口大小
     e) 16位检验和,16位紧急指针

   c.tcp首部数据
    a) 每个tcp段都包含源端和目的端的端口号,用于寻找发端和收端应用进程,这两个值加上ip首部中的源端ip地址和目的端ip地址唯一确定一个tcp连接
    b) 序号用来标识从tcp发端向tcp收端发送的数据字节流,它表示在这个报文段中的第一个数据字节
    c) 当建立新连接时,SYN标志变1
    d) 只有ACK标志为1时,确认序列号字段才有效
    e) TCP首部中有6个标志比特
        URG 紧急指针
        ACK 确认序号有效
        PSH 接收方应该尽快将这个报文段交给应用层
        RST 重建连接
        SYN 同步序号用来发起一个连接
        FIN 发送端完成发送任务
    f)  tcp流量控制由连接每一端通过声明的窗口大小来提供,窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节
    g) 检验和由发端计算和存储,由收端验证
    h) 紧急指针是一个正偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号
    i)  最长报文大(可选字段之一)指明本端能接收的最大长度的报文段

 

posted on 2012-10-08 17:05  kangbry  阅读(285)  评论(0编辑  收藏  举报

导航