计算机网络第五章——传输层(下)

安得广厦千万间,大庇天下寒士俱欢颜

文章目录



按序的不丢失的,这个校验也是二进制求反码来判断有没有发送错误,

TCP传输的时候就是以一个字节为单位,所以就会把一个字节编一个序号,对于一个文件第一个需要是多少是可以随机的,发送的时候是以报文段为单位,把一些字节流放在一起组成一个报文段,然后再把这个报文段发送出去,这个报文段的大小也是不定的,报文的划分就要取决于MTU,有了这个需要就能保证有序的提交给用户层,而基于这个需要机制,也就有了确认和重传机制,

并且注意到即使发过去了,但是在没有收到确认报文段之前,发送方但是依然是保留着报文段的副本,(可以专门发一个确认报文段,或者捎带确认)即使78 到了,依然是发送给确认报文是4,

超时重传这个时间的设置比较麻烦,是因为可能经过的是高速率的局域网也可能是低速率的网络,而且每一个IP数据报所选择的路由也是不相同的,这回取决于当时网络的一个情况,所以一个报文段可能所走的路径不同,

并且注意TCP通常不使用停等协议的,没有说一定要二号到了才能发送3号,TCP中主要考察的是拥塞控制和流量控制。


当然这个接收窗口是可以为0的,

传输层的窗口大小是以字节为单位的,累计确认,

这种状况一直持续到主机B重新发送一个窗口值为止,但是若是丢失了,主机AB就会互相等待,解决的方法就是设置一个持续计时器,


这里的资源主要指的是网络链路中的一些容量,比如说带宽,同样的还有交换结点中的缓存,以及交换结点中的处理机,

通过协调网络中的主机就可以防止有过多的数据注入到这个网络当中,因此就可以减去网络的阻塞情况,如下面左边的这个图,都使用某一个结点都会使得网络非常的繁忙,出现一个拥塞的情况,接收方就会察觉这样一个拥塞的情况,但是却不知道具体是那几台主机发送数据过快,或者发送数据过多造成的,而流量控制是一种点对点的通信量的控制,所以流量控制是知道找谁,

同一个颜色是放在一起来使用,而快重传和快回复也是放在一种情形下来使用的,

1 中就是不考虑捎带确认,

可以看出接收窗口是接收方确定的,而拥塞窗口时发送方确认的,接收窗口反映的时接收方的接收能力,而拥塞窗口是一个全局性的,是一个网络的当前容量问题,,

拥塞窗口的大小开始的时候默认是设置为1的,也就是CEND等于1,这个值表示此时可以发送多少个报文段,

慢开始就是指前面这一个部分,开始的时候增加缓慢,1的时候注入一个报文段,2的时候注入4个报文段,3的时候8个报文段,

ssthresh就是到了这个值之后速度就要减一点了,因为此时注入的报文段有点多所以将减缓注入的增加量,当发送阻塞直接降到慢开始的程度,继续执行慢开始算法,只要发生了网络拥塞就将其拥塞值除以2得到新的ssthresh,

一收到确认就将这个拥塞窗口翻倍,然后再去发送这个报文段

所谓的快重传就是指当收到三个冗余的确认就会执行快重传算法,使用这种就可以在超时计时器到期之前,迅速执行这样一个重传的过程,省下了很多的等待时间,这个快回复就是不是降为1,而是降为新的ssthresh的值,

这个端口是有服务器所使用的端口,另外就是客户器端使用的端口,

三次握手是建立连接时候的几个步骤,四次握手就是断开连接时候的几个步骤,在过程中一些控制位是置为0还是置为1,以及序号和确认号之间的关系,TCP的可靠传输主要是校验(和UDP方式是一样),序号(就是为字节编号),确认(确认就是为了保证可靠传输),重传(超时重传和冗余确认),TCP的流量控制就是在确认报文中设置接收窗口的值来限制发送方的发送速度,拥塞控制根据发送方自己估算的网络程度来设置一个拥塞窗口并且根据拥塞窗口来设置自己的发送窗口,另外要注意发送窗口要取拥塞窗口以及接收窗口的最小值,

相关推荐
千天夜15 分钟前
深度学习中的残差网络、加权残差连接(WRC)与跨阶段部分连接(CSP)详解
网络·人工智能·深度学习·神经网络·yolo·机器学习
虾稿29 分钟前
[手机Linux] 七,NextCloud优化设置
linux·运维·服务器
稳重的大王37 分钟前
威联通NAS部署openwrt软路由保姆级教程附镜像文件
运维·服务器
茶颜悦色vv38 分钟前
Wireshark(1)
网络·web安全·网络安全·wireshark
ZHOUPUYU42 分钟前
VMware虚拟机超详细安装Linux教程(最新版)
linux·运维·服务器·windows·微软·centos·虚拟机
成都渲染101云渲染66661 小时前
云渲染,Enscape、D5、Lumion渲染提速教程
运维·服务器·unity·电脑·图形渲染·blender·houdini
初级代码游戏1 小时前
关于linux的ld.so.conf.d
linux·运维·服务器
我叫czc1 小时前
【Python高级353】python实现多线程版本的TCP服务器
服务器·python·tcp/ip
爱数学的程序猿1 小时前
Python入门:6.深入解析Python中的序列
android·服务器·python
xianwu5431 小时前
反向代理模块。开发
linux·开发语言·网络·c++·git