TCP,静态路由复习

本文详细介绍了TCP协议的特性,包括面向连接、可靠传输、确认机制、窗口管理、超时重传、快速重传和选择确认等,以及TCP连接的建立与释放过程,同时还涵盖了静态路由和BFD联动的相关内容。
摘要由CSDN通过智能技术生成
TCP—传输控制协议

是一种面向连接的可靠传输协议。可靠、有序、无丢弃和不重复。

特点:

  • TCP是面向连接(虚连接)的传输层协议
  • 每一条TCP连接有且只能有两个端点。
  • 可靠、有序、无丢弃和不重复。
  • TCP协议提供全双工通讯
    • 发送缓存
      • 存放发送方TCP准备发送的数据。
      • TCP已发送但是没有收到确认的数据。
    • 接收缓存
      • 存放发送端发送来的不按照顺序到达的数据
      • 按照顺序到达的数据,但并未被应用程序读取
  • TCP是面向字节流的。TCP将应用层数据仅看做是一串无结构的字节流。
TCP连接的四元组(源IP、源端口、目IP、目端口)--->唯一标识一条TCP连接。

套接字--->IP:port

在这里插入图片描述

确认序列号:接收方期望收到发送方发送的下一个字节的序号。1.接收方希望接收到的报文序号;2.该序号之前的数据以全部接收。-----累积确认机制

选项字段:长度可变。MSS数值、窗口扩大因子、时间戳、选择确认机制。

确认位ACK:当ACK=1时,确认号有意义。在连接建立以后,所有传输的报文段都必须将该标志位置为1.
同步位SYN:SYN=1时,代表该数据段是一个连接请求报文。
终止位FIN:当FIN=1时,表明此报文段发送方数据已发送完毕,要求释放连接。

复位RST:表明TCP连接出现严重错误,需要释放连接并重新建立连接。

紧急位URG:代表该报文中存在高优先级的数据,应尽快处理。需要配合紧急指针使用。
推送位PSH:接收方应尽快将接收到的数据交付给对应应用程序。

在这里插入图片描述
在这里插入图片描述

源端口:16位,数据发起者的端口号
目的端口: 16位,数据接收者的端口号
序号: 32位,TCP 连接中传送的数据流中的每一个字节都编上一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号
确认号:32位,是期望收到对方的下一个报文段的数据的第一个字节的序号
数据偏移/首部长度:4 位,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远.单位是 32 位字(以 4 字节为计算单位)
保留: 6 位,保留为今后使用,目前应置为 0 

紧急URG:1位,当URG=1 时,它告诉系统此报文段中有紧急数据,应尽快传送
确认ACK:1位,只有当 ACK=1 时确认号字段才有效;当 ACK=0 时,确认号无效
PSH:1位,当 PSH = 1时,应尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付
RST :1位,当 RST=1 时,表明 TCP 连接中出现严重差错,必须释放连接,然后再重新建立运输连接
同步SYN:1位,建立连接的时候使用:当SYN=1,ACK=0时,表示为请求连接;当SYN=1,ACK=1时,表示为同意连接的请求应答
终止FIN:1位,用来释放一个连接,当FIN=1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接
窗口:16位,表示接受端的接收窗口的大小,用于实现流量控制。将接收端发送过去的窗口大小设置成发送端的发送窗口大小,从而控制了发送端的发送效率
检验和:占16位,用于检测发送过程中是否出现错误
紧急指针:占 16 位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)
选项:长度可变,TCP 最初只规定了一种选项,即最大报文段长度 MSS.MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节.” [MSS(Maximum Segment Size)是 TCP 报文段中的数据字段的最大长度.数据字段加上 TCP 首部才等于整个的 TCP 报文段]
填充:这是为了使整个首部长度是 4 字节的整数倍

TCP的重传机制

在 TCP 中,当发送端的数据到达接收主机时,接收端主机会返回一个确认应答消息,表示已收到消息。

1.超时重传

超时重传机制其实就是在发送数据时,设定一个定时器,当超过指定的时间后,没有收到对方的 ACK 确认应答报文,就会重发该数据。

TCP 会在以下两种情况发生超时重传:

  • 数据包丢失
  • 确认应答丢失

超时时间设置过大时,效率低下,浪费时间

超时时间设置过小,可能会导致没丢就重传,造成网络拥堵,更多超时,恶性循环。

RTT 就是数据从网络一端传送到另一端所需的时间,也就是包的往返时间。

超时重传时间是以 RTO (Retransmission Timeout 超时重传时间)表示。

超时重传时间 RTO 的值应该略大于报文往返 RTT 的值。当然,我们的网络是时常变化的,所以「报文往返 RTT 的值」是经常变化的,所以「超时重传时间 RTO 的值」应该是一个动态变化的值

RTO数值是动态变化的数值超时间隔加倍

2.快速重传

TCP 的快速重传(Fast Retransmit)机制,它不以时间为驱动,而是以数据驱动重传

