TCP和UDP协议的区别_tcp和ip是什么意思

TCP和UDP协议的区别_tcp和ip是什么意思最近在学习WebSocket,了解到它是采用TCP来实现异步通信,全双工.与Http不同的是,Http采用无状态,应答式的响应.因此就想知道TCP,TCP/IP,HTTP,Socket之间到底是有怎样的关联关系和区别,以及全双工通信和半双工通信是如何实现的在网络层.在计算机网络里,有两种常见的参考模型即:OSI参考模型和TCP/IP参考模型。由此可见TCP本身是传输层的协议,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

最近在学习WebSocket, 了解到它是采用TCP来实现异步通信, 全双工.与Http不同的是, Http采用无状态, 应答式的响应.因此就想知道TCP, TCP/IP, HTTP, Socket之间到底是有怎样的关联关系和区别, 以及全双工通信和半双工通信是如何实现的在网络层.

在计算机网络里,有两种常见的参考模型即:OSI参考模型和TCP/IP参考模型。由此可见TCP本身是传输层的协议, 而TCP/IP是一种网络参考模型。

1. OSI七层参考模型: 今天主要是用来清晰的了解网络结构的分层。这一模型和相关的协议并没有被使用, 但它具有普遍的意义就是对于讨论网络的体系结构中的每一层的功能是很重要的。它将服务,接口和协议的概念区分开来。每一层的接口都告诉它上面的进程如何访问本层。而且 每层用到的对等协议是本层自己内部的事情。不影响上层。它同时支持面向连接和无连接的通信。但是传输层只支持面向连接的通信。

TCP和UDP协议的区别_tcp和ip是什么意思

2. TCP/IP : 实用性高于七层。广为流传,模型本身没有多大用处。它对服务,接口和协议没有明确的区分, 下图也是人们对它进行了改进,使它更像OSI.它的网络层只支持一种面向无连接的服务, 但传输层同时支持TCP(面向连接)和UDP(面向无连接)两种通信模式。

TCP和UDP协议的区别_tcp和ip是什么意思

3. 面向连接和无连接的概念:

面向连接:

   ->服务:是指用户首先必须先建立一个连接,然后用这个连接传输数据,再释放或关闭连接.如:一个管道,发送方把数据压入管道的一端, 接收方在另一端将它们取出来.基本保持顺序.

    ->协议: TCP, 全双工, 收发两端可以同时发送和接收.连接建立需要经过3次握手, 连接断开需要4次所致手.连接方式是点对点的, 无法做到多播.

面向无连接:

   ->服务:不保证传输的数据到达,且可能无序.每个报文都携带了完整的目标地址, 由系统的中间路由出去.

   ->协议:UDP,几乎是直接和网络层的IP协议通信.在两个进程通信之前没有握手的过程, 因此称为无连接服务.当一端需要发送报文时, 通过UDP套接字发送报文,UDP不保证有序, 不保证一定被接收端收到.且没有拥塞的控制.

TCP和UDP协议的区别_tcp和ip是什么意思

TCP和UDP协议的区别_tcp和ip是什么意思

 TCP和UDP协议的区别_tcp和ip是什么意思

 TCP和UDP协议的区别_tcp和ip是什么意思

  • 从编码角度看 TCP UDP的区别如下图:
  • TCP和UDP协议的区别_tcp和ip是什么意思

4.Socket

套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。

应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

通过下图可以看, 实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议:

TCP和UDP协议的区别_tcp和ip是什么意思

5. 总结区别

协议 层次 描述
TCP 传输层 面向连接的可靠传输协议.
TCP/IP 协议栈,或称为一种网络服务模型. 网络层只提供面向无连接的服务.传输层提供TCP和UDP两种连接方式.
Sokcet 介于传输层和应用层之间 封装了传输层的TCP/IP的一组接口.为应用层提供使TCP/IP协议栈传输数据.
HTTP 应用层 它是建立在TCP/IP协议之上的一种应用协议.缺省端口是80. 提供服务端和客户的请求应答的过程. 请求结束后, 主动释放连接.

有用的链接:

https://os.mbed.com/handbook/Socket

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192834.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用vs2010生成SQL Server 随机数据

    使用vs2010生成SQL Server 随机数据

    2021年11月24日
    48
  • 分子生物学词汇(L~O)

    分子生物学词汇(L~O)                lacoperon 乳糖操纵子                laccase 漆酶                lacmus 石蕊                lactalbumin 乳白蛋白,乳清蛋白                lactam 内酰胺                lactamase 内酰胺酶                la

    2022年7月11日
    47
  • 安利一款免费、开源、实时的服务器监控工具:Netdata

    安利一款免费、开源、实时的服务器监控工具:NetdataNetdata是一个免费、开源、实时的服务器监控工具,可以可视化和监控实时数据,如CPU使用率、RAM使用率、负载、SWAP使用率、带宽使用率、磁盘使用率等。它可以帮助系统管理员了解您的系统或应用程序中正在发生的事情以及刚刚发生的事情。它可以安装在任何物理服务器、虚拟机、容器和物联网设备上。它提供了一个交互式Web界面来查看您的服务器指标,并支持用于持久存储的各种数据存储。在本教程中,我们将向您展示如何在AlmaLinux8上安装Netdata监控工具。先决条件运行Alm

    2022年5月9日
    45
  • Sublime Text 3 注册/激活方法

    Sublime Text 3 注册/激活方法Sublime是一款很好用的编辑器,虽然是免费使用,但是经常会弹出吆喝着让你购买(purchase)的弹窗,对一名优秀的强迫症来说看久了还是很烦人的。而且现在网上很多注册码都不可用。那么要怎么解决呢?下面提供两种解决方案。(我是在win10系统上操作的)二、方案方案一[1]1)建立一个bat文件(随便取个名字,如“runHost.bat”),复制以下代码到…

    2022年7月27日
    8
  • 怎么把sql删干净_sql的导入和导出的好处

    怎么把sql删干净_sql的导入和导出的好处程序数据库(PDB)文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。在使用/debug生成时,会创建一个PDB文件。可以使用/debug:full或/debug:pdbonly生成应用程序。使用/debug:full生成将产生可调试的代码。使用/debug:pdbonly生成将产生PDB,但是不会产生通知JIT编译器调试信息可用…

    2022年9月25日
    5
  • smartctl用法心得

    smartctl用法心得SMART简介S.M.A.R.T.,全称为“Self-MonitoringAnalysisandReportingTechnology”,即“自我监测、分析及报告技术”。是一种自动的硬盘状态检测与预警系统和规范。通过在硬盘硬件内的检测指令对硬盘的硬件如磁头、盘片、马达、电路的运行情况进行监控、记录并与厂商所设定的预设安全值进行比较,若监控情况将或已超出预设安全值的安全范围,就可以通过主机的监控硬件或软件自动向用户作出警告并进行轻微的自动修复,以提前保障硬盘数据的安全。除一些出厂时间极早的硬盘外,现

    2022年10月8日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号