TCP笔记补充

源端口、目标端口:表示通信双方进程的端口
序列号(seq):表示发送的包的编号
确认应答号(ack):接收的应答号
首部长度:因为TCP可变长,所以需要有一个首部长度
ACK:1bit,0为不接受,1为接受
RST:为1时,表示重置,不允许连接
SYN:为1时,表示已经或者意图建立连接
FIN:为1时,表示意图中断连接
窗口大小:用于 流量控制
校验和:避免数据丢失,用以校验TCP数据的完整性

1.什么是TCP?

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它旨在通过因特网发送数据包,并为两台计算机之间的连接提供可靠的数据传输服务。TCP确保数据能够正确无误地从发送方传输到接收方,并且接收方能够按照发送的顺序接收数据。

TCP通过以下几个关键机制来实现其可靠性和有序性:

1. **序列号**:TCP为每个发送的数据包分配一个序列号,以确保接收方能够按照正确的顺序重新组装这些数据包。

2. **确认应答(ACK)**:接收方在收到数据包后,会向发送方发送一个确认应答(ACK),告知发送方数据已成功接收。如果发送方在一段时间内未收到确认应答,它会认为数据包已丢失并重新发送该数据包。

3. **超时重传**:如果发送方在发送数据包后未收到确认应答,并且等待时间超过了设定的超时时间,它将重新发送该数据包。

4. **流量控制**:TCP通过滑动窗口机制来实现流量控制,以避免发送方发送的数据量超过接收方的处理能力。

5. **拥塞控制**:TCP还包含拥塞控制机制,用于在网络拥塞时减少发送的数据量,从而避免网络崩溃。

6. **连接管理**:TCP通过三次握手来建立连接,通过四次挥手来断开连接。这种连接管理机制确保了数据传输的可靠性和有序性。

TCP广泛应用于各种网络应用中,如网页浏览、电子邮件、文件传输等。它是互联网中最重要的传输层协议之一,为各种应用提供了可靠的通信服务。

需要注意的是,TCP虽然可靠,但也可能因为网络延迟、拥塞或其他因素而导致数据传输速度变慢。此外,由于TCP需要建立连接和进行确认应答等操作,它可能会引入一些额外的开销。因此,在选择使用TCP还是其他传输层协议时,需要根据具体的应用场景和需求进行权衡。

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

2.什么是TCP连接,与UDP的差别

TCP(Transmission Control Protocol,传输控制协议)连接是一种基于TCP协议的、可靠的、面向连接的通信方式。TCP连接是在网络中的两个节点(通常是两台计算机)之间建立的,用于在这两个节点之间传输数据。

TCP连接是可靠的,因为它通过一系列机制来保证数据的正确传输。这些机制包括:

1. 序列号:TCP为每一个发送的数据包分配一个序列号,接收方根据序列号来确认数据包的正确顺序,并检测是否有数据包丢失或重复。

2. 确认应答(ACK):接收方在接收到数据包后,会向发送方发送一个确认应答(ACK),表示已经成功接收到了该数据包。如果发送方在一定时间内没有收到确认应答,就会重新发送该数据包,以确保数据的正确传输。

3. 超时重传:TCP有一个超时重传机制,如果发送方在一定时间内没有收到接收方的确认应答,就会认为该数据包已经丢失,然后重新发送该数据包。

4. 流量控制:TCP还通过滑动窗口等机制来实现流量控制,以确保发送方不会发送过多的数据,导致接收方无法处理。

5. 连接管理:TCP通过三次握手和四次挥手等机制来管理连接的建立、传输和终止,确保连接的可靠性和有序性。

TCP连接是面向连接的,这意味着在传输数据之前,必须先建立连接。与UDP(User Datagram Protocol,用户数据报协议)相比,TCP连接需要更多的开销来建立和维护连接,但它提供了更高的可靠性和数据传输的完整性。因此,TCP连接通常用于需要可靠传输的应用场景,如网页浏览、文件传输等。

CP 和 UDP 的区别,应用场景

  • TCP:面向连接 UDP:立刻交付,无需连接
  • TCP:更可靠 UDP:不可靠
  • TCP:分片 UDP:分片
  • TCP 适用于 可靠的交付场景,UDP 适用于 包总量小、视频音频等多媒体信息。

2.TCP的三次握手

TCP的三次握手是一个过程,用于在两个计算机之间建立可靠的通信连接。以下是TCP的三次握手过程:

1. SYN(Synchronize,同步):客户端向服务器发送一个SYN报文段,其中包含一个随机序列号A,并请求建立连接。

2. SYN+ACK(Synchronize+Acknowledgement,同步+确认):服务器接收到SYN后,回复一个SYN+ACK报文段给客户端,其中包含另一个随机序列号B和对序列号A的确认。

3. ACK(Acknowledgement,确认):客户端接收到SYN+ACK后,回复一个ACK报文段给服务器,其中包含对序列号B的确认。

通过这三个步骤,客户端和服务器就建立了可靠的通信连接。需要注意的是,在第三个步骤之后,虽然连接已经被建立,但是两个计算机之间仍然不能开始发送数据,因为还需要等待对方发送的数据包到达才能开始发送数据。

3.TCP的四次挥手

在TCP中,当一个主机想要与另一个主机建立连接时,需要进行“三次握手”;而当一个主机想要结束连接时,则需要进行“四次挥手”。以下是TCP的四次挥手过程:

1. FIN(Finish,结束):发送方主机向接收方主机发送一个FIN报文段,表示自己没有数据要发送了。

2. ACK(Acknowledgement,确认):接收方主机接收到FIN后,回复一个ACK报文段给发送方主机,表示已经收到了这个FIN。

3. FIN+ACK:如果接收方主机还有数据要发送,它会先发送自己的数据,然后再发送一个FIN报文段给发送方主机,表示自己也没有数据要发送了。

4. ACK:发送方主机接收到FIN+ACK后,回复一个ACK报文段给接收方主机,表示已经收到了这个FIN+ACK。

通过这四个步骤,双方就可以完成TCP连接的关闭了。需要注意的是,在第四个步骤之后,虽然连接已经被关闭,但是两个主机之间仍然可以继续发送数据,直到它们都发送完所有的数据为止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值