socket和http区别,websocket和socket区别

首页 > 技术 > 作者:YD1662022-10-26 13:01:10

一个完整的HTTP请求的过程

此举例为抛砖引玉,引导大家进入思考状态。

当你按输入www.baidu.com ,浏览器接收到这个消息之后,浏览器根据自己的算法识别出你要访问的URL,为您展示出来搜索页面和广告,那么这些经历了哪些过程呢?

大致过程如下:

下面,我们从底到上来一层层理解这个问题。

网络参考模型

开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写:OSI;简称为OSI模型)是一种概念模型,由国际标准化组织提出,一个试图使各种计算机在世界范围内互连为网络的标准框架。定义于ISO/IEC 7498-1。(摘自维基百科)

7

应用层 application layer

例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP、TLS

6

表示层 presentation layer

例如XDR、ASN.1、SMB、AFP、NCP

5

会话层 session layer

例如ASAP、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、IGMP、Winsock、BSD Sockets

4

传输层 transport layer

例如TCP、UDP、RTP、SCTP、SPX、ATP、IL

3

网络层 network layer

例如IP、ICMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、X.25

2

数据链路层 data link layer

例如以太网、令牌环、HDLC、帧中继、ISDN、ATM、IEEE 802.11、FDDI、PPP

1

物理层 physical layer

例如线路、无线电、光纤

通常人们认为OSI模型的最上面三层(应用层、表示层和会话层)在TCP/IP组中是一个应用层。

由于TCP/IP有一个相对较弱的会话层,由TCP和RTP下的打开和关闭连接组成,并且在TCP和UDP下的各种应用提供不同的端口号,这些功能能够被单个的应用程序(或者那些应用程序所使用的库)增加。与此相似的是,IP是按照将它下面的网络当作一个黑盒子的思想设计的,这样在讨论TCP/IP的时候就可以把它当作一个独立的层。

TCP/IP 参考模型

4

应用层 application layer

例如HTTP、FTP、DNS (如BGP和RIP这样的路由协议,尽管由于各种各样的原因它们分别运行在TCP和UDP上,仍然可以将它们看作网络层的一部分)

3

传输层 transport layer

例如TCP、UDP、RTP、SCTP (如OSPF这样的路由协议,尽管运行在IP上也可以看作是网络层的一部分)

2

网络互连层 internet layer

对于TCP/IP来说这是因特网协议(IP) (如ICMP和IGMP这样的必须协议尽管运行在IP上,也仍然可以看作是网络互连层的一部分;ARP不运行在IP上)

1

网络访问(链接)层 Network Access(link) layer

例如以太网、Wi-Fi、MPLS等。

下面一张图更有助于你的理解

socket和http区别,websocket和socket区别(1)

HTTP 协议与 TCP/IP 协议

**HTTP 是 TCP/IP 参考模型中应用层的其中一种实现。**HTTP 协议的网络层基于 IP 协议,传输层基于 TCP 协议:HTTP 协议是基于 TCP/IP 协议的应用层协议。

TCP/IP 协议需要向程序员提供可编程的 API,该 API 就是 socket,它是对 TCP/IP 协议的一个重要的实现,几乎所有的计算机系统都提供了对 TCP/IP 协议族的 Socket 实现。

Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。

最后需要说明的是:TCP 的速度无法超越 UDP,但在收发某些类型的数据时有可能接近 UDP。例如,每次交换的数据量越大,TCP 的传输速率就越接近于 UDP。

分享更多网络底层原理知识点,内容包括Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等等。后台私信【架构】获取

socket和http区别,websocket和socket区别(2)

TCP/IP 协议、HTTP 协议和 Socket 有什么区别?

从包含范围来看,它们的继承关系是这样的:

socket和http区别,websocket和socket区别(3)

从横向来看,它们的继承关系是这样的:

socket和http区别,websocket和socket区别(4)

首页 1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.