在这里插入图片描述
第一份 Seq1 先送到了,于是就 Ack 回 2;
结果 Seq2 因为某些原因没收到,Seq3 到达了,于是还是 Ack 回 2;
后面的 Seq4 和 Seq5 都到了,但还是 Ack 回 2,因为 Seq2 还是没有收到;
发送端收到了三个 Ack = 2 的确认,知道了 Seq2 还没有收到,就会在定时器过期之前,重传丢失的 Seq2。
最后,收到了 Seq2,此时因为 Seq3,Seq4,Seq5 都收到了,于是 Ack 回 6

3.选择性确认

这种方式需要在 TCP 头部「选项」字段里加一个 SACK 的东西,它可以将缓存的地图发送给发送方,这样发送方就可以知道哪些数据收到了,哪些数据没收到,知道了这些信息,就可以只重传丢失的数据。

如下图,发送方收到了三次同样的 ACK 确认报文,于是就会触发快速重发机制,通过 SACK 信息发现只有 200~299 这段数据丢失,则重发时,就只选择了这个 TCP 段进行重复。

在这里插入图片描述

TCP的可靠性

确认、重传、排序、流控

MTU:最大传输单元--->以太网环境下1500字节--->数据包大小。
MSS:最大数据段长度
RTT--->往返时间(指发出端将数据发送后,到本端接收到对端反馈的确认报文的时间总和)
RTO--->超时重传时间

RTO取值略大于RTT值。

快速重传机制--->根据接收方的反馈信息进行数据重传。客户端需要连续接收到三次确认序列号相同的ACK报文,则认为数据丢失,需要进行数据重传。
	快速重传机制会导致部分数据重复传输,降低数据传输效率。
	
解决思路:使用选择确认机制。--->在TCP首部的选项字段中,添加上未接收到的数据信息。发送方接收到该确认报文后,会根据选项字段内容,重新传输缺少的数据部分。
	选择确认机制是否可以执行是需要通讯双方进行协商的。--->在三次握手的前两次SYN报文中进行协商。

RTO数值是动态变化的数值超时间隔加倍

窗口:窗口的大小是可以指定的,窗口大小指的是无需等待确认报文,而可以直接发送的数据包的最大值。
	rwnd(接收窗口)---最开始等于整个缓存区的大小,浮动变化。

TCP要求发送方依据rwnd发送数据量。发送方的发送窗口大小是依据接收方的反馈信息中的接收窗口大小而设定的。

在这里插入图片描述

TCP连接的建立
TCP连接连接需要解决的问题:
1、知晓对端的套接字信息
2、允许双方进行参数的协商(窗口值、选择确认机制、是否使用窗口扩大因子)
3、对设备进行资源分配

在这里插入图片描述

当TCP连接建立成功,但是客户端突发故障。
此时服务端会等到2小时时间,若2小时时间内没有收到任何客户端的数据,则服务端发送一个探测报文,以后每隔75秒发送一次。若一连发送10次仍没有回复,则服务器认为客户端出现故障,关闭连接。
TCP连接释放
1、TCP连接的释放实际上是在释放本地分配给TCP连接的资源
2、本地没有新的数据需要发送

双方同时释放连接

在这里插入图片描述

静态路由

在这里插入图片描述

方法一:[r1]ip route-static 23.0.0.0 24 12.0.0.2

方法二:[r1]ip route-static 23.0.0.0 24 GigabitEthernet 0/0/1
	ARP代理:当收到ARP报文后,路由器冒充真实应答者回复ARP报文,将自己接口的MAC地址进行回复。
		限制:应答路由器必须是网络可达的。
		[r2-GigabitEthernet0/0/1]arp-proxy enable   ----在接收ARP的接口上开启ARP代理功能

	[r1]arp static 23.0.0.2 00e0-fcd3-1943  ----静态ARP表项

方法三:[r1]ip route-static 23.0.0.0 24 GigabitEthernet 0/0/1 12.0.0.2

方法四:[r1]ip route-static 192.168.3.0 24 23.0.0.3---下两跳
172.16.0.0/16
子网划分:从主机位借位给网络位,被借的位被称为子网位;子网位可变

172.16.   0      0000000.0
网络位    子网位    主机位
172.16.   1      0000000.0



子网汇总:取相同,去不同。
172.16.00000000.0
172.16.10000000.0

172.16.0.0/16

静态路由与BFD联动

在这里插入图片描述

[r1]bfd ---激活BFD协议
[r1]bfd aa bind peer-ip 10.1.12.1  ---创建BFD会话,会话名称为aa,给会话绑定对端邻居IP地址
[r1-bfd-session-aa]discriminator local 10
[r1-bfd-session-aa]discriminator remote 20
[r1-bfd-session-aa]commit   ---提交配置

[r1]ip route-static 10.9.9.0 24 10.1.12.1 track bfd-session aa

-创建BFD会话,会话名称为aa,给会话绑定对端邻居IP地址
[r1-bfd-session-aa]discriminator local 10
[r1-bfd-session-aa]discriminator remote 20
[r1-bfd-session-aa]commit —提交配置

[r1]ip route-static 10.9.9.0 24 10.1.12.1 track bfd-session aa

























































  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值