热门标签 | 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一般用于远程登陆,发送邮件,文件传输等场景。


推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细介绍如何使用Samba软件配置CIFS文件共享服务,涵盖安装、配置、权限管理及多用户挂载等关键步骤。通过具体示例和命令行操作,帮助读者快速搭建并优化Samba服务器。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 本文深入探讨了计算机网络的基础概念和关键协议,帮助初学者掌握网络编程的必备知识。从网络结构到分层模型,再到传输层协议和IP地址分类,文章全面覆盖了网络编程的核心内容。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 配置多VLAN环境下的透明SQUID代理
    本文介绍如何在包含多个VLAN的网络环境中配置SQUID作为透明网关。网络拓扑包括Cisco 3750交换机、PANABIT防火墙和SQUID服务器,所有设备均部署在ESXi虚拟化平台上。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • 三星W799在2011年的表现堪称经典,以其独特的双屏设计和强大的功能引领了双模手机的潮流。本文详细介绍其配置、功能及锁屏设置。 ... [详细]
  • 在API测试中,我们常常需要通过大量不同的数据集(包括正常和异常情况)来验证同一个接口。如果为每种场景单独编写测试用例,不仅繁琐而且效率低下。采用数据驱动的方式可以有效简化这一过程。本文将详细介绍如何利用CSV文件进行数据驱动的API测试。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
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社区 版权所有