ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算机网络

2022-02-10 22:33:52  阅读:130  来源: 互联网

标签:发送 ack 握手 计算机网络 连接 服务端 客户端


UDP特点:

    1.UDP是无连接的,直接进行连接传输数据,不需要建立三次握手。

    2.UDP是面向报文的

    3.UDP没有拥塞控制

TCP特点:

    1.面向连接,传输通信之前需要建立连接。

     2.每一条tcp连接只能是点对点

     3.tcp提供全双工通信,双方可以同时发送和接收数据。

     4.tcp提供可靠交付,可靠有序,不丢不重

     5.tcp面向字节流

TCP如何实现可靠传输:

  1.流量控制:控制发送方的发送速率,让接收方能来得及接收。

          实现方法:利用滑动窗口机制,接收方根据接收数据的大小,动态调整发送方的发送窗口的大小,通过设置ack中窗口大小来通知发送方。

   2.拥塞控制:防止过多的数据注入到网络中造成拥塞情况。

TCP三次握手与四次挥手:

  三次握手:

      第一次握手:客户端发送syn以及seq数据包,表示想建立连接。客户端进入syn_sent状态。

      第二次握手:服务端收到syn包后,发送ack确认包(syn+1),表示收到连接请求信息,服务端进入syn_rcvd状态。

      第三次握手:客户端收到ack确认信息后,发送数据,两边进入establelish状态。

  四次挥手:

    客户端发送FIN包,表示断开连接,客户端进入time_wait_1状态。

    服务端收到FIN包后,发送ack确认包,表示收到断开连接请求,服务端进入close_wait状态。客户端接收到进入time_wait_2状态

    过一会后

   服务端发送FIN包,表示断开连接,服务端进入last_ack状态。

  客户端发送ack确认包,表示收到断开信息,进入time_wait状态。服务端收到ack确认包后,就会关闭连接。客户端需要等待2MSL之后,没有收到任何信息,则说明服务端已经关闭连接。就会关闭连接。

为什要三次握手?

    如果客户端发送的连接请求在网络中延迟了,知道连接建立后才到服务端,服务端会认为是一个新的请求,会发送应答信息到客户端,但是客户端此时并没有发送信息,因此不会应答,服务端收不到则会一直发送,造成浪费。三次握手,则服务端没有收到确认信息的话,就认为客户端没有发送请求。

为什么四次握手?

   服务端发送确认断开请求后,会继续发送没有发送完的数据到客户端,发送完成后会发送FIN断开请求信息,因此需要四次握手。

为什么等待2SML时间?

   1.保证全双工通信的连接能够可靠关闭。当server端没有收到客户端发送的ack确认断开连接信息,会在超时之后重新发送FIN包,那么如果不等待2MSL时间,关闭连接的话,会收不到server端发送的数据。造成server端一直重传,不能关闭的状态。因此要等待2MSL时间,这个时间内,如果server端发送数据的话,client端会响应。

 

   

标签:发送,ack,握手,计算机网络,连接,服务端,客户端
来源: https://www.cnblogs.com/bingbingzuishuai/p/15881344.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有