每日收获与问题解决(0313)

TCP是一种面向连接、可靠的通信协议,通过三次握手建立连接,四次挥手拆除连接,提供数据校验和重传机制。UDP则是无连接的,注重高效传输,但不保证数据可靠性。网络分层模型中,TCP和UDP位于传输层。三次握手确保连接建立,四次挥手则用于断开连接。UDP通信更简洁,适用于广播或多播场景,而TCP适合需要稳定传输的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

一.TCP、UDP区别

  1. TCP面向连接,通过三次握手建立连接,四次挥手接除连接;UDP是无连接的,即发送数据之前不需要建立连接,这种方式为UDP带来了高效的传输效率,但也导致无法确保数据的发送成功。
  2. TCP是可靠的通信方式。通过TCP连接传送的数据,TCP通过超时重传、 数据校验等方式来确保数据无差错,不丢失,不重复,且按序到达;而UDP由于无需连接的原因,将会以最大速度进行传输,但不保证可靠交付,也就是会出现丢失、重复等等问题。
  3. TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流,由于连接的问题,当网络出现波动时,连接可能出现响应问题;UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。
  4. 每一条TCP连接只能是点到点的;而UDP不建立连接,所以可以支持一对一,一对多,多对一和多对多的交互通信,也就是可以同时接受多个人的包。
  5. TCP需要建立连接,首部开销20字节相比8个字节的UDP显得比较大。

  6. TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。

二.网络分层模型

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATUMmV0Q=,size_20,color_FFFFFF,t_70,g_se,x_16 

三.三次握手、四次挥手

三次握手原理:

第1次握手:客户端发送一个带有SYN(synchronize)标志的数据包给服务端;

第2次握手:服务端接收成功后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了;

第3次握手:客户端再回传一个带有ACK标志的数据包,表示我知道了,握手结束。

其中:SYN标志位数置1,表示建立TCP连接;ACK标志表示验证字段。

四次挥手原理:

第1次挥手:客户端发送一个FIN,用来关闭客户端到服务端的数据传送,客户端进入FIN_WAIT_1状态;

第2次挥手:服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态;

第3次挥手:服务端发送一个FIN,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状态;

第4次挥手:客户端收到FIN后,客户端t进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,服务端进入CLOSED状态,完成四次挥手。

其中:FIN标志位数置1,表示断开TCP连接。
 

四.编写流程

1.UDP

服务器端(流程):

①创建服务器 DatagramSocket类 +指定端口 (定义服务器端的监听端口)

②准备接收容器 字节数组 +封装成DatagramPacket数据报 (准备容器接收数据)

③接收数据

④分析数据

⑤释放资源

客户端(流程):

①创建客户端 DatagramSocket类 +指定端口 (定义客户端的监听端口)

②准备数据 字节数组

③封装成数据包 需要指定包发送的地址+端口 即服务器地与端口 (打包要发送的数据)

④发送数据

⑤释放资源

 2.  TCP

服务器端:

①创建服务器 指定端口

创建服务器ServerSocket,在创建时,定义ServerSocket的监听端口(在这个端口接收客户端发来的消息!)

②等待客户端连接

ServerSocket调用accept()方法,使之处于阻塞状态

③分析接收数据

利用Socket进行接收和发送数据

客户端:

①连接服务器: 创建客户端 +指定服务器地址 +端口

创建客户机Socket,并设置服务器的ip及端口,客户机发出连接请求,建立连接。

②发送数据

通过Socket发送数据,和接收数据


 





 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值