原标题:计算机网络基础课程—传输控制协议(Tcp)

•TCP和UDP都使用相同的网络层(IP),但TCP向应用层提供与UDP完全不同的服务。

•TCP提供一种面向连接的、可靠的字节流服务。

•UDP提供无连接、不可靠的数据报传输

•在不可靠的IP交付服务上获得可靠的TCP传输服务

•多数的可靠传输协议都是使用了一个基本的技术:确认重传

•这个技术的关键是要求接收方与源发送端进行通信:在收到数据后要发回一个确认(ACK)消息,而源端也只有在收到接收端的确认消息后在发送下一个数据。

•最简单的正常情况如下图所示:

•另一种出错的情况是:接收方发回的确认消息在传输过程中出现丢失或破坏,如果发送方在等待一个预定的时间没能收到确认消息,则重发上次的数据报文。但由于上次的数据接收方已收到,只是字相应的确认消息没能发回,这样,就出现了重复的数据报文

•为此的处理方法是为所有发送的数据编序号,这样接收端就可以通过检查报文是否具有相同的序号而确定是否出现了重复报文,重复的报文就可以直接丢弃。

•可以看到,上述的简单确认重传协议没有对网络带宽进行有效的利用,发送端和接受端都有较多的时间处于等待状态,为充分利用信道资源,在简单确认重传协议的基础上提出了滑动窗口协议:

•滑动窗口协议与简单确认重传的根本差别在于:发送端在收到接收方的确认消息之前,可以发送多个分组。滑动窗口的大小就是发送端在收到接收方的确认消息之前,可以发送的分组数目。窗口大小为1时,就是简单确认重传协议。

•详细内容参见数据链路层中的描述。(动画演示)

•TCP使用滑动窗口协议可以解决两个重要问题:

–有效传输:通过减少等待时间可增加网络总吞吐量

–流量控制:可以通过变化发送方窗口大小以及接收方缓存大小来控制端到端的流量

•TCP数据(segment)格式:

TCP封装:

TCP首部格式:

•面向连接的TCP交付服务

•在定义TCP连接之前需要引入端点的概念:

•端点是一个(主机的IP地址,该主机上的TCP端口号)二元组。

•一个TCP连接由两个端点唯一定义。

•例如:(18.26.0.36, 1069)和(128.10.2.3, 25)就定义了一个 TCP连接。

•每个端点都可以同时参与多个连接。

•每个连接的建立需要双方端点的同意

•面向连接的服务意味着两个使用TCP的应用在彼此交换数据前必须先建立一个TCP连接(虚电路)。虚电路连接类似电话,发送和接收数据的进程双方在进行通信之前要利用协议取得一个数据传输路径的授权,但又并不是如电话那样在之后的通信中独占一条物理线路。

•三步握手的过程:

–第一步:发起方发送一个消息,其SYN位被设置;

–第二步:响应方收到消息后,发回一个消息,SYN和ACK位均被设置,表示可以继续;

–第三步:确认响应,ACK位被设置,表示双方均同意连接,连接建立。

•三步握手的功能:

–保证双方都相互知道对方已准备好进行数据传输

–双方确认一个数据传输的初始序列号,如上图中,发送方的初始序列号为x,接收方的初始序列号为y,均被对方确认

•释放TCP连接过程:

•TCP是全双工的,一个连接具有两个方向的数据传输,因此连接释放需要分别释放两个方向。

•当一方的应用程序通知TCP已无数据需要发送时,TCP关闭此方向的连接,这时此方向只能接收对方的数据,而不能发送其它数据了(除了释放连接的消息)。然后发送一个FIN位被设置的消息通知接收方没有数据发送。接收方响应确认。

•同时,接收方通知应用程序释放连接,发送回连接释放消息,最终释放整个连接。

•TCP性能

•虽然TCP中包含许多比其它运输层更为复杂的任务,但分析表明,其性能并没有因此而降低。几个最大吞吐量的理论计算值(或测得的):

–在以太网(10M)上:8兆

–在FDDI(100M)上:80-90兆

–两台Gray Y-MP计算机在800兆的高速通道上:781兆

•早期的TCP有一个较严重的性能问题,称为糊涂窗口综合症(Silly Window Syndrome):

•问题描述:

•在TCP执行中,接收方在接收数据前要指定一个确定大小的缓存,发送方传输过来的数据首先存储在缓存中等待处理。

•而另一方面,TCP通过报头中的WINDOW 字段来向对方报告缓存中的剩余字节,当发送方的数据发送速度较快时,缓冲区很快就用完,这时,应用程序每从缓冲区读取一个字节,TCP就发送一个WINDOW字段为1的消息,发送端之后就只能发送一个字节的小数据。

•这虽然实现了流量控制,同时也造成了一系列的小报文 (小报文也可能由其它一些原因导致:如应用程序生成数据较慢) 。在小报文中,报头要比数据更大,而对于每一个报文TCP/IP都需要做同样的计算、检校操作,这对于计算资源以及信道资源都是浪费。

•避免SWS的一些措施:

