TCP与UDP,TCP服务器与客户端,UDP服务器与客户端

目录

TCP

主要特点

TCP的三次握手与四次挥手

net模块 

UDP

主要特点

UDP与TCP的区别

dgram模块

TCP的服务器与客户端

创建TCP服务器

创建TCP客户端 

UDP的服务器与客户端

创建UDP服务器

创建UDP客户端


TCP

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP旨在适应支持多网络应用的分层协议层次结构。 

主要特点

TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式:

  • 可靠通信方式;
  • 基于流的方式;
  • 面向连接;
  • 在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;
  • 通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。

TCP的三次握手与四次挥手

TCP是因特网中的传输层协议,使用三次握手协议建立连接。建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。

                    

三次握手

  1. 客户端A发送连接请求到服务器B;
  2. 服务器B接收到客户端A发送的信息后必须确认信息,于是给服务器B发送状态码,并进入SYN_RECV状态;
  3. 客户端A接收到服务器B的状态后回应服务器端B,并进入Established状态 。

三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

四次挥手

  1. 若客户端A认为数据发送完成,则它需要向服务端 B 发送连接释放请求。
  2. B收到连接释放请求后,告诉应用层要释放TCP连接,然后会发送ACK包,并进入CLOSE_WAIT状态,此时表明A到B的连接已经释放,不再接收A发的数据了。但是因为TCP连接是双向的,所以B仍旧可以发送数据给A。
  3. B如果此时还有没发完的数据会继续发送,完毕后会向 A 发送连接释放请求,然后 B 便进入 LAST-ACK 状态。
  4. A 收到释放请求后,向 B 发送确认应答,此时A进入TIME-WAIT状态。当B收到确认应答后,也便进入CLOSED状态。

为什么连接时候是三次握手,关闭连接时候需要四次挥手?

因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到Server端所有的报文都

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别Null.了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值