网络进阶学习:重要网络协议(tcp协议,udp协议,http协议)

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
简介: 网络进阶学习:重要网络协议(tcp协议,udp协议,http协议)

重要网络协议(tcp协议,udp协议,http协议)

网络协议是什么?

TCP协议

UDP协议

HTTP协议

TCP与UDP的职能区别

⭐TCP职能

⭐就TCP原理层面说应该分为三部分

建立连接

数据传输

断开连接

⭐UDP职能

⭐就UDP原理层面说应该分为三部分

发送数据

数据传输

断开连接

小结

网络协议是什么?

⭐网络协议是计算机网络中的重要组成部分,它定义了计算机之间通信的规则和标准。常见的网络协议包括TCP协议、UDP协议、HTTP协议等,下面就这些协议进行详细介绍。TCP协议

TCP协议

⭐TCP协议是一种面向连接的协议,它保证了数据传输的可靠性。TCP协议的特点是通过三次握手建立连接,保证数据传输的可靠性,同时还能实现流量控制和拥塞控制。在传输数据时,TCP协议会将数据分成多个小的数据包进行传输,接收方会确认接收到的数据包,如果有数据包丢失,TCP会进行重传,确保数据的完整性。

UDP协议

⭐UDP协议是一种无连接的协议,它不保证数据传输的可靠性。UDP协议的特点是传输速度快,适用于一些实时性要求比较高的应用,如在线游戏、语音通话等。UDP协议没有建立连接的过程,因此传输数据时不需要等待握手确认,直接发送数据包即可。但是由于UDP协议没有可靠性保障,因此在传输数据时需要自己进行数据完整性的检查和重传等操作。

HTTP协议

⭐HTTP协议是一种应用层协议,它是用来在Web浏览器和Web服务器之间传输数据的协议。HTTP协议的特点是简单、灵活、易于扩展。在HTTP协议中,客户端向服务器发送请求,服务器会返回响应。请求和响应都由多个数据包组成,数据包中包含了请求或响应的头部和正文。HTTP协议的常见应用包括Web浏览器、邮件客户端等。


TCP与UDP的职能区别

⭐TCP职能

1.建立连接:在数据传输之前,发送方和接收方需要进行三次握手建立连接,确保双方都能进行通信。

在TCP协议中,发送方和接收方需要进行三次握手建立连接,确保双方都能进行通信。具体步骤如下:

2.可靠性:TCP协议能够保证数据的可靠性,它会将数据分成多个小的数据包进行传输,在接收方确认收到数据包之前,会一直进行重传,确保数据的完整性。

⭐就TCP原理层面说应该分为三部分

建立连接

在TCP协议中,发送方和接收方需要进行三次握手建立连接,确保双方都能进行通信。具体步骤如下:

3.流量控制:TCP协议还能够实现流量控制,即根据接收方的处理能力,限制发送方的数据发送速度,避免数据包丢失和网络拥塞。


4.拥塞控制:TCP协议还能够实现拥塞控制,即根据网络的拥塞程度,自适应地调整数据发送速度,避免网络拥塞和数据包丢失。

第一次握手:发送方向接收方发送SYN包,表示发送方想要和接收方建立连接。

第二次握手:接收方收到SYN包后,向发送方发送ACK包和SYN包,表示接收方同意建立连接。

第三次握手:发送方收到ACK包和SYN包后,向接收方发送ACK包,表示发送方也同意建立连接。

数据传输

在建立连接之后,发送方和接收方就可以进行数据传输了。TCP协议会将数据分成多个小的数据包进行传输,在接收方确认收到数据包之前,会一直进行重传,确保数据的完整性。具体步骤如下:

发送方将数据分成多个小的数据包,并给每个数据包编号。

发送方将数据包发送给接收方,接收方会确认收到的数据包编号,并将确认信息发送给发送方。

如果发送方没有收到接收方的确认信息,或者接收方收到的数据包编号不连续,发送方会进行重传,确保数据的完整性。

断开连接

在数据传输完成之后,发送方和接收方需要进行四次挥手断开连接。具体步骤如下:第一次挥手:发送方向接收方发送FIN包,表示发送方不再发送数据。


第二次挥手:接收方收到FIN包后,向发送方发送ACK包,表示接收到了FIN包。


