TCP主要特点:

(1)面向连接

(2)只能是点到点

(3)可靠的传输协议

(4)全双工通信,各自各自的读写缓冲区,应用层吧数据交给发送缓冲区,tcp合适就发送了,接受的时候tcp写入接受缓冲区,应用程序方便的时候就去缓冲区读入数据了

(5)面向可以拆分字节流

TCP的连接

我们说的每一个tcp连接有两个端口,这个端口是socket(ip&&端口号),套接字是个很抽象的概念,注意同一个ip地址可以有多个不同的tcp连接,同一个·端口号可以出现在不同的tcp连接之中

TCP可靠的传输原理:

tcp的报文发送给了ip层,但是下面ip层只是尽最大努力交付。并不是安全的,理想的安全是

(1)发送的分组不会有差错(解决:如果出现错误,重新发送)

(2)无论速度多块,接收端都可以收到(如果接收端不能即时收到,告诉发送方降低速度到

停止等待协议

1无差错传输

A向B发送一个分组,等待B确认后再发送下一个分组

 2:出现差错

如果在A向b发送的中途出现了问题丢弃了,A超过了一段时间没有收到,则会重新发送一个,这就是超时重传,要实现就需要设置一个超时计时器,A为每一个分组都设置了一个超时计时器,只要A的每一个分组收到了,就撤销可以了

注意3点:

(1)A在发送了一个分组后会保留一个备份(如果收到确认分组的时候,才会删除)

(2)对每一分组编号,知道哪一个分组收到了

(3)超时计时器的设置时间会比往返时间长一些

3:确认丢失和确认迟到

如果确认分组没有收到,那么A会向B继续发送分组,B收到后会丢弃,但是仍然向A发送确认分组,如果A收到多个确认分组,只对第一个有用,后面的收到但是什么都不做

上面就属于自动重传请求ARQ协议,重传的请求是自动的,不需要B向A发分组

4:信道利用率

非常低,为了提高传输效率,可以采用流水线传输,就是一次连续发送多个分组

那么就需要采用连续ARQ协议个滑动窗口协议

发送方每次收到一个确认,就将窗口向前移动,比如收到第5个分组的,就移动到底6个

接收方采用累积确认的方式,不必对所有的分组都发送,只对按顺序到达的最后一发送就可以了,表示这个之前的都受到了

如果发送5个,接收方只收到了2个,那么发送发需要对后三个重新发送,这叫做回退n协议,退回去把没陈宫的n个重新发送

传输控制协议TCP的更多相关文章

  1. 运输层3——传输控制协议TCP概述

    目录 1. TCP最主要的特点 2. TCP的连接 3. socket在不同场景中的含义 写在前面:本文章是针对<计算机网络第七版>的学习笔记 运输层1--运输层协议概述 运输层2--用户 ...

  2. 传输层协议TCP和UDP

    本文力图简洁,让读者对TCP和UDP有个初步的认知.闲话少说,现在开始吧.TCP和UDP都是传输层的协议.TCP通过三次握手建立可靠连接,对未送达的消息重新进行发送.UDP不建立连接而直接发送,对未送 ...

  3. TCP 传输控制协议

    开头先说几个协议: IP:网际协议 TCP:传输控制协议 Http:超文本传输协议 AMQP:高级消息队列协议 一:TCP是什么? TCP(Transmission Control Protocol ...

  4. TCP/IP 笔记 - 传输控制协议

    与UDP不同,TCP提供面向连接的.可靠的.基于字节流的传输层协议,且提供差错纠正. TCP传输的概念 对与分组丢失和比特差错的处理方法,最直接的方法是重发分组,直到它被正确接收. 这需要一种方法来判 ...

  5. TCP传输控制协议

    TCP 在TCP/IP协议模型中, 传输层协议有TCP和UDP, 这里主要介绍下可靠传输TCP协议, 目前是传输层协议首选. 特点 面向数据流(字节流形式) 虚电路连接 有缓冲传输(提供push机制 ...

  6. 数据通讯与网络 第五版第24章 传输层协议-TCP协议部分要点

    上一博客记录了UDP协议的关键要点,这部分记录TCP协议的关键要点. 24.3 传输控制协议(TRANSMISSION CONTROL PROTOCOL) TCP(Transmission Contr ...

  7. TCP/IP中的传输层协议TCP、UDP

    TCP提供可靠的通信传输,而UDP则常用于让广播和细节控制交给应用的通信传输. 传输层协议根据IP数据报判断最终的接收端应用程序. TCP/IP的众多应用协议大多以客户端/服务端的形式运行.客户端是请 ...

  8. 浅谈传输层协议TCP和UDP

    在当今因特网的层次结构中,传输层的协议主要有两种,其一为Transmission Control Protocol,即TCP:其二为User Datagram Protocol,即UDP. 1.TCP ...

  9. TCP/IP详解学习笔记(12)-- TCP:传输控制协议

    1.概述      TCP提供了一种可靠的面向连接的字节流运输层服务.      TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认,对失序的数据重新排序,丢弃重复数据,T ...

随机推荐

  1. 怎样判断iOS App是通过哪种途径启动的?

    http://www.cnblogs.com/daguo/p/3759514.html - (BOOL)application:(UIApplication *)application didFini ...

  2. MapReduce 简单的全文搜索

    上一个已经实现了反向索引,那么为什么不尝试下全文搜索呢.例如有了 Hello     file3.txt:1; MapReduce     file3.txt:2;fil1.txt:1;fil2.tx ...

  3. Mybatis3.2.1整合Spring3.1

    Mybatis3.2.1整合Spring3.1 根 据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对 Mybatis ...

  4. StackExchange.Redis 官方文档(一) Basics

    基本使用方法: StackExchange.Redis的核心是 StackExchange.Redis 命名空间的 ConnectionMultiplexer 类;它隐藏了多服务器的实现细节.Conn ...

  5. mysql server的安装和配置

    YSQL-5.7.9.1解压版 例如我的在D:\Program Files\MySQL\MySQL Server 5.7(解压时名字mysql-installer-community-5.7.9.1可 ...

  6. Djanto static静态文件配置

    django的settings中包含三个static相关设置项: STATIC_ROOT STATIC_URL STATICFILES_DIRS   STATIC_URL 好理解,就是映射到静态文件的 ...

  7. UITableView 之 取消选中

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [table ...

  8. eclipse修改主题配色

    1.Java-->Editor---> Syntax Coloring修改类中的各种代码颜色 2.General-->Editors --->Text Editors

  9. XML 特殊字符处理和 CDATA

    在处理XML数据时,特殊字符要特殊处理,不能和节点字符混淆. 所有 XML 文档中的文本均会被解析器解析. 只有 CDATA 区段(CDATA section)中的文本会被解析器忽略. PCDATA ...

  10. zepto.js 处理Touch事件

    处 理Touch事件能让你了解到用户的每一根手指的位置,在touch事件触发的时候产生,可以通过touch event handler的event对象取到,如果基于zepto.js开发,一般是通过ev ...