TCP和UDP的区别是什么_socket tcp udp区别

TCP和UDP的区别是什么_socket tcp udp区别TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,每层都有相应的协议,如下图IP:网络层协议;(高速公路)TCP和UDP:传输层协议;(卡车)HTTP:应用层协议;(货物)。HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。SOCKET:套

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

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

推荐阅读:

TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手

TCP的几个状态 (SYN, FIN, ACK, PSH, RST, URG)

TCP/IP协议栈主要分为四层:应用层、传输层、网络层、数据链路层,
每层都有相应的协议,如下图

TCP和UDP的区别是什么_socket tcp udp区别

IP:

网络层协议;(高速公路)

TCP和UDP:

传输层协议;(卡车)

HTTP:

应用层协议;(货物)。HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。

SOCKET:

套接字,TCP/IP网络的API。(港口码头/车站)Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。

TCP/IP:

代表传输控制协议/网际协议,指的是一系列协议,TCP/IP 模型在 OSI 模型的基础上进行了简化,变成了四层,从下到上分别为:网络接口层、网络层、传输层、应用层。与 OSI 体系结构对比如下:
TCP和UDP的区别是什么_socket tcp udp区别

TCP/UDP区别:

TCP

(传输控制协议,Transmission Control Protocol):(类似打电话)
面向连接、传输可靠(保证数据正确性)、有序(保证数据顺序)、传输大量数据(流模式)、速度慢、对系统资源的要求多,程序结构较复杂,
每一条TCP连接只能是点到点的,
TCP首部开销20字节。

UDP

(用户数据报协议,User Data Protocol):(类似发短信)
面向非连接 、传输不可靠(可能丢包)、无序、传输少量数据(数据报模式)、速度快,对系统资源的要求少,程序结构较简单 ,
UDP支持一对一,一对多,多对一和多对多的交互通信,
UDP的首部开销小,只有8个字节。

tcp三次握手建立连接:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0RCa9tqt-1625811372297)(http://cricode.qiniudn.com/tcp-ip-handshark.png)]

第一次握手:

客户端发送syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:

服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:

客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;
主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;
主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。
三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

Websocket

Websocket协议解决了服务器与客户端全双工通信的问题。

注:什么是单工、半双工、全工通信?
信息只能单向传送为单工;
信息能双向传送但不能同时双向传送称为半双工;
信息能够同时双向传送则称为全双工。

websocket协议解析
wensocket协议包含两部分:一部分是“握手”,一部分是“数据传输”。

WebSocket和Socket区别

可以把WebSocket想象成HTTP(应用层),HTTP和Socket什么关系,WebSocket和Socket就是什么关系。

HTTP 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。

WebSocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。
它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。

参考:

揭开Socket编程的面纱

图解TCP-IP协议

Android 进阶12:进程通信之 Socket (顺便回顾 TCP UDP)

WebSocket与TCP/IP

websocket 历史及使用详解

WebSocket 教程

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

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

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


相关推荐

  • pip安装scrapy失败_scrapy框架运行

    pip安装scrapy失败_scrapy框架运行错误如图所示,running setup.py install for Twisted…..errorTwisted依赖库安装报错,重新下载手动安装一下下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs注意:看下安装的python是什么版本,我安装的python 3.9.0,就下载cp39,64位的下载安装的版本不对,就会报:Twisted-20.3.0-cp38-cp38-win_amd64.whl is not a support…

    2022年8月19日
  • 史上最全设计模式导学目录(完整版)

    史上最全设计模式导学目录(完整版)圣诞献礼!2012年-2013年,Sunny在CSDN技术博客中陆续发表了100多篇与设计模式相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式+简单工厂模式),为了方便大家学习,现将所有与设计模式学习相关文章的链接进行了整理,希望能给各位带来帮助!

    2022年6月14日
  • 安卓长按复制_Android长按弹出选项框

    安卓长按复制_Android长按弹出选项框android:textIsSelectable=”true”重点写在最前面,只用在textView中加入这个属性就可以满足长按复制了一。网上查了下有两中方式可以实现长按复制粘贴1)使用setTextIsSelectable()方法 代码中直接对TextView使用setTextIsSelectable()方法,将TextView设置成可点按选择的即可. TextViewtv=

    2022年9月26日
  • 当小样本遇上机器学习 fewshot learning

    当小样本遇上机器学习 fewshot learning引言深度学习(deeplearning)已经广泛应用于各个领域,解决各类问题,例如在图像分类问题下,如图1,区分这10类目标的准确率目前可以轻松做到94%。然而,deeplearning是一种datahungry的技术,需要大量的标注样本才能发挥作用。图1现实世界中,有很多问题是没有这么多的标注数据的,获取标注数据的成本也非常大,例如在医疗领域、安全领域等。因此,我们现在讨论的是…

    2022年4月28日
  • linux系统添加静态路由命令_静态路由和默认路由小结

    linux系统添加静态路由命令_静态路由和默认路由小结linux下静态路由修改命令方法一:添加路由routeadd-net192.168.0.0/24gw192.168.0.1routeadd-host192.168.1.1dev192.168.0.1删除路由routedel-net192.168.0.0/24gw192.168.0.1add增加路由del删除路由-net设置到某个网段的路由-host设置到某台主…

    2022年10月4日
  • UCOSII操作系统学习之任务间的通信(1)

    UCOSII操作系统学习之任务间的通信(1)1.任务间通讯方式:信号量和邮箱为了把描述事件的数据结构统一起来,UCOSII使用叫做事件控制块(ECB)的数据结构来描述诸如信号量、邮箱(消息邮箱)和消息队列这些事件。信号量,邮箱,消息队列都是一类事件。2.信号量:1)创建信号量OS_EVENT*OSSemCreate(INT16Ucnt)…

    2022年5月11日

发表回复

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

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