第三次挥手:接收方向发送方发送FIN包,表示接收方不再发送数据。


第四次挥手:发送方收到FIN包后,向接收方发送ACK包,表示连接已经断开。

特点:稳!

TCP是现在应用很广泛的协议,非常重要,所以应全方位去了解与学习

⭐UDP职能

1.无连接:UDP协议不需要建立连接,直接发送数据包即可。


2.速度快:由于UDP协议没有建立连接的过程,因此传输速度比TCP协议快。


3.实时性:UDP协议适用于传输实时数据,如音视频流、游戏数据等,对数据传输的时效性要求比较高。


4.不可靠性:UDP协议不保证数据传输的可靠性,传输过程中可能会出现数据丢失、重复、乱序等问题。


⭐就UDP原理层面说应该分为三部分

发送数据

在UDP协议中,发送方不需要进行连接建立,直接发送数据包即可。具体步骤如下:


发送方将数据分成多个小的数据包。


发送方将数据包发送给接收方,不需要等待确认信息。


数据传输

在数据传输过程中,UDP协议不保证数据传输的可靠性,可能会出现数据丢失、重复、乱序等问题。具体步骤如下:


接收方收到数据包后,不会发送确认信息,也不会进行重传。


如果接收方收到的数据包乱序,需要自己进行排序。


如果接收方收到的数据包有丢失,需要自己进行数据完整性的检查和重传等操作。


断开连接

在UDP协议中,不需要进行连接的断开操作,发送方可以随时停止发送数据。接收方也可以随时停止接收数据,不需要向发送方发送任何确认信息。


⭐特点:快!


小结

⭐除了上述所说的三种协议之外,还有许多其他的网络协议,如FTP协议、SMTP协议、DNS协议等。它们各自有不同的特点和应用场景,但都是计算机网络中不可或缺的一部分。在实际的网络应用中,不同的协议之间也会相互配合,共同完成数据传输和处理的任务。


诚然,网络协议是计算机网络中的重要组成部分,它们定义了计算机之间通信的规则和标准,保证了网络通信的安全、可靠和高效。在实际的网络应用中,我们需要根据具体的需求选择不同的协议,以达到最好的效果。


但网络中协议太多太多,从osi七层模型中应用层到物理层协议太多了。以学习的角度出发,一定要先了解上层的东西,而离我们最近的就是这三个协议。其他层面的协议可以作为学习了解。有一定的知识积累后,可以深入了解底层。



相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4天前
|
算法 网络协议
生成树协议:网络稳定的守护者
【4月更文挑战第22天】
10 0
|
2天前
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
|
3天前
|
负载均衡 网络虚拟化
【专栏】全网对 STP 生成树协议最全面最优质的总结,网络工程师收藏!
【4月更文挑战第28天】本文详细介绍了生成树协议(STP),用于消除网络环路并确保单向通信路径。STP基于IEEE 802.1D,涉及根桥选举、端口角色分配及构建无环路径。高级特性包括快速STP(RSTP)的快速收敛、多实例STP(MSTP)的负载均衡和容错,以及各种保护机制。文章还讨论了实际案例和故障排除,为网络工程师提供STP的全面理解与应用指南。
|
4天前
|
网络协议 Linux iOS开发
|
4天前
|
监控 安全 网络虚拟化
|
2月前
|
域名解析 网络协议 关系型数据库
tcp和udp的区别是什么
TCP和UDP是互联网协议中的传输层协议。TCP是面向连接的,通过三次握手建立可靠连接,提供数据顺序和可靠性保证,适用于HTTP、FTP等需要保证数据完整性的应用。UDP则是无连接的,数据报独立发送,传输速度快但不保证可靠性,常用于实时通信、流媒体和DNS解析等对速度要求高的场景。根据应用需求选择合适的协议至关重要。
tcp和udp的区别是什么
|
2月前
|
网络协议 网络性能优化
认识TCP和UDP的区别
重排机制:由于UDP数据包可能因网络原因而发生乱序,因此在应用层需要对接收到的数据包进行排序。
34 4
|
5天前
|
网络协议 安全 网络性能优化
CCNA 200-301系列:TCP和UDP简介
【4月更文挑战第21天】
18 8
|
5天前
|
缓存 网络协议 安全
TCP和UDP 传输层协议的区别
TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。
11 2
|
7天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信