最近有很多同学在刚接触计算机网络概论的时候很容易被提及到IP,TCP,UDP....之类的东西,这里就简单论述一下他们是干什么的。
引用b站-湖科大(教书匠)
1)应用于网际的IP:
"网际的IP"通常指的是互联网协议(Internet Protocol,IP)的版本4(IPv4)和版本6(IPv6)的地址。IP地址是用来唯一标识互联网上的每一台设备的数字标识。
### IPv4(Internet Protocol version 4)
IPv4使用32位地址,通常表示为四个十进制数,每个数之间用点分隔,例如:192.168.1.1。IPv4地址的范围是从0.0.0.0到255.255.255.255。
IPv4地址的局限性在于地址空间有限,全球大约有43亿个可用的IPv4地址,这在互联网迅速增长的背景下变得越来越不够用。
### IPv6(Internet Protocol version 6)
为了弥补IPv4地址空间的不足,互联网工程任务组(IETF)开发了IPv6。IPv6使用128位地址,表示为8组4位十六进制数字,每组之间用冒号分隔,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6地址的范围从0到2^128-1,理论上可以提供超过3.4×10^38个地址。
IPv6地址的结构使得它能够更有效地处理全球范围的设备连接,支持物联网(IoT)、移动设备、云计算和未来的互联网应用。
### 总结
* **IPv4**:32位地址,适用于早期互联网应用,但地址空间有限。
* **IPv6**:128位地址,解决地址空间不足问题,支持更多设备连接,是未来互联网发展的趋势。
随着物联网、大数据、云计算等技术的快速发展,IPv6的应用将越来越广泛。
2)应用于传输层的TCP/UDP:
TCP,全称为传输控制协议(Transmission Control Protocol),是互联网协议族(IP)中的一种面向连接的传输层协议。它为应用层提供了一个可靠的、面向字节流的端到端的通信服务。TCP协议的主要目标是确保数据的可靠传输,同时提供流量控制和拥塞控制机制,以适应不同的网络环境。
### TCP的特点:
1. **面向连接**:在数据传输开始前,TCP需要在发送端和接收端之间建立一个连接。这个过程称为三次握手,确保双方都准备好进行数据交换。
2. **可靠传输**:TCP通过序列号和确认应答机制确保数据的可靠传输。如果数据包丢失或顺序错误,接收端会发送一个确认应答,请求发送端重传丢失的数据包。
3. **流量控制**:TCP使用滑动窗口机制进行流量控制,允许接收端根据其缓冲区的大小限制发送端的数据流速度,防止接收端缓冲区溢出。
4. **拥塞控制**:TCP通过慢启动、拥塞避免、快速重传和快速恢复等机制来控制网络的拥塞,确保网络资源的有效利用。
5. **面向字节流**:TCP将应用层的数据视为一个无结构的字节流,接收端将数据流重新组织为原始的分组或消息。
### TCP的应用场景:
* **文件传输**:如FTP(文件传输协议)和HTTP(超文本传输协议)使用TCP来保证文件传输的可靠性。
* **电子邮件**:SMTP(简单邮件传输协议)使用TCP来发送和接收电子邮件。
* **实时通信**:尽管UDP在实时通信中更常用,但TCP通过其可靠性和顺序保证,也被用于需要可靠数据传输的实时应用,如远程桌面协议(RDP)。
### TCP与UDP的区别:
* **可靠性**:TCP提供可靠的数据传输,而UDP不提供可靠性保证。
* **连接性**:TCP是面向连接的,需要建立和结束连接的过程;UDP是无连接的,不需要建立连接过程。
* **效率**:由于TCP提供了额外的可靠性保证,其协议开销和处理时间通常比UDP长,因此在对延迟敏感的应用中,UDP通常更快。
* **应用场景**:TCP适用于需要可靠数据传输、顺序保证和流量控制的应用;UDP适用于实时通信、广播和多播等对延迟敏感的应用。
TCP和UDP的选择取决于应用的具体需求。对于需要可靠数据传输的应用,TCP是更好的选择;而对于实时性要求高、对数据完整性和顺序不敏感的应用,UDP是更合适的选择。
UDP,全称为用户数据报协议(User Datagram Protocol),是互联网协议族(IP)中的一种无连接的传输层协议。与TCP(传输控制协议)不同,UDP不提供可靠性保证、顺序保证或流量控制,因此它在数据传输的速度上通常比TCP快,但数据的完整性和顺序可能会受到破坏。
### UDP的特点:
1. **无连接**:UDP不建立连接,发送数据前不需要与接收方建立任何连接,因此启动和停止都很快。
2. **不可靠**:数据包可能丢失、重复或乱序到达,没有确认机制保证数据的完整性和顺序。
3. **不保证顺序**:数据包到达的顺序可能与它们被发送的顺序不同。
4. **不保证不重复**:数据包可能多次到达接收端。
5. **不保证唯一性**:数据包可能重复发送,但接收端无法区分。
### UDP的应用场景:
* **实时通信**:如在线游戏、语音和视频通话,因为这些应用对延迟敏感,可以容忍数据丢失或乱序。
* **广播和多播**:UDP支持广播和多播,使得一个发送者可以向多个接收者同时发送数据。
* **DNS查询**:DNS服务器使用UDP进行查询响应,因为它提供了快速的响应时间。
* **网络发现**:如NAT-PMP(Network Address Translation Port Mapping Protocol)用于在NAT网络中发现和映射端口。
### UDP与TCP的区别:
* **可靠性**:TCP提供可靠的数据传输,通过确认、重传和流量控制机制确保数据的完整性和顺序;而UDP不提供这些服务,数据的丢失或乱序无法通过协议本身得到纠正。
* **连接性**:TCP是面向连接的,意味着在数据传输前需要建立连接;而UDP是无连接的,不需要建立连接过程。
* **效率**:由于UDP不提供可靠性保证,其传输过程更加简单,通常比TCP快,适合对延迟敏感的应用。
UDP和TCP的选择取决于应用的具体需求。对于需要可靠数据传输、顺序保证和流量控制的应用,TCP是更好的选择;而对于实时性要求高、对数据完整性和顺序不敏感的应用,UDP是更合适的选择。
以下是对在应用层 HTTP、SMTP、DNS 和 RTP 的介绍:
**HTTP(超文本传输协议)**: 这是用于在万维网(World Wide Web)上传输数据的应用层协议。它定义了客户端(如浏览器)和服务器之间如何请求和传输网页、图像、文件等资源。HTTP 基于请求-响应模型工作,客户端向服务器发送请求,服务器返回相应的响应。常见的 HTTP 方法包括 GET(获取资源)、POST(提交数据)、PUT(更新资源)、DELETE(删除资源)等。
**SMTP(简单邮件传输协议)**: 用于电子邮件的发送。当用户通过电子邮件客户端撰写邮件并点击发送时,邮件客户端使用 SMTP 协议将邮件发送到邮件服务器,然后邮件服务器再将邮件转发到接收方的邮件服务器。
**DNS(域名系统)**: 它的作用是将易于人类理解的域名(如 [www.example.com)转换为计算机可理解的](http://www.example.com%EF%BC%89%E8%BD%AC%E6%8D%A2%E4%B8%BA%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%8F%AF%E7%90%86%E8%A7%A3%E7%9A%84) IP 地址。当您在浏览器中输入一个域名时,DNS 服务器会将该域名解析为对应的 IP 地址,以便能够建立与目标服务器的连接。
**RTP(实时传输协议)**: 主要用于实时数据的传输,如音频和视频的流媒体。RTP 通常与 RTCP(实时传输控制协议)一起使用,以提供流量控制、拥塞控制和质量反馈等功能。
这四种协议在互联网通信中都发挥着重要的作用,各自适用于不同的应用场景和数据类型。
为了方便大家记忆:
HTTP、SMTP、DNS 和 RTP 的介绍:
HTTP 全称是 HyperText Transfer Protocol(超文本传输协议)。
SMTP 全称是 Simple Mail Transfer Protocol(简单邮件传输协议)。
DNS 全称是 Domain Name System(域名系统)。
RTP 全称是 Real-time Transport Protocol(实时传输协议)。