首页 > 其他分享 >传输层:TCP协议

传输层:TCP协议

时间:2022-10-02 20:33:17浏览次数:54  
标签:协议 超时 ACK 报文 TCP 发送 传输层 接收

我必须吐槽一下TCP的内容挺多的,我果然太菜还小看了~~

目录

UDP报文段结构

源地址 目的地址
长度 检验和
应用数据

TCP报文段结构

源端口地址 目的端口地址
序号
ACK
首部长度(4bit)保留未用(4bit)... 接收窗口
校验和 紧急数据指针
选项
数据

TCP基础——reliable data transfer protocal

  1. 发送方pkt[i] 接收方ACK[i]
    发送方Seq=m,size=a;
    接收方ack=m+a,seq=y;
    发送方seq=y+1,ack=m+a
  2. pipeline_rdt:improve transfer utilization,传送分组用时/(传送分组用时+传播用时)
  3. 回退N步:发送报文丢失后,接受窗口接收到下一个报文直接丢弃
  4. 选择重传:丢失后,接收窗口接收到下一个发送报文,缓存,直到接收到丢失报文,一起返回ACK

TCP实现可靠连接传送的特点:

1. TCP往返时间的估计与超时

EstimateRTT=(1-x)EstimateRTT+x|SampleRTT-EstimateRTT|
DevRTT=(1-x)DevRTT+x
|SampleRTT-EstimateRTT|
至于超时重传间隔,TimeoutInterval=EstimateRTT+4*DevRTT

2. 关于超时

  • 超时间隔还未接收到ACK,重新发送,ACK更新为想获得的下一个地址
  • 未收到ACK,超时间隔=2;直到收到确认报文,TimeoutInterval=EstimateRTT+4DevRTT**
  • 冗余ACK的产生:发送报文pkt(i)丢失,接收方接收到pkt(i+1)及以后,但发送方不接受否定确认,故接收方只能返回最后一个按序字节数的确认pkt(i),发送方接收到3个这样的ACK后,
  • 快速重传:意识到报文丢失,不必等到超时间隔,加速丢失报文的重传。

3. 流量控制

  • 在接收方设置一个rwnd,发送方根据接受窗口的大小调整发送数据
  • when rwnd=0,发送方不知道什么时候接收方清除缓存,elevate rwnd;
  • 发送方仍向接收方发出一个只有一个字节数据的报文段,接收方清空缓存时确认该报文,并返回rwnd
  • UDP没有流量控制

SYN:表示连接请求/接受报文
FIN:传输完毕,释放连接,四次挥手第3

拥塞控制

慢启动:cwnd=1,cwnd*=2;
拥塞避免:超时导致的丢包,表明

标签:协议,超时,ACK,报文,TCP,发送,传输层,接收
From: https://www.cnblogs.com/sky1water/p/16749278.html

相关文章

  • 实验3:OpenFlow协议分时实践
    基础实验抓包分析step1:搭建拓扑并配置相应IPIP配置如下:代码:#!/usr/bin/envpythonfrommininet.netimportMininetfrommininet.nodeimportController,Remot......
  • 实验3:OpenFlow协议分析实践
    一)基本要求1.拓扑文件2.wireshark抓包Hello控制器6633端口(我最高能支持OpenFlow1.0)--->交换机33372端口(由于我当时将窗口关闭了,再次运行时交换机端口号发生变化,......
  • 实验3:OpenFlow协议分析实践
    一、搭建下图所示拓扑,完成相关IP配置,并实现主机与主机之间的IP通信。用抓包软件获取控制器与交换机之间的通信数据。(1)拓扑(2)主机互ping(3)抓包结果(4)建立连接的交......
  • 实验3:OpenFlow协议分析实践
    实验3:OpenFlow协议分析实践一、实验目的能够运用wireshark对OpenFlow协议数据交互过程进行抓包;能够借助包解析工具,分析与解释OpenFlow协议的数据包交互过程与机......
  • TCP和UDP的联系与区别
    TCP和UDP的定义1、TCP传输控制协议(TCP,TransmissionControlProtocol)是一种面向连接的、基于字节流的为不可靠的互联网络提供可靠的端到端字节流而专门设计的传输层......
  • TCP和UDP的区别
    UDP:UDP与TCP的主要区别在于UDP不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP在许多方面非常有效。当某个程序的目标是尽快地传输......
  • 实验2:Open vSwitch虚拟交换机实践+实验3:OpenFlow协议分析实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • 实验3:OpenFlow协议分析实践
    一、基础要求1.搭建拓扑这里采用Python脚本方法搭建   这里是代码#!/usr/bin/pythonfrommininet.netimportMininetfrommininet.nodeimportControll......
  • 实验3:OpenFlow协议分析实践
    导入到/home/用户名/学号/lab3/目录下的拓扑文件wireshark抓包的结果截图OFPT_HELLO控制器6633端口(我最高能支持OpenFlow1.0)--->交换机46318端口交换机46318端......
  • 实验3:OpenFlow协议分析实践
    一、实验目的能够运用wireshark对OpenFlow协议数据交互过程进行抓包;能够借助包解析工具,分析与解释OpenFlow协议的数据包交互过程与机制。二、实验环境Ubuntu20......