总结一些知识(网络编程)

本文详细解析了TCP和UDP的区别,包括TCP的可靠连接机制(校验和、确认应答、超时重传、连接管理、流量控制和最大消息长度、拥塞控制),以及TCP的三次握手和四次挥手过程。强调了三次握手在确保可靠传输中的关键作用。
摘要由CSDN通过智能技术生成

1.TCP,UDP的区别?

tcp是基于连接的,点对点的,可靠的流式套接字。适用于传输文件等对准确性要求高,对实时性要求不高的传输。

udp是无连接的,端对端的,不可靠的报式套接字。适用于传输音视频等对实时性要求比较高的传输。

2.TCP,UDP每个字母分别代表什么?

传输控制协议(TCP,Transmission Control Protocol)

用户数据报协议(UDP,User Datagram Protocol)

3.tcp为什么是可靠连接?

校验和:端对端的校验和,目的是检测数据在传输过程中的变化,由发送端计算,接收端验证。如果接收端检测到有差错,tcp段会被丢弃,重新发送。

确认应答:ACK确认号和seq序列号,一应一答,保证数据包有序到达,避免了网络拥塞导致的丢包问题。

超时重传:发送数据包在一定的时间周期内没有收到相应的ACK,等待一定的时间,超时之后就认为这个数据包丢失,就会重新发送。

连接管理:三次握手和四次挥手。

流量控制(滑动窗口控制):利用滑动窗口实现流量控制,流量控制是为了控制发送方的发送速率,保证接收方来的及时接收。

最大消息长度:在建立TCP连接的时候,双方约定一个最大的长度(MSS)作为发送的单位,重传的时候也是以这个单位来进行重传。

拥塞控制:常见方法包括慢开始、拥塞避免、快重传和快恢复。最终目的是在保证网络利用率的同时,避免网络出现拥塞现象,确保数据能够稳定、高效的传输。

4.tcp的三次握手?

  • 第一次握手:客户端向服务端发送请求,SYN置1,序号为seq=x
  • 第二次握手:服务端收到客户端发送的数据包,向客户端发送一个应答,标志位ACK置1,确认号ack=x+1,序号seq=y
  • 第三次握手:客户端收到服务端的应答后,向服务端发送最后的应答,标志位ACK置1,确认号ack=y+1

5.tcp的四次挥手?

  • 第一次挥手:客户端向服务端发送请求断开的数据包,FIN标志位置1,序号seq=m
  • 第二次挥手:服务端收到客户端请求的数据包后,会向client端发送应答,标志位ACK置1,确认号ack=m+1
  • 第三次挥手:当服务端数据交换完成,也不需要通讯,向客户端发送断开数据包,FIN标志位置1,序号seq=n
  • 第四次挥手:客户端向服务端发送应答,ACK置1,确认号ack=n+1

6.为什么连接的时候是三次握手,关闭的时候却是四次挥手?

TCP是可靠的通讯协议,是全双工通信。TCP三次握手的关键在于,序列号seq的交换确认,因为对于客户端和服务端来说,双方序列号的确认是可靠传输的关键。1、2步握手只能确定发送方收、发正常,并不能确定接收方也是收、发正常,增加了第3次握手,才能保证接收方也是收、发都正常。服务端收到客户端发来的关闭请求并不是立刻就关闭,还需要处理数据。

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值