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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • winscp登录主机拒绝_winscp连接被拒绝怎么解决[通俗易懂]

    winscp登录主机拒绝_winscp连接被拒绝怎么解决[通俗易懂]解决方法:1、使用“sudoufwdisable”命令关闭防火墙;2、使用“sudo/etc/init.d/sshrestart”命令开启远程服务;3、打开22端口号。本教程操作环境:RedHatEnterpriseLinux6.1系统、DellG3电脑。winscp连接被拒绝可以尝试以下方法:1)开启|关闭防火墙(这里需要关闭)sudoufwenable|disable2…

  • 天涯共此双11——天猫升级港澳台“购物天堂”

    天涯共此双11——天猫升级港澳台“购物天堂”香港北区上水60多年的老字号正和隆酱油没想过会出名。这家专注服务街坊的小店不在乎“酱香巷子深”,门店一半是透明及地的塑胶门帘,一半是一块块拼接起来的黄色纸板箱。来的都是熟客,所谓收银台就是个铅桶,顾客要付钱就把铅桶拉下来,付钱、找零,再把铅桶放上去。这是父辈们持续了半个多世纪的生意。到了店主女儿这里,事情开始改变。她赶时髦,在店里放了有支付宝二维码的蓝白…

  • String.Format使用方法[通俗易懂]

    String.Format使用方法[通俗易懂]1、作为參数多个參数intm[]=newint{a,b,c,d};string.format("{0}{1}{2}",m);一个參数privateconststr

  • Spring它不支持依赖注入static静态变量

    Spring它不支持依赖注入static静态变量

  • c语言createthread函数,C++中CreateThread函数创建线程的用法和实例

    c语言createthread函数,C++中CreateThread函数创建线程的用法和实例CreateThread是一种微软在WindowsAPI中提供了建立新的线程的函数,该函数在主线程的基础上创建一个新线程。线程终止运行后,线程对象仍然在系统中,必须通过CloseHandle函数来关闭该线程对象。需要调用到CRT库时,不要用CreateThread创建线程、并用CloseHandle来关闭这个线程,而应该用_beginthread来创建线程,_endthread来销毁线程。因为…

  • idea好看的主题插件_idea主题美化插件

    idea好看的主题插件_idea主题美化插件文章来源|blog.csdn.net/weixin_46146269/article/details/104793277IntelliJIDEA介绍IDEA,全称IntelliJIDEA,是Java语言的集成开发环境,IDEA在业界被公认为是最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS…

发表回复

您的电子邮箱地址不会被公开。

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