TCP协议UDP协议和HTTP协议

TCP和UDP都是传输层协议,TCP提供可靠连接,通过三次握手建立,确保数据顺序和完整性,适合需要高可靠性的应用。UDP则是无连接的,速度快但不保证数据到达,适用于实时性要求高的场景。HTTP基于TCP,是应用层协议,用于Web服务器与客户端之间的信息交换。TCP的拥塞控制避免网络拥堵,而UDP则无此机制。
摘要由CSDN通过智能技术生成

TCP协议UDP协议和HTTP协议


HTTP 是应用层协议,而 TCP 和UDP是传输层协议


TCP协议和UDP协议

TCP是一种可靠的连接,会保证每一条数据都传输到位,比如,想要每条数据都不落的展现并且暗一点过的顺序,而UDP只管发送数据,不在乎数据是否已经发送到,因此UPD传输速度比较快,通常用于一些比较需要实时性的连接,比如发微信消息,微信语音,

TCP

TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由 IETF 的RFC 793定义。TCP 是面向连接的可靠的流协议。流就是指不间断的数据结构,你可以把它想象成排水管中的水流。


1.TCP连接的过程

1.发起请求时三次握手
在这里插入图片描述

为什么要三次握手而不是两次握手

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


断开连接的四次挥手
在这里插入图片描述

为什么 客服端要经过超市等待时间才能关闭链接

这是为了保证服务端接收到ACK包

如果客服端立即关闭链接这时ACK 包发生了丢失,服务端会一直进入等待确认状态
如果有超时等待时间,当服务端没有收到ACK包时会重新发生FIN包,客服端会响应这个FIN包然后从新发送ACK包并刷新超时等待时间


2.TCP协议的特点

  • 面向连接

面向连接,是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接,是为数据的可靠传输打下了基础。

  • 仅支持单播传输

每条TCP传输连接只能有两个端点,只能进行点对点的数据传输,不支持多播和广播传输方式。

  • 面向字节流
    TCP不像UDP一样那样一个个报文独立地传输,而是在不保留报文边界的情况下以字节流方式进行传输。

  • 可靠传输

对于可靠传输,判断丢包,误码靠的是TCP的段编号以及确认号。TCP为了保证报文传输的可靠,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。

  • 提供拥塞控制

当网络出现拥塞的时候,TCP能够减小向网络注入数据的速率和数量,缓解拥塞

什么是拥塞控制? 计算机网络是共享的,流量控制避免的是发送方填满接收方的空闲空间,而拥塞控制是避免发送方填满整个网络。

拥塞控制算法有几种?
在这里插入图片描述
在这里插入图片描述

  • TCP提供全双工通信

TCP允许通信双方的应用程序在任何时候都能发送数据,因为TCP连接的两端都设有缓存,用来临时存放双向通信的数据。当然,TCP可以立即发送一个数据段,也可以缓存一段时间以便一次发送更多的数据段(最大的数据段大小取决于MSS)


UDP

它直接向目标计算机发送数据包(数据传输的单位),而不先建立连接,也不指示所述数据包的顺序,或检查它们是否按预期到达。(UDP 数据包被称为“数据报”)

  • UDP不提供可靠性

它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。

  • UDP 是无连接的

发送数据之前不需要建立连接(发送数据结束时也没有连接可释放),减少了开销和发送数据之前的时延

  • UDP 没有拥塞控制

网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的

  • UDP 支持一对一、一对多、多对一和多对多的交互通信

TCP与UDP的区别:

1、基于连接与无连接;

2、对系统资源的要求(TCP较多,UDP少);

3、UDP程序结构较简单;

4、流模式与数据报模式 ;

5、TCP保证数据正确性,UDP可能丢包;

6、TCP保证数据顺序,UDP不保证。


HTTP

HTTP是客户端浏览器或其他程序与Web服务器(后端)之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时, 你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请 求后会组织响应数据封装成一个Http响应返回给浏览器。即没有请求就没有响应。

http请求包括:请求行、请求头、请求体

http响应包括:响应行、响应头、响应体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万事胜意sy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值