计算机网络的各种基本概念总结(七层模型,TCP,HTTP,socket,RPC等)

计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构 源端口和目标端口,与TCP类似,标识即该数据包由谁发送,由谁接收包长度:UDP头部长度+数据长度校验和:伪头部,头部,数据 三部分的校验和,伪头部并非UDP报文中的有效数据,是提取了IP数据报中的源IP,目的IP信息并加上协议等字段构造的数据。伪头部在实际网络传输中,仅用作校验和计算使用,并不发送!因此称为伪头部。不建立连接:减少了三次握手的耗时,也就不需要维护连接状态,包括收发状态等不保证可靠交付:报文可能丢失、乱序,而且不负责重发。丢失时可以通知应用层,让应用层组织重发。 阅读详情

结构模型篇


OSI网络结构的七层模型

第七层:应用层

定义了用于在网络中进行通信和数据传输的接口 - 用户程式;提供标准服务,比如虚拟终端、文件以及任务的传输和处理;

第六层:表示层

掩盖不同系统间的数据格式的不同性; 指定独立结构的数据传输格式; 数据的编码和解码;加密和解密;压缩和解压缩

第五层:会话层

管理用户会话和对话; 控制用户间逻辑连接的建立和挂断;报告上一层发生的错误

第四层:传输层

管理网络中端到端的信息传送; 通过错误纠正和流控制机制提供可靠且有序的数据包传送;提供面向无连接的数据包的传送;

第三层:网络层

定义网络设备间如何传输数据;根据唯一的网络设备地址路由数据包;提供流和拥塞控制以防止网络资源的损耗

第二层:数据链路层

定义操作通信连接的程序;封装数据包为数据帧;监测和纠正数据包传输错误

第一层:物理层

定义通过网络设备发送数据的物理方式;作为网络媒介和设备间的接口;定义光学、电气以及机械特性。


五层结构

五层结构其实是把七层结构的应用层、表示层、会话层合在一起,统一叫做应用层。

 

协议篇

 

TCP协议

TransmissionControl Protocol,传输控制协议,又叫三次握手协议,建立TCP连接时需要经过三次握手,关闭TCP连接时需要四次握手。

TCP协议是传输层协议,是面向连接的协议。

 

UDP协议

UserDatagram Protocol,用户数据报协议,UDP是传输层协议,面向数据报,不提供可靠性,没有三次握手,不保证数据到达,没有超时重发,传输速度非常快。

 

IP协议

InternetProtocol,网络互连协议,规定了网络上计算机通信时的规则。

 

TCP/IP协议

和TCP协议不同,TCP/IP协议是一个协议族,包含了应用层,传输层,网络层的很多协议。

应用层:HTTP协议,FTP协议,SNMP协议,TELNET协议。

传输层:TCP协议,UDP协议。

网络层:IP协议,ICMP协议,ARP协议。

 

HTTP协议

HTTP协议是超文本传送协议(HyperText TransferProtocol)的缩写.

HTTP协议是应用层协议。

 

HTTP2.0

HTTP2.0使用了多路复用技术,可以在一个连接中并发处理多个请求,每个请求都有一个id。另外在HTTP1.1的基础上进行了很多优化和改进,大幅提高了性能。

HTTP2.0是向下兼容的。

 

WebSocket协议

WebSocket协议是应用层协议,和socket不是一回事。层级划分上来说,WebSocket协议和http协议一样都是基于TCP协议,用来传输数据的。

WebSocket协议依赖HTTP协议进行第一次握手,然后就直接从TCP通道传数据,不再需要HTTP协议。

基于WebSocket建立的连接是一种全双工的连接,连接双方没有主次关系,任何一方都可以主动向另一方发起请求,是一种真正的持久连接,这一点和HTTP协议的长连接或者轮询连接是不一样的。

 

连接篇

 

HTTP连接

基于HTTP协议,采用请求-响应机制,需要客户端先发消息给服务端,而服务端无法主动发消息给客户端。

HTTP连接中的长连接和短连接都是基于TCP连接的长连接和短连接。

