ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算机网络传输层之TCP协议

2021-12-31 19:31:04  阅读:122  来源: 互联网

标签:发送 重传 ACK TCP 计算机网络 传输层 服务器 连接


系列文章目录

第二章计算机网络传输层之面向连接传输协议-TCP

计算机网络传输层之TCP协议


面向连接传输协议-TCP

TCP概述

TCP概述:RFCs-793,1122,1323,2018,2581
在这里插入图片描述

TCP段结构

传输层处理的基本对象是段segments
sequence number 序列号 ack的序列号不是段的编码,而是利用数据的字节数来计算
U:紧急数据一般不使用 A:标志位,来指示是否有效的ACK P:利用该标志位立刻把数据推上层,一般不用
RSF:连接的建立和拆除的标志位
Receive window:接受窗口的大小,所能接受字节的数目,流量控制的
checksum:Internet校验和

在这里插入图片描述

TCP:序列号和ACK

1K个字节的数据拆成2个segment时,第二个segment不是2也不是1(第一个序列号为1第二个为2,第一个为0,第二个为1)
而是500或501
所以是字节的编好而不是segment的个数。
42是建立连接随机选择的,43之前所有字节都正确接收到。
在这里插入图片描述
telnet远程登录应用,使用的为TCP协议
远程登录到telnet上的一台主机上,你这边发送一个字符,那边收到后会回传。

TCP可靠数据传输

TCP可靠数据传输概述(不考虑拥塞控制和流量控制和重复ACK)

在这里插入图片描述

TCP RTT和超时

在这里插入图片描述估计的RTT是EstimatedRTT
DEVRTT是描述EstimatedRTT变化范围(大还是小)

在这里插入图片描述

TCP发送方事件

在这里插入图片描述

TCP发送端的程序

在这里插入图片描述

TCP重传示列

由于TCP是累积确认机制,所以会发ACK120而不是ACK100
在这里插入图片描述
TCP是累积确认机制
在这里插入图片描述

TCP接收方

TCP ACK生成:RFC1122,RFC2581

在这里插入图片描述cumulative ACK 累计确认ACK,确认两个段。
duplicate ACK重复ACK,指示你希望的ACK

TCP快速重传机制

在这里插入图片描述

TCP快速重传算法

在这里插入图片描述

TCP流量控制

左边,IP层(网络层)传输进来RevBuff,然后交给上层,应用进程处理。
蓝色区域表示可以接受数据的Buff
在这里插入图片描述
在这里插入图片描述
如果Rcvwindow=0,发送方被告知不能发送了,即便以后接收方处理完后,发送方也无法知道该信息了,即无法发送。(断开连接了)
所以,TCP机制中即使Rcvwindow=0,发送方依旧可以发送很小的段,因为进程也在处理中。

TCP连接管理(三次握手)

在这里插入图片描述SYN报文段不携带任何数据,SYN携带SYN位-置为1,表示建立一个连接,传递客户机选择的初始序列号
服务器分配缓存,选择自己的初始的列号并且告知客户端,同时告诉客户机连接请求已经收到
客户机收到SYNACK后回复ACK报文段,这个时候SYN位-不置为1了,这步告诉服务器,我收到你同意我建立连接的报文段,该报文段可以包含数据
为什么要3次握手,2次行不行?

TCP连接管理:建立

在这里插入图片描述
在三次握手的第2次时候,服务器会建立缓存,如果第三次没有握手,服务器资源会保留一段时间,直到等它确认该连接不会建立了,收不到ACK,资源才会释放。
如果成千上万台电脑同时接入,然后第二次握手,客户端不发送ACK,服务器会怎么样?

TCP连接管理:关闭

在这里插入图片描述客户机和服务器都可以发送关闭请求,多数是客户端发送。
等待阶段是为了确保服务器那端已经正确关闭,释放资源。

TCP客户端服务器的生命周期

在这里插入图片描述

标签:发送,重传,ACK,TCP,计算机网络,传输层,服务器,连接
来源: https://blog.csdn.net/westos_yanzheng/article/details/122258103

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有