运输层协议

如何优化TCP 协议,来达到好的效果

在这里插入图片描述
左面主机想和右面主机进行通讯
在应用层:进程主体,申请端口,创建套接字(一个四元组),两端的套接字和套接字进程通讯。
在运输层:端到端:防火墙
在网络层:主机和主机之间的(IP 和 IP 之间)

运输层协议概述:
TCP :传输控制协议,面向连接,可靠的数据传输协议。
UDP :用户报协议,无连接,不可靠的数据传输协议。
交付和差错检验是TCP / UDP 最低责任。
基本责任,将两个运行在端上的进程之间负责通信。

UDP 为什么要进行差错检验?
对于可靠还是不可靠,讲的是,包到的顺序,有没有丢包,UDP 并不管理丢包。
不过一个包经过一系列过程中,到达对端,还是要进行差错检验的。
差错检验:奇偶校验。。。
有问题的数据丢掉,没有问题的数据交付。
有差错的包是否可以恢复?只要加的校验码足够多,就可以。

所谓的连接,并不是真的有一个线,将两个对象连在一起,而且两端上各自有一个数据,来存储对方的数据,知道对方的变化。

对于UDP ,不需要知道对方的状态。发送的时候不知道对方是否还在线,如果对方不在线的话,UDP 依然会发送数据,这就给网络带来了一定的压力,所以使用UDP 的时候,需要在应用层,做一个封装。所以对于网络来说,UDP 是不友好的。

多路复用,多路分解:
当一个地址收到很多消息,到了之后,需要分发信息(多路分解)。
每个端口发送的信息,都经过这一个地址(多路复用)。

多路复用和多路分解
在这里插入图片描述
在运输层,只关注端口。
在网络层,只关注从哪里来的,到哪里去。

在这里插入图片描述
一个网站服务端,两个客户。
客户A, 发送一个报文,四元组
客户C,发送两个报文,开了两个客户端,在C 中也有一个26145 的端口,但是对于服务端来说,这还是3个客户,虽然房间号一致,但是楼号不一致。

为什么会选择无连接的运输服务 UDP

  1. 关于何时、发送什么数据的应用层控制更为精细(使用TCP ,发送数据,不受自己控制,即使自己发送太快,TCP 也会根据自己流量控制,拥塞控制,发送数据。UDP, 没有这个限制)
  2. 无需建立连接(代价小,效率高)
  3. 无状态连接(负担小)
  4. 分组开销小(每一个包的真实信息承载量更大)

SNMP 简单网络管理协议
所有网络提供商,管理光猫。
在网络不太顺畅的时候,TCP 会限制发送,使用UDP 就像是一个法外狂徒,可以全力使用网速,虽然可能会对网络造成更大的阻塞(TCP 更加抑制),这个时候,需要管理网络,限制发送端的流量,尽可能限制UDP 发送,虽然也限制了TCP。
在网络中发生了网络风暴(形成死循环的情况,可能是路由表出现问题,或者是DNS 层面发生问题,导致信息一直在内部循环,数据会越来越多,导致TCP 连接无法建立),这个时候管理网络,只能使用UDP,发送很多的包,有一个到达一个路由器,就会组织风暴的发生。
在这里插入图片描述
UDP 采用的是循环冗余校验。

UDP 校验和
在这里插入图片描述
先对所有的相加,看最后一组,发生了溢出,溢出的1与原本相加得到的后两位01 相加,得到了10,每次相加都这样循环,最终得到校验码。

如何构建一个可靠的连接。

方法1 : 使用一个可靠的信道。(运输层传输为可靠,TCP)
当使用一个不可靠的信道,我们需要做哪些事情,让不可靠的信道,变得可靠。

在写一个大型应用的时候,我们应该需要考虑,我们需要使用什么。

RDT 1.0: 完全可靠的信道
在这里插入图片描述
发送方:拥有完全可靠的信道,创建一个数据包,使用UDP 发送包就可以
接收方:可靠的接收信息,解析包,上传数据即可。

RDT 2.0 : 具有比特差错信道。传递的信息不会丢失。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值