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. LPC1768的USB-相关结构体定义

    #ifndef __USB_H__ #define __USB_H__ //usb传输数据的宏定义描述 #include "sys.h" typedef __packed unio ...

  2. linux命令学习5-pssh命令

    pssh命令是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问. 1. ...

  3. VR元年,VR虚拟现实这只风口上的猪有怎样的变化?

    走过了2016年,无论我们承认不承认,这一年到底是不是VR元年,我们都很难否定,在这一年,VR虚拟现实生态圈有很大的变化,那么,这一年VR虚拟现实到底有怎样的改变呢?我们的VR虚拟现实生态圈,发生了什 ...

  4. 【转】Linux正则表达式使用指南

    正则表达式是一种符号表示法,用于识别文本模式.Linux处理正则表达式的主要程序是grep.grep搜索与正则表达式匹配的行,并将结果输送至标准输出. 1. grep匹配模式 grep按下述方式接受选 ...

  5. Cocos2d-x 的“HelloWorld” 深入分析

    本节所用Cocos2d-x版本:cocos2d-1.0.1-x-0.12.0 不能免俗,一切都从“HelloWorld!”开始.打开HelloWorld工程,里面有两个文件目录Classes和win3 ...

  6. python 爬取的数据要如何展现(可视化)?

    我是把数据放在 mongodb ,然后单独一个脚本作分析,导出 json ,用 c3.js 画图,然后随便写个很简单的页面就好了. 展示在这里: http://107.170.207.236/job_ ...

  7. 2016——3——16 kmp 7题

    1.传送门:http://begin.lydsy.com/JudgeOnline/problem.php?id=2725 题目大意:找一个串在另一个串中出现的次数 题解:kmp(纯裸题) #inclu ...

  8. jQuery插件placeholder的使用方法

    借助该插件可以轻松实现HTML5中placeholder特效: 实例代码如下: <script type="text/javascript" src="<%= ...

  9. MySQL服务器的线程数查看方法

    mysql重启命令:/etc/init.d/mysql restart MySQL服务器的线程数需要在一个合理的范围之内,这样才能保证MySQL服务器健康平稳地运行.Threads_created表示 ...

  10. js架构设计模式——从angularJS看MVVM

    javascript厚积薄发走势异常迅猛,导致现在各种MV*框架百家争雄,MVVM从MVC演变而来,为javascript注入了全新的活力.我工作的业务不会涉及到 angularJS[ng] 这么重量 ...