文章目录

一、端口1. 端口的定义和作用2.服务端和客户端的区别3.常见的知名端口号有

二、TCP的原理1.TCP头部封装格式2.TCP可靠性机制三次握手确认机制四次挥手RST结束连接窗口机制

3.完整性校验4.TCP特征5.TCP的适用场景

三、UDP的原理1.UDP头部封装格式2.UDP特征3.UDP的适用场景

四、TCP与UDP的对比

首先可以看下思维导图,以便更好的理解接下来的内容。

一、端口

在计算机网络中,端口是一种虚拟数据结构,用于网络应用程序与底层网络协议(如TCP或UDP)进行通信的途径。端口可以被看作是网络地址的一部分,有助于路由器和交换机将数据传送到正确的应用程序。

1. 端口的定义和作用

端口是计算机网络中的关键概念,它为应用程序提供了一种标识和区分不同通信会话的方式。在网络通信中,数据需要通过网络传输到达目标应用程序,而端口就是这个过程中的关键。

2.服务端和客户端的区别

服务端:服务端使用知名端口号,通常是固定的,用于特定的服务或协议。知名端口号范围通常是0-1023,这些端口被IANA(Internet Assigned Numbers Authority)指定给了特定的服务。常见的知名端口号包括HTTP的80端口、FTP的20和21端口等。 客户端:客户端使用大于等于1024的随机端口号,用于临时的数据传输。

3.常见的知名端口号有

TCP 80 HTTP 超文本传输协议。

TCP 20 & 21 FTP 文件传输协议。

TCP 23 Telnet 远程登录。

TCP 25 SMTP 简单邮件传输协议。

UDP 53 DNS 域名解析协议。

TCP 443 HTTPS HTTP over SSL/TLS。

二、TCP的原理

1.TCP头部封装格式

TCP头部包含了多种信息,这些信息帮助在发送和接收数据时维持连接的可靠性和顺序。

其中包括:

Source Port (源端口) #表示数据包的发送方的端口号。帮助接收端知道哪个进程发送了这个数据包。

Destination Port (目的端口) #表示数据包的接收方的端口号。确保数据包被正确地路由到接收机上的适当进程。

Sequence Number (序列号) #用于标识发送的数据在整个数据流中的位置。允许接收端按正确的顺序重新组织接收的数据包。

Acknowledgement Number (确认号) #用于确认接收到的数据。告诉发送方哪些数据已被成功接收。

Data Offset (数据偏移) #显示TCP头部的长度。告诉接收端数据部分从哪里开始。

Reserved (保留位) #为将来的使用而预留的位。保证向前兼容,为未来的扩展预留空间。

Control Bits (控制位) #包含URG, ACK, PSH, RST, SYN, FIN等标志位,用于流控制。

URG (紧急位)设置为1时,表示“紧急指针”字段是有效的。

ACK (确认位)当设置为1时,表示“确认号”字段是有效的。

PSH (推送位)告诉接收端应该立即将数据推送到应用程序,而不是等待缓冲区填满。

RST (复位位)用于复位连接,通常在错误发生时使用。

SYN (同步位)用于建立连接时的同步。在三次握手过程中使用。

FIN (结束位)用于关闭连接,表示发送方已完成数据发送。

Window (窗口) #定义了发送方愿意接收的数据量。实现流量控制,防止接收端被发送端的数据淹没。

Checksum (校验和) #用于数据完整性校验。确保数据在传输过程中没有被篡改或损坏。

Urgent Pointer (紧急指针) #当URG标志被设置时使用。指出紧急数据的结束位置。

Options (选项) #可选字段。为TCP提供附加的功能,如最大段大小、时间戳等。

Padding (填充) #确保TCP头部的长度是32位的倍数。为了对齐头部字段。

Data (数据) #实际要传输的数据。传输应用程序的数据。

2.TCP可靠性机制

TCP的设计目的是提供一个可靠的、面向连接的通信服务。为了实现这一目标,TCP使用了以下几种主要机制。

三次握手

三次握手:在建立连接之前,发送方和接收方之间进行三次握手以确保双方都准备好交换数据。

第一次  SYN置位      A-B 第二次  SYN,ACK置位   B-A 第三次  ACK置位      A-B

确认机制

确认机制:每当数据被接收,接收方都会发送一个确认回发送方。 Seq=上一次ack Ack=上一次的seq+length

超时重传: 如果没有接收到,或接收到的是不完整数据,会再次发送Ack请求对方重发

四次挥手

四次挥手:当一方想要终止连接时,双方会进行四次挥手来安全地关闭连接。

第一次  FIN置位    A-B 第二次  ACK置位   B-A 第三次  FIN置位    B-A 第四次  ACK置位   A-B

RST结束连接

RST结束连接:一种异常结束连接的方式,当接收到带RST标志的数据包时,连接立即被终止。 收到RST置位的包后,立即结束TCP连接 收到RST置位的包后,不必等待对方的确认,直接结束TCP连接

窗口机制

滑动窗口机制:一种流量控制机制,它允许发送方调整发送数据的速度,以匹配接收方的接收能力。 滑动窗口 通过通告对方本机接收能力,来实现流量控制

3.完整性校验

完整性校验:通过Checksum字段来确保数据的完整性。 通过Checksum来检查数据完整性

4.TCP特征

优点: 可靠性高:TCP通过确认机制和滑动窗口机制确保数据的可靠传输。 顺序传输:TCP确保数据包的顺序与发送顺序一致。

缺点: 占用带宽高:由于确认机制和滑动窗口机制,TCP可能会产生额外的网络开销。 传输延迟高:三次握手和四次挥手增加了建立和终止连接的时间。

5.TCP的适用场景

对数据完整性要求高,但是对传输延迟要求低 TCP是一个重量级的协议,适用于对数据完整性和顺序有严格要求的应用场景,例如文件传输、邮件发送和Web浏览。

三、UDP的原理

UDP是一个简单的、无连接的协议,与TCP相比,它牺牲了可靠性以换取更低的延迟和开销。

1.UDP头部封装格式

与TCP相比,UDP的头部简洁得多,它只包含了最基本的信息。

2.UDP特征

优点: 占用带宽低:UDP没有确认机制,因此网络开销更小。 传输延迟低:UDP发送数据时不需要建立连接。

缺点: 没有任何可靠性机制:UDP不保证数据的顺序、完整性或可靠性。

3.UDP的适用场景

对传输延迟要求高,但数据完整性要求低 UDP适用于那些对传输速度有要求,但不需要完全可靠的数据传输的场景,例如在线视频流、语音通话和某些实时游戏。

四、TCP与UDP的对比

如有不详或错误,敬请指出。

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: