TCP和UDP区别
UDP(用户数据报协议)和TCP(传输控制协议)是两种主要的传输层协议,它们在网络通信中扮演着不同的角色。以下是它们的一些主要区别和特点:
1. 连接性
- TCP:面向连接的协议。在发送数据之前,TCP会建立一个可靠的连接,确保双方可以进行通信。连接的建立过程称为“三次握手”。
- UDP:无连接的协议。它不建立连接,数据包可以直接发送到目标主机。
2. 可靠性
- TCP:提供可靠的数据传输。它通过序列号、确认应答、重传机制和流量控制等方式,确保数据按顺序、完整地送达对方。
- UDP:不提供可靠性保障。数据包可能会丢失、重复或乱序,应用程序需要自行处理这些问题。
3. 数据流控制
- TCP:具有流量控制和拥塞控制机制,以确保发送方不会超出接收方的处理能力,并在网络拥塞时减缓数据发送速度。
- UDP:没有流量控制和拥塞控制机制,发送方可以不受限制地发送数据。
4. 数据传输速度
- TCP:由于需要建立连接和进行确认,通常传输速度较慢。
- UDP:由于不需要建立连接和确认机制,传输速度较快,更适合对速度要求高的应用场景。
5. 适用场景
- TCP:适用于需要高可靠性的应用,如文件传输(FTP)、电子邮件(SMTP、IMAP)、网页浏览(HTTP/HTTPS)等。
- UDP:适用于对实时性要求较高且能够容忍一定数据丢失的应用,如视频会议、在线游戏、语音通话(VoIP)等。
6. 数据封装
- TCP:数据包被称为“段”,每个段都有序列号和确认号。
- UDP:数据包被称为“数据报”,每个数据报都有源端口号和目标端口号。
总的来说,TCP注重可靠性和完整性,适合需要确保数据准确传输的场景,而UDP注重速度和实时性,适合需要快速传输但可以容忍一定数据丢失的应用。
IP段20byte
IP fiags 切片是否是最后的一个,不是则1,是则0。
生存时间 : Ttl = 64 128 转发一个64-1 直至0,不再转发,告诉找不到
TCP段 20byte
发送编号,应答编号
Sudo wireshark 抓包软件、、查看了tcp三次握手四次挥手
http交互过程
在IP数据包中,“标志(Flags)”字段是IP头部的一部分,用于控制和管理数据包的分片和重组。IP标志字段的目的是帮助处理较大的数据包,使其在网络中能够被有效地传输。特别是在IPv4中,标志字段在数据包的分片过程中扮演着重要角色。
IP标志字段的结构
在IPv4头部的**“分片”**部分,标志字段占用了3位。它们包括:
-
保留位(Reserved bit):这位通常保留给将来的使用,目前应设置为0。
-
不分片标志(Don’t Fragment, DF):如果此标志被设置为1,表示数据包不能被分片。如果数据包过大无法通过网络传输,会被丢弃并返回一个“需要分片但设置了DF标志”的错误消息(ICMP消息)。
-
更多分片标志(More Fragments, MF):如果此标志被设置为1,表示当前数据包后面还有更多的分片。如果数据包的最后一片分片,MF标志会被设置为0。
IP标志字段的功能和作用
-
分片(Fragmentation):当一个数据包超过了网络的最大传输单元(MTU)时,它会被分片。标志字段中的DF标志决定了数据包是否可以被分片,而MF标志则帮助接收方知道数据包是否还有后续的分片。
-
重组(Reassembly):接收方通过标志字段和分片偏移量将所有的分片重新组装成原始数据包。MF标志用于指示是否还有更多的分片需要接收,分片偏移量则用于确定数据在重组时的正确位置。
例子
假设有一个较大的数据包需要通过网络传输,由于网络中的MTU限制,它会被分成多个分片。在这个过程中:
- 每个分片的头部中包含相同的标志字段。
- 如果MF标志被设置为1,接收方知道还有更多的分片来进行重组。
- 如果最后一个分片的MF标志被设置为0,接收方知道所有的分片已经接收完毕。
通过这些标志,网络能够有效地管理大数据包的分片和重组,确保数据能够正确地传输到目标主机。