zoukankan      html  css  js  c++  java
  • 计算机网络(7)-----TCP协议概述

    传输控制协议(Transmission Control Protocol)

    概念

      一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。

    主要特点

      (1)TCP是面向连接的运输层协议。这就是说,应用程序在使用TCP协议之前,必须先建立TCP协议。在传送数据完毕后,必须释放已经建立的TCP连接。类似于“打电话”,需要先拨号建立连接,通话完之后要挂机释放连接。

      (2)每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的(一对一)。

      (3)TCP铍铜可靠交付的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按顺序到达。

      (4)TCP提供全双工通信。TCP允许通信双发的应用进程在任何时候都发送数据。

      (5)面向字节流。TCP中“流”(stream),指的是流入到进程或从进程流出的字节序列。“面向字节流”的含义是:虽然应用程序和TCP的交互式一次一个数据块(大小不等),但TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。

    TCP的连接

      TCP把连接作为最基本的抽象。

      TCP连接的端点叫做套接字(socket)或插口。根据RFC 793的定义:端口号拼接到(concatenated with)IP地址机构称套接字。

      因此就有  套接字 socket = {IP地址 : 端口}

      因此每一条TCP连接唯一地被通信两端的两个套接字(端点)所确定。

    停止等待协议(stop-and-wait)

      停止等待就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。

        

      1.无差错情况

      如上图a所示:A发出分组M1完就暂停发送,等待B的确认。B收到了M1就向A发送确认。A在收到了对M1的确认后,就再发送下一个分组M2。以此下去。

      2.出现差错

      如上图b所示:B在接受到M1时检测到了差错,就丢弃M1,并什么也不做。A只要超过了一段时间仍然没收到确认,就认为刚才的分组丢失了,就重传之前的分组,这就叫超时重传

       

      3.确认丢失和确认迟到

      如上图a所示:B所发送的对M1的确认丢失了,A在超时重传的时间内没有收到确认,但无法知道是自己发送的分组出错,丢失,或者是B发送的确认丢失了,因此A会重传这个M1,当B收到的重传M1时,会有一下两个动作:(1)不向上层交付,丢掉这个重复的分组。(2)向A发送确认。

      如上图B所示,B确认的分组M1迟到了,在超时重传的时间内未返回A,因此A会重传M1,之后当A收到了迟到的确认分组,就会丢弃重复的M1,不向上层交付。

      4.总结

      向上述的这种可靠传输协议常称为自动重传请求ARP,优点是简单,但是缺点也很明显,就是信道利用率过低。

  • 相关阅读:
    多表关联查询(ORACLE版)
    开发中可能会用到的几个 jQuery 小提示和技巧 (转)
    让jquery easyui datagrid列支持绑定嵌套对象
    java图片处理工具类
    如何为Myeclipse手工添加dtd支持
    二进制与运算
    彻底卸载MYSQL,windows版
    Win7系统安装MySQL5.5.21图解教程
    Rust 资源整理
    【译】我的阅读习惯
  • 原文地址:https://www.cnblogs.com/a294098789/p/5651675.html
Copyright © 2011-2022 走看看