http连接分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。

HTTP连接中的长连接:

从HTTP1.1开始,默认使用长连接,支持的方法是默认在请求头中添加:”connection:keep-alive”。有些情况比如服务端连接次数过多时,在服务端给客户端返回的内容里面会加入这么一条:Connection:close”,表示连接已经被关闭。除了Connection:keep-alive之外,还会设置Keep-alive:timeout=20,表示TCP连接保持20秒。

注意:HTTP的长连接并不是真正的持久连接,只是可以在一次连接时效内处理多个请求,每次请求都是需要带着请求头的,这一点和全双工的WebSocket是不同的。

有的文章中讨论的HTTP连接其实指的是HTTP的短连接。

 

TCP连接

TCP协议下可以建立长连接或者短连接,长连接和短连接在建立连接的时候都需要3次握手,不同之处在于,短连接在传送完信息之后连接就会关闭,长连接则不会立即关闭。

 

socket篇


socket概念

socket的中文名字是套接字,是支持TCP/IP协议的网络通信的基本操作单元。形象的来说就是TCP/IP网络中建立连接的两端。

socket位于应用层和传输层之间,算是一个抽象层,是对TCP/IP协议的封装并抽象出了一组接口,供应用层调用。

传输层的TCP协议和UDP协议socket都可以用,如果一个socket连接基于TCP协议,那么建立socket连接的时候也需要三次握手。

socket本身不是协议。

从设计模式的角度来说,socket属于门面模式。

就像用PID来区分系统内部的进程一样,socket可以用来区分网络上的进程。socket用以下五种信息来标识网络的进程:连接使用的协议,本机IP,本地进程的端口,远程主机IP,远程进程端口。

 

socket连接

socket作为套接字,只是网络通信的两端,本身没有连接的概念,平时所谓的socket连接,往往指的都是HTTP的长连接。

为了维持连接,一般需要发送心跳信息,信息格式随意,只要是双方都支持的格式就可以。

 

建立socket连接

1,socket连接建立之前,需要有一对套接字,客户端上的客户端套接字ClientSocket,服务端上的服务端套接字ServerSocket。

2,服务器监听。服务端套接字在监听状态下不指定具体的客户端套接字,等待客户端的连接。

3,客户端发起请求。

4,连接确认。服务端响应客户端请求,建立一个新的线程,把服务端套接字发给客户端,客户端确认后正式建立连接。此时建立的连接是长连接,不会因为传送完信息就自动断开。

 

服务和接口篇

 

HTTP接口

HTTP接口基于HTTP协议,特点是简单,开发方便,可以传输JSON或XML格式的信息。

 

RPC

RPC是Remote Procedure Call的缩写,即远程过程调用。

RPC协议是Remote Procedure CallProtocol,远程过程调用协议。

RPC服务给开发者的感觉就是:像本地调用一样进行远程调用。

 

RPC服务的四部分:

Client,服务调用方。

Client Stub,存放服务端的地址,打包客户端请求并发送给服务端。

Server,服务提供方。

Server Stub,接收客户端请求,解包,调用本地方法。

 

RPC服务的运作模式

对java来说,RPC服务一般需要声明一些接口,这些接口需要进行封装(比如打成jar),服务端引用这些接口,并提供对应的实现,客户端也引用这些接口,用来调用(形式上是本地调用)。RPC框架会完成从客户端调用到服务端接收处理,最后返回客户端的整个过程。

RPC服务可以以HTTP协议为基础,也可以以socket为基础。多数情况下讨论的RPC服务都是以socket为基础的。

RPC服务可以使用同步调用,也可以使用异步调用。

 

RPC服务的特点

RPC基于socket,socket基于TCP协议,比http服务少了应用层、表示层、会话层,比http服务快一点。

socket往往使用HTTP长连接,连接建立之后不需要三次握手,比HTTP协议短连接的接口要快。

可以有注册中心,方便监控、发布、下线接口。


开源的RPC框架举例

