码迷,mamicode.com
首页 > 其他好文 > 详细

计算机网络(7)-----TCP协议概述

时间:2016-07-07 23:50:59      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:

传输控制协议(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,优点是简单,但是缺点也很明显,就是信道利用率过低。

 

计算机网络(7)-----TCP协议概述

标签:

原文地址:http://www.cnblogs.com/a294098789/p/5651675.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!