热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

常见面试题_常见面试题——TCP和UDP的区别?

关于TCP和UDP的区别,是一个老生常谈的问题了。在面试的时候很容易被问到,那么两者到底有什么区别呢?首先看我从网上找的一个图。很清晰的能够看出,UDP是无连接的,这是什么意思呢?这

关于TCP和UDP的区别,是一个老生常谈的问题了。在面试的时候很容易被问到,那么两者到底有什么区别呢?首先看我从网上找的一个图。

技术图片

很清晰的能够看出,UDP是无连接的,这是什么意思呢?这就是在传送数据的时候,UDP是不需要进行连接的,远方的主机在收到UDP的请求时,不需要经过任何的确认,虽然它不提高可靠的交付,但是在某种情况下,UDP的价值是最大的,比如视频连接,直播,语音等等功能。

而TCP呢,是一个面向连接的服务,也就是说只有先建立连接,才能传送数据,同样在结束时还要释放连接,同样TCO不提供广播或者多播服务。那么为什么TCP传输时可靠的呢?

1.应用数据被分割成TCP认味最适合发送的数据块。

2.TCP给每个包进行了编号,接收方把数据包进行排序,然后讲将有序数据传送给应用层。

3.校检和:TCP将保持他首部和数据的校检和,这是一个端到端的校检和,目的是为了检测数据在传输过程中的变化,如果校检和出现了差错,TCP将丢弃这个报文段,并不确认收到此报文段。

4.TCP的接收端会丢弃重复的数据。

5.流量控制:TCP连接的每一方都有一个固定的大小缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据,当接收方来不及处理发送方的数据时,就能提示发送方降低发送速率,防止包的丢失。TCP使用的流量控制协议时可变大小的华东窗口协议。

6.拥塞控制:当网络拥塞时,减少数据的发送

7.ARQ协议:每发完一个分组就停止继续发送,等待对方的确认,在收到确定后在发下一个分组。

8.超时重传:当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能即使确认,就将重发这个报文段。

TCP在传输数据之前要还会有三次握手时来建立连接,而且在数据传输时,还会有确认,窗口,重传,拥塞这些控制机制,在数据传完之后,还会断开连接来节约资源。这也就增加了很大的资源消耗,所以TCP一般用于远程登陆,发送邮件,文件传输等场景。


推荐阅读
  • 本文将详细探讨 Linux 系统中的 netstat 命令,该命令用于查看网络状态和连接情况。通过了解 IP 地址和端口的基本概念,我们将更好地理解如何利用 netstat 命令来监控和管理网络服务。 ... [详细]
  • 本文深入探讨了网络编程中的基本概念,如指针、引用和可重入函数,并详细介绍了OSI七层模型和TCP/IP四层模型的功能与协议。同时,文章还对比了HTTP与HTTPS的区别,分析了HTTP请求报文的结构,讨论了TCP与UDP的主要差异,以及滑动窗口协议的工作原理。 ... [详细]
  • 本文详细记录了作者从7月份的提前批到9、10月份正式批的秋招经历,包括各公司的面试流程、技术问题及HR面的常见问题。通过这次秋招,作者深刻体会到了技术积累和面试准备的重要性。 ... [详细]
  • 本文详细介绍了如何设置局域网,并确保网络中的所有计算机能够相互访问和共享安装的软件。包括物理连接检查、TCP/IP设置、网络协议配置等多个方面。 ... [详细]
  • 本文详细探讨了电脑重装操作系统后无法访问网络邻居的原因及解决方案,包括检查网络配置、权限设置等多个方面。 ... [详细]
  • ipvsadm命令简介:ipvsadm是LVS在应用层的管理命令,我们可以通过这个命令去管理LVS的配置。在fedora14、Linux6.0之后系统中 ... [详细]
  • 2023年最新:PHP本地端口配置详解
    本文详细介绍了PHP在不同环境下的本地端口配置方法及常见问题解决方案,帮助开发者更好地理解和配置PHP端口。 ... [详细]
  • 树莓派摄像头配置与应用指南
    本文详细介绍了如何在树莓派上配置和使用摄像头,包括启用摄像头接口、简单的图片和视频捕捉方法以及如何通过网络实时传输视频流。 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • 利用jstack进行死锁检测与线程堆栈分析
    本文介绍了如何使用jstack工具进行Java应用中的死锁检测及高CPU使用率线程的堆栈分析,帮助开发者快速定位并解决性能瓶颈。 ... [详细]
  • 如何有效提高Windows 7的启动性能
    本文探讨了提高Windows 7启动速度的方法,包括微软官方建议及用户可采取的具体措施,旨在帮助用户解决启动缓慢的问题。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 本文详细介绍了Linux内核中misc设备驱动框架的实现原理及应用方法,包括misc设备的基本概念、驱动框架的初始化过程、数据结构分析以及设备的注册与注销流程。 ... [详细]
  • 探讨如何利用Electron框架,通过拖动HTML元素(如音乐列表项)到桌面来实现本地文件的复制。 ... [详细]
  • QNX 微内核(procnto-instr)的监测版本内置了高级跟踪与分析工具,能够实现实时系统监控。该模块适用于单处理器及多处理器系统。 ... [详细]
author-avatar
小月骄阳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有