1,gRPC,Google开源的RPC框架,基于HTTP2.0协议,支持多种编程语言,底层是Netty框架。

2,Thrift,FaceBook开源的RPC框架,支持多种编程语言。

3,Dubbo,阿里巴巴开源的RPC框架,在java上使用,接口使用java的interface,依托Spring框架。

网络协议、socket、webSocket 一、网络协议 网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。 1、OSI七层协议 OSI是一个开放性的通信系统互连参考模型,他是一个定义得非常好的协议规范。OSI模型有7层结构,从上到下分别是 7应用层6表示层5 会话层 4传输层3 网络层 2数据链路层1物理层。 下面的图表显示不同的协议在最初OSI模型中的位置: 7 应用层 例如HTTP、SMTP... 阅读详情

相关推荐

Ollama运行DeepSeek大模型调优指南:GPU与CPU协同实现性能最大化

Ollama运行DeepSeek大模型调优指南

qq_32358423的博客 3999

计算机网络--七层结构(一)物理层、数据链路层详解

简介 7层是指OSI七层协议模型,主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。 在TCP/IP协议中将应用层、表示层、会话层合并为应用层又将数据链路层、物理层合并为网络接口层所以为四层结构 常说的五层模型只是OSI和TCP/IP的综合,并没有将数据链路层和物理层合并,实际应用还是TCP/IP的四层结构 引用一行网上的数.

zhang09090606的博客 4万+

Julia Ann老司机管理系统

https://content.badgirlsusa.com/Julia_Ann-Sexy_Julia_Ann_Fucks_A_Lil_Elf's_Big_Cock_/Julia-Ann-Naughty-America-%E6%80%A7%E6%84%9F%E7%9A%84%E8%A3%98%E8%8E%89%E5%A9%AD%E5%AE%89%E4%BA%82%E6%90%9E-lil-%E7%B2%BE%E9%9D%88%E7%9A%84%E5%A4%A7%E5%85%AC%E9%9B%9E-2020

www_oracle_com的博客 22万+

计算机网络——7层OSI网络模型

计算机网络——7层OSI网络模型

NRWHF的博客 1万+

告别wx.showActionSheet:微信小程序自定义底部弹框的5种实现方式对比

本文深入对比了微信小程序中替代原生wx.showActionSheet的五种自定义底部弹框实现方案。从基础视图层模拟到组件化封装,再到利用第三方UI库、CSS3动画及Page-Meta组件,详细分析了各方案的优缺点与适用场景,旨在帮助开发者根据项目需求,选择最合适的方案以实现高度定制化、交互丰富的弹框效果。

weixin_29005499的博客 191

Open3D 基于法向量夹角的特征点提取

基于法向量夹角的特征点提取是一种在点云处理中用于识别表面变化显著区域的技术。通过计算点云中每个点的法向量与其邻域点法向量之间的夹角,可以判断点云表面的局部变化程度,并提取那些法向量变化较大的点作为特征点。这种方法特别适用于提取边缘、角点等关键几何特征。

纵马踏花向自由 1554

OSI七层模型详解

OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。 完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层的中继系统具有不同的名称。 一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。 具体说:

61万+

帆软报表导出各种格式之后台导出

我们前面介绍了帆软报表在界面上的导出是通过类似的URL:http://localhost:8075/webroot/decision/view/report?op=export&sessionID=10653244-3e46-408c-bc54-f89a214a9bc7&format=image&extype=PNG 来完成的,就是带OP=export以及format参数来完成的。如果不从界面传参数,比如我们自己实现了一个HTTP接口,也可以通过传参数format来完成各种格式的导

帆软爱好者的专栏 4270

计算机网络的各种基本概念总结(七层模型,TCP,HTTP,socket,RPC 等)

基于 WebSocket 建立的连接是一种全双工的连接,连接双方没有主次关系,任何一方都可以主动向另一方发起请求,是一种真正的持久连接,这一点和 HTTP 协议的长连接或者轮询连接是不一样的。TCP 协议下可以建立长连接或者短连接,长连接和短连接在建立连接的时候都需要 3 次握手,不同之处在于,短连接在传送完信息之后连接就会关闭,长连接则不会立即关闭。socket 作为套接字,只是网络通信的两端,本身没有连接的概念,平时所谓的 socket 连接,往往指的都是 HTTP 的长连接。

