计算机网络中的TCP协议的主要功能,tcp协议的主要功能_tcp协议的特点_许风倾秋的博客-程序员宅基地

技术标签: 计算机网络中的TCP协议的主要功能  

传输控制协议(TCP,TransmissionControlProtocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。

TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

tcp协议的主要功能

1、慢启动

每当建立一个TCP连接时或一个TCP连接发生超时重传后,该连接便进人慢启动阶段。进人慢启动后,TCP实体将拥塞窗口的大小初始化为一个报文段,即:cwnd=1。

此后,每收到一个报文段的确认(ACK),cwnd值加1,即拥塞窗口按指数增加。当cwnd值超过慢启动闽值(sshterhs)或发生报文段丢失重传时,慢启动阶段结束。前者进人拥塞避免阶段,后者重新进人慢启动阶段。

2、拥塞避免

在慢启阶段,当cwnd值超过慢启动阐值(ssthresh)后,慢启动过程结束,TCP连接进入拥塞避免阶段。在拥塞避免阶段,每一次发送的cwnd个报文段被完全确认后,才将cwnd值加1。在此阶段,cwnd值线性增加。

3、快速速重传

快速重传是对超时重传的改进。当源端收到对同一个报文的三个重复确认时,就确定一个报文段已经丢失,因此立刻重传丢失的报文段,而不必等到重传定时器(RTO)超时。以此减少不必要的等待时间。

4、快速恢复

快速恢复是对丢失恢复机制的改进。在快速重传之后,不经过慢启动过程而直接进人拥塞避免阶段。

每当快速重传后,置sshtesrh=cwnd/2、ewnd=ssthresh+3。此后,每收到一个重复确认,将cwnd值加1,直至收到对丢失报文段和其后若干报文段的累积确认后,置cwnd=ssthesrh,进人拥塞避免阶段。

28e9c300ae78349e1a4c1a77b2a794f7.png

tcp协议的特点

TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式:

(1)基于流的方式;

(2)面向连接;

(3)可靠通信方式;

(4)在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;

(5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。

为满足TCP协议的这些特点,TCP协议做了如下的规定:

①数据分片:在发送端对用户数据进行分片,在接收端进行重组,由TCP确定分片的大小并控制分片和重组;

②到达确认:接收端接收到分片数据时,根据分片数据序号向发送端发送一个确认;

③超时重发:发送方在发送分片时启动超时定时器,如果在定时器超时之后没有收到相应的确认,重发分片;

④滑动窗口:TCP连接每一方的接收缓冲空间大小都固定,接收端只允许另一端发送接收端缓冲区所能接纳的数据,TCP在滑动窗口的基础上提供流量控制,防止较快主机致使较慢主机的缓冲区溢出;

⑤失序处理:作为IP数据报来传输的TCP分片到达时可能会失序,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层;

⑥重复处理:作为IP数据报来传输的TCP分片会发生重复,TCP的接收端必须丢弃重复的数据;

⑦数据校验:TCP将保持它首部和数据的检验和,这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到分片的检验和有差错,TCP将丢弃这个分片,并不确认收到此报文段导致对端超时并重发。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30140399/article/details/118287152

智能推荐

点击li,点击的li添加class,其余去掉class_weixin_30344995的博客-程序员宅基地

点击li,点击的li添加class,其余去掉class<script type="text/javascript"> $(function () { var liobj = $("li"); liobj.each(function () { $(this).click(function () { ...

servlet编程基础_mcy_zq的博客-程序员宅基地

Servlet学习的大纲:l 1. servlet概念及相关接口简介l 2. servlet 执行过程l 3. servlet路径映射l 4. 缺省servlet          --应用l 5. servlet生命周期(重点)   --理解(重点)l 6. Servlet自动加载 l 7. Servlet线程安全 l 8. servletConfig对象l 

FTL(FreeMarker)基础_weixin_34242331的博客-程序员宅基地

FreeMarker标签使用一、FreeMarker模板文件主要有4个部分组成1、文本,直接输出的部分2、注释,即<#--...-->格式不会输出3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出4、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。FTL指令规则FreeMarker有三种F...

兼容性:h5在IOS中收起键盘时页面不会下滑的问题_瓶盖的盖的博客-程序员宅基地

场景:IOS嵌入的h5页面,页面上弹框,弹框里有输入框操作:当输入框获得焦点时拉起键盘,点击弹框的遮罩层,弹框关闭问题:弹框关闭后页面没有下滑,再打开弹框时输入框无法获取到焦点原因:遮罩层是fixed定位(页面有滚动条)当键盘拉起时fixed好像失效了解决方案: const u = navigator.userAgent; const isiOS = !!u....

aop阻止方法运行_spring中使用AOP拦截方法_FFFire小火的博客-程序员宅基地

使用Aspect需要引入aop依赖org.springframework.bootspring-boot-starter-aopaop流程执行aop流程图1.使用@Annotation需要创建一个注解,用在需要拦截的方法上或者类上package com.gyh.annotation;import java.lang.annotation.*;@[email protected](Retent...

sqoop 1.x 整合mysql jdbc_大漠孤烟BLOG的博客-程序员宅基地

1、安装成功后,需要整合mysql 进行数据的读取。[[email protected] lib]# cp mysql-connector-java-8.0.17.jar /data/bigData/sqoop/sqoop-1.4.7/lib/2、进行测试:sqoopWarning: /data/bigData/sqoop/sqoop-1.4.7/../accumulo does not...

随便推点

Scrapy爬虫中的链接提取器LinkExtractor_weixin_30445169的博客-程序员宅基地

今天在编写Scrapy爬虫的时候接触到了LinkExtractor,遂学习了一下这个链接提取器。Link Extractors 是那些目的仅仅是从网页(scrapy.http.Response对象)中抽取最终将会被follow链接的对象。使用场景就是在一个网站中通过自定义规则提取到自己想要的那些网址。Scrapy默认提供2种可用的 Link Extractor, 但你通过实现一个简单的接...

libusb常用函数说明_HZHejo的博客-程序员宅基地_libusb_open_device_with_vid_pid

1 libusb_initint libusb_init(libusb_context **ctx);功能说明:该函数进行libusb的初始化,必须最先调用。参数说明:ctx通常设置NULL返回值:0成功,非0 失败2 libusb_exitvoid libusb_exit(libusb_context *ctx);功能说明:和libusb_init成对使用,释放相应的资源。参数说明:ctx通常设置NULL3 libusb_has_capabilityint libusb_has_

yolov3.yaml_慕思侣的博客-程序员宅基地_yolov3.yaml

# parametersnc: 80 # number of classesdepth_multiple: 1.0 # model depth multiplewidth_multiple: 1.0 # layer channel multiple# anchorsanchors: - [10,13, 16,30, 33,23] # P3/8 - [30,61, 62,45, 59,119] # P4/16 - [116,90, 156,198, 373,326] # P...

[licode] 新版本 中信令通道改变_等风来不如迎风去的博客-程序员宅基地

script.js:74 Selected Room basicExampleRoom of type erizoscript.js:112 [bs]createToken callback :eyJ0b2tlbklkIjoiNWViY2JkOTVjMzQ0NDdlYzg4MzY3OTYwIiwiaG9zdCI6IjE3Mi4xOS43LjE2MDo4MDgwIiwic2VjdXJlIjpmYWxzZSwic2lnbmF0dXJlIjoiT0dFNVlqRXhPREppTm1RME1UQmpOR...

一招教你如何选工业机器人视觉!_工业机器视觉前沿的博客-程序员宅基地

工业机器人的眼睛视觉系统通常由以下构成 01摄像头和光学部件这一类通常含有一个或多个摄像头和镜头(光学部件),用于拍摄被检测的物体。根据应用,摄像头可以基于如下标准,黑白、复合彩色(Y/C),RGB彩色,非标准黑白(可变扫描),步进扫描(progressive-scan)或线扫描。02灯光灯光用于照亮部件,以便从摄像头中拍摄到更好的图像,灯光系统可以在不同形状、尺寸...

数据处理遇到的问题_拙小拙的博客-程序员宅基地

Python3解决UnicodeDecodeError: ‘utf-8’ codec can’t decode byte…问题 终极解决方案python pandas.errors Buffer overflow caught - possible malformed input file.和\r\n