•接收方维护一个当前有效窗口大小的记录,但延迟发送这个值,知道其值达一定的值,这个一定的值的一个定义是缓冲区大小的一半。

•发送方延时确认接收方发来的窗口消息,这样可以等待应用程序生成足够的数据来发送,但延时太长,会导致接收方在无确认后冲发,因此延时又不能太长,标准建议<500毫秒。返回搜狐,查看更多

责任编辑:

计算机网络tcp传送,计算机网络基础课程—传输控制协议(Tcp)相关推荐

  1. TCP/IP 中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议

    原文地址:http://hi.baidu.com/albyuyrgqgbbhoq/item/65006d2d002ab33195f62ba1 TCP/IP(Transmission Control P ...

  2. 【RFC7414 传输控制协议 (TCP) 规范文档的路线图】(翻译)

    原文 rfc7414 (ietf.org)   A Roadmap for Transmission Control Protocol (TCP) Specification Documents  传 ...

  3. 浙江万里学院期末计算机网络,(浙江万里学院云计算基础课程大作业封面.doc

    (浙江万里学院云计算基础课程大作业封面 浙江万里学院云计算基础课程论文封面 教师填写: 得分 任课教师签名 年 月 日 学生填写: 姓名 学号 所在学院计算机与信息学院专业信息工程课程名称云计算基础? ...

  4. 传输控制协议---TCP协议【详解】

    目录 一.协议简介 二.TCP报文格式 1.字段解析 2.报文解析 三.TCP的重传机制 1.超时重传 2.快速重传 3. SACK 方法 4.Duplicate SACK 四.TCP的滑动窗口机制 ...

  5. Day6-2021.1.14 计算机网络面经从基础到总结+力扣 链表 题目的整理。

    2021年1月14日 时间都去哪了? 今日计划: 1.力扣刷题.整理下剑指offer,按照分类去做.LeetCode题解汇总-链表专题. 2.整理计网面经.如果要走后端的话,这篇面经基本很全了,把这篇 ...

  6. 计算机网络协议ppt,计算机网络基础——TCP-IP协议.ppt

    计算机网络基础--TCP-IP协议.ppt (50页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 第 4 章 TCP/IP协议栈*1069 ...

  7. 网际传输协议和传输控制协议(IP,TCP,IP)

    文章目录 1 简介 2 IP 2.1 简介 2.2 IP的可靠性 2.1 IP Header 2.3 IP分片和重组 3 TCP 3.1 简介 3.2 TCP Header 3.3 TCP 三次握手 ...

  8. TCP 传输控制协议(转)

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

  9. 【计算机网络】,java基础教程从入门到精通

    网络诞生 诞生于贝尔实验室:与此同时网络,C,C++,Unix,太阳能,立体语言等也是诞生于贝尔实验室. 网络发展 独立模式: 计算机之间相互独立; 网络互联: 多台计算机连接在一起, 完成数据共享; ...

最新文章

  1. 最高的奖励 51Nod - 1163(贪心+并查集)
  2. JavaScript常用单词整理总结
  3. 推荐25款很棒的 HTML5 前端框架和开发工具【下篇】
  4. 10个让人很舒服的沟通技巧
  5. 全球首发!计算机视觉Polygon Mesh Processing总结9——Triangle-Based Remeshing
  6. python课堂_python课堂整理6---字典
  7. 安装SQL 2016的时候 Microsoft R Open 和 Microsoft R Server 安装文件的位置
  8. eeglab和matlab,Matlab之EEGLAB工具箱脑电数据预处理
  9. wcdma系统随机接入过程的流程图_随机接入过程
  10. zabbix安装教程Linux环境部署zabbix3.2
  11. 在Mac电脑中忘记管理员密码了如何处理?如何安全的管理自己的密码?
  12. RFID卡射频卡分类
  13. 新手学计算机剪辑,视频剪辑软件入门推荐!最适合初学者的四大软件!手机电脑都可以...
  14. uni-app 使用API中的uni.chooseImage 上传照片以及uni.previewImage图片预览(身份证照片为例)
  15. bzoj2005 NOI2010 方案统计
  16. android setting之Settings.system设置
  17. 带你探索元宇宙鲜为人知的另一面
  18. 例题3-6 环状序列(Circular Sequence)
  19. 微信小程序云开发 --实现加法操作
  20. 服务器如何ghost系统安装,如何在Ubuntu Server 14.04 LTS上安装Ghost

热门文章

  1. openstack之虚拟机管理命令
  2. 洛谷——P1102 A-B数对
  3. Windows Phone 7 位图编程
  4. Word中使用代码高亮插件
  5. 黄聪:如何用代码设置控制自己网站的网页在360浏览器打开时强制优先使用极速模式,而非兼容模式...
  6. linux 禁止SU 登录
  7. dedecms系统环境需求及注意事项是什么
  8. postgresql中自定义函数脚本的备份及恢复
  9. 用VLC读取摄像头产生RTSP流,DSS主动取流转发(一)
  10. django ContentType使用方法