ucliaohh的专栏 403

【OpenClaw企业级智能体实战】第10篇:医疗行业OpenClaw实战:病历自动书写、医保智能审核与患者随访管理(附HIPAA合规配置+完整代码)

医疗行业正面临“效率提升需求”与“合规监管红线”的双重矛盾:病历书写占据医生30%-50%工作时间,医保审核效率低下,患者随访工作量巨大,但医疗数据“不出域”“责任不转移”的要求又限制了AI落地。本文基于华为云、腾讯云安全规范及中关村科金、复旦大学附属中山医院等真实实践,拆解OpenClaw在医疗场景的五大核心应用(病历自动书写、医保智能审核、患者随访管理、科研文献综述、医学影像预处理),提供私有化部署架构、HIPAA合规配置模板、完整实操流程及可直接运行的代码。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 441

基于Python的SEC Edgar文件高效爬取:最新技术与实战指南

本文详细介绍了如何使用Python最新技术高效爬取SEC Edgar数据库中的金融文件。我们将探讨SEC Edgar系统的结构、合法爬取注意事项,并使用现代Python库如Requests-HTML、aiohttp和Playwright实现多种爬取方案。文章包含完整的代码示例、性能优化技巧以及数据处理方法,为金融数据分析师、研究人员和开发者提供全面指导。关键词:SEC Edgar、Python爬虫、金融数据、异步爬取、Playwright、XBRL解析。

2201_76125261的博客 634

谈一谈tcp,http,socket,rpc,grpc

简介:计算机网络的五(七)层协议:物理层、数据链路层、网络层、传输层、(会话层、表示层)和应用层。 tcp:是传输层协议,主要解决数据如何在网络中传输。 http:是应用层协议,主要解决如何包装数据(文本信息),是建立在tcp协议之上的应用。tcp协议是以二进制数据流的形式解决传输层,但对上层的应用开发不友好,所以面向应用层的开发又产生了http协议。 socket:是针对TCP或UDP的具体接口实现,提供了在传输层进行网络编程的方法。 rpc:Remote Procedure Call)是远程过程调用,比

we chat:玩转测试开发 4573

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

HTTP,TCP, socket,RPC,gRPC都是啥?

TCP/HTTP与socket 首先回顾下计算机网络的五(七)层协议:物理层、数据链路层、网络层、传输层、(会话层、表示层)和应用层。那么从协议上来讲: TCP是传输层协议,主要解决数据如何在网络中传输 HTTP 是应用层协议,主要解决如何包装数据(文本信息),是建立在tcp协议之上的应用。TCP协议是以二进制数据流的形式解决传输层的事儿,但对上层的应用开发极不友好,所以面向应用层的开发又产...

空山新雨后,天气晚来秋 2461

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

术语 HTTP,TCP, socket,RPC 与gRPC都是啥

HTTP与RPC的关系就好比普通话与方言的关系。要进行跨企业服务调用时,往往都是通过HTTPAPI,也就是普通话,虽然效率不高,但是通用,没有太多沟通的学习成本。但是在企业内部还是RPC更加高效,同一个企业公用一套方言进行高效率的交流,要比通用的HTTP协议来交流更加节省资源。整个中国有非常多的方言,正如有很多的企业内部服务各有自己的一套交互协议一样。虽然国家一直在提倡使用普通话交流,但是这么多年过去了,你回一趟家乡探个亲什么的就会发现身边的人还是流行说方言。httpshttps。......

qq_15821487的博客 1253

HTTP,TCP, socket,RPC 与gRPC

HTTP,TCP, socket,RPC 与gRPC都是啥? - 简书TCP/HTTP与socket 首先回顾下计算机网络的五(七)层协议:物理层、数据链路层、网络层、传输层、(会话层、表示层)和应用层。那么从协议上来讲: TCP是传输层协议,...https://www.jianshu.com/p/959030de7f1c ...

