热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

UDPTCP

UDP(用户数据报协议)1.无连接的2.尽最大努力交付,即不保证可靠交付3.面向报文的4.UDP没有拥塞控制5.支持一对一、一对多、多对一和多对多的交互通信;6.首部开销小(只有四

UDP(用户数据报协议)

1.无连接的

2.尽最大努力交付,即不保证可靠交付

3.面向报文的

4.UDP没有拥塞控制

5.支持一对一、一对多、多对一和多对多的交互通信;

6.首部开销小(只有四个字段:源端口、目的端口、长度、检验和)。

 


TCP(传输控制协议)

1.面向连接的,使用TCP协议前建立连接,传送数据完毕后,释放已经建立的TCP连接

2.每一条TCP连接只能有两个端点(两个套接字),每一条TCP连接只能是点对点的

3.TCP提供可靠交付的服务

4.TCP提供全双工通信

5.面向字节流的

 

UDP和TCP都是传输层协议


三次握手:

 

第一次:不能携带数据,消耗掉一个序号,TCP客户进程进入SYN-SENT(同步已发送)状态 SYN(同步位)
第二次:不能携带数据,消耗掉一个序号,TCP服务器进程进入SYN-RCVD(同步收到)状态
第三步:可以携带数据,不携带数据则不消耗序号。TCP连接已经建立。
为什么A还要发送一次确认呢? 防止已失效的连接请求突然传给了B,因而产生错误。

 


四次挥手:

 

第一步:A把连接释放报文段首部(控制位FIN=1,序号seq=u),等于前面已传送过的数据最后一个字节的序号加1。A进入FIN-WAIT-1(终止状态一)。FIN报文段即使不携带数据,也消耗掉一个序号

第二步:B收到连接释放后发出确认,然后B进入CLOSE-WAIT(关闭等待)状态。此时TCP连接处于半关闭(half-close)状态,即A不用发送数据了,但B可以发送数据并且A仍要接受。A接收到B的确认后,就进入到FIN-WAIT(终止等待2)状态

第三步:B没有要向A发送的数据,B把连接释放报文段首部(控制位FIN=1,序号seq=w,ack=u + 1,ACK=1),然后B进入LAST-ACK(最后确认)状态,等待A的确认。

第四步:A收到B的释放报文段后,对此发出确认。然后进入TIME-WAIT(时间等待)状态。此时TCP连接还没有释放掉。

为什么A在TIME-WAIT状态必须等待2MSL(最长报文段寿命)的时间?

1.为了保证A发送的最后一个ACK报文段能够到达B。ACK可能丢失,导致B在LAST-ACK状态收不到确认。这时B超时重传FIN+ACK报文段,而A就能在2MSL时间内收到重传的FIN+ACK报文段,接着A重传一次确认,重启2MSL计时器。

2.防止上一次的“已失效的连接请求报文段”出现在本连接中。因为经过2MSL的时间,上一次连接产生的报文段都从网络中消失

 

 

参考资料:计算机网络[第7版][谢希仁]


推荐阅读
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • 在服务器虚拟化领域,用户面临多种选择,尤其是来自同一供应商的不同产品。正确评估这些选项对于项目的成功至关重要。本文将深入探讨VMware提供的两款主要虚拟化平台——免费的VMware Server和付费的ESX Server之间的区别,旨在为决策提供专业指导。 ... [详细]
  • 本文介绍了MySQL数据库的安全权限管理思想及其制度流程,涵盖从项目开发、数据库更新到日常运维等多个方面的详细流程控制,旨在通过严格的流程管理和权限控制,有效预防数据安全隐患。 ... [详细]
  • 深入理解BIO与NIO的区别及其应用
    本文详细探讨了BIO(阻塞I/O)和NIO(非阻塞I/O)之间的主要差异,包括它们的工作原理、性能特点以及应用场景,旨在帮助开发者更好地理解和选择适合的I/O模型。 ... [详细]
  • 自SQL Server 2005以来,微软的这款数据库产品逐渐崭露头角,成为企业级应用中的佼佼者。本文将探讨SQL Server 2008的革新之处及其对企业级数据库市场的影响。 ... [详细]
  • 本文探讨了在支付项目开发中使用SS5 Socket Server实现内部网络访问外部网络的技术方案。详细介绍了SS5的安装、配置及性能测试过程,旨在为面临相同需求的技术人员提供参考。 ... [详细]
  • 浪潮AI服务器NF5488A5在MLPerf基准测试中刷新多项纪录
    近日,国际权威AI基准测试平台MLPerf发布了最新的推理测试结果,浪潮AI服务器NF5488A5在此次测试中创造了18项性能纪录,显著提升了数据中心AI推理性能。 ... [详细]
  • 本文提供了一套实用的方法论,旨在帮助开发者构建能够应对高并发请求且易于扩展的Web服务。内容涵盖了服务器架构、数据库管理、缓存策略以及异步处理等多个方面。 ... [详细]
  • Java性能优化指南 | 制定有效的性能优化策略
    探讨Java应用性能优化的方法与策略,包括性能测试技巧、常见问题及解决方案,旨在帮助开发者提升系统性能。 ... [详细]
  • 本文详细介绍了如何设置局域网,并确保网络中的所有计算机能够相互访问和共享安装的软件。包括物理连接检查、TCP/IP设置、网络协议配置等多个方面。 ... [详细]
  • 本文详细探讨了电脑重装操作系统后无法访问网络邻居的原因及解决方案,包括检查网络配置、权限设置等多个方面。 ... [详细]
  • ipvsadm命令简介:ipvsadm是LVS在应用层的管理命令,我们可以通过这个命令去管理LVS的配置。在fedora14、Linux6.0之后系统中 ... [详细]
  • 深入解析TCP的三次握手、四次挥手及路由器的三层转发机制
    本文详细探讨了OSI七层模型中的传输层,重点分析了TCP协议的连接建立(三次握手)和断开(四次挥手)过程,以及路由器如何在三层网络中实现数据包的高效转发。 ... [详细]
  • 2023年最新:PHP本地端口配置详解
    本文详细介绍了PHP在不同环境下的本地端口配置方法及常见问题解决方案,帮助开发者更好地理解和配置PHP端口。 ... [详细]
  • NetCat,因其强大的多功能性和灵活性,被网络安全领域的专业人士誉为‘瑞士军刀’。本文将详细介绍NetCat的功能、应用场景及其在不同平台上的使用方法。 ... [详细]
author-avatar
xiumin金珉锡吧1b
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有