Lovezyn971221的博客 1913

HTTP,TCP, socket,RPC 与gRPC与dubbo的区别

1.什么是Socket? 2.socket通信模型 3.TCP/HTTP与socket 首先回顾下计算机网络的五(七)层协议:物理层、数据链路层、网络层、传输层、(会话层、表示层)和应用层。那么从协议上来讲: TCP是传输层协议,主要解决数据如何在网络中传输 HTTP 是应用层协议,主要解决如何包装数据(文本信息),是建立在tcp协议之上的应用。TCP协议是以二进制数据流的形式解决传输层的事儿,但对上层的应用开发极不友好,所以面向应用层的开发又产生了HTTP协议。 而socket 是针对TCP或UDP的

u013078871的博客 2131

HTTP,TCP, socket,RPC 与gRPC都是啥?

此文章为转载, 转载地址: https://www.jianshu.com/p/959030de7f1c TCP/HTTP与socket 首先回顾下计算机网络的五(七)层协议:物理层、数据链路层、网络层、传输层、(会话层、表示层)和应用层。那么从协议上来讲: TCP是传输层协议,主要解决数据如何在网络中传输 HTTP 是应用层协议,主要解决如何包装数据(文本信息),是建...

qq_38949960的博客 1886

HTTP,TCP, socket,RPC分别是什么

TCP/HTTP与socket 回顾下计算机网络的五(七)层协议:物理层、数据链路层、网络层、传输层、(会话层、表示层)和应用层。那么从协议上来讲: TCP是传输层协议,主要解决数据如何在网络中传输 HTTP 是应用层协议,主要解决如何包装数据(文本信息),是建立在tcp协议之上的应用。TCP协议是解决传输层的,对上层的应用开发极不友好,所以面向应用层的开发又产生了HTTP协议。 sock...

Welcome 2928

计算机网络相关 讲一下rpc与传统http的区别

本文深入探讨了RPC与HTTP的本质区别及手写RPC框架的核心技术要点。RPC是一种设计思想,旨在使远程调用如同本地调用,而HTTP是传输协议。主要区别体现在:RPC基于TCP/HTTP2,使用二进制序列化,性能更高;HTTP基于HTTP1.1,采用文本格式,通用性更好。手写RPC框架需要解决三大核心问题:网络通信(Socket编程、TCP连接复用)、序列化(JSON/Protobuf等)、拆包粘包问题(通过长度前缀法解决)。文章以Java为例展示了RPC框架的基本实现,包括客户端代理和服务端监听机制,并指

多多的博客 1392

TTP/HTTPS、TCP/IP 协议、RPC、Socket 通信机制

TTP/HTTPS:用于 Web 应用的通信协议,其中 HTTPS 提供安全加密。TCP/IP协议:用于数据传输的网络协议栈,包含 TCP(可靠传输)和 IP(路由转发)协议。RPC:通过远程过程调用实现分布式系统之间的通信。Socket:提供进程间通信机制,支持基于 TCP 或 UDP 的通信。

qq_40708522的博客 2357

gRPC和HTTP区别

RPC是干什么的? 当用户的请求到来时,我们需要将用户的请求分散到多个服务去各自处理,然后又需要将这些子服务的结果汇总起来呈现给用户。那么服务之间该使用何种方式进行交互就是需要解决的核心问题。RPC 就是为解决服务之间信息交互而发明和存在的。 什么是 RPC ? RPC (Remote Procedure Call)即远程过程调用,是分布式系统常见的一种通信方法,已经有 40 多年历史。当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手段之一。除 RPC 之外,常见的多系统数

凝眸伏笔的博客 1万+
上一篇: EasyUI的DateBox只能选择月份的方法,亲测有效
下一篇: 计算机网络中socket,TCP,HTTP,长连接等概念的形象比喻,便于理解和记忆
lkforce
博客等级 码龄17年 399粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值