网络通信——UDP\TCP\ Socket、http\https、SMTP、FTP,TCP/IP协议簇,OSI网络模型(个人向)

一、HTTP/HTTPS

什么是HTTP?
超文本传输协议,是一个基于请求与相应,无状态,应用层协议,基于TCP/IP协议传输数据
HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。

什么是HTTPS?
是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全通信,加密数据包
区别:
1.https协议需要到CA申请证书。
2.http是超文本传输协议,信息是明文传输;https 则是具有安全性的ssl加密传输协议。
3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

区别 HTTP HTTPS
协议 运行在 TCP 之上,明文传输,客户端与服务器端都无法验证对方的身份 身披 SSL( Secure Socket Layer )外壳的 HTTP,运行于 SSL 上,SSL 运行于 TCP 之上, 是添加了加密和认证机制的 HTTP
端口 80 443
资源消耗 较少 由于加解密处理,会消耗更多的 CPU 和内存资源
开销 无需证书 需要证书,而证书一般需要向认证机构购买
加密机制 共享密钥加密和公开密钥加密并用的混合加密机制
安全性 由于加密机制,安全性强

二、OSI 模型

OSI 模型主要作为一个通用模型来做理论分析 (网络七层模型)
应用层
表示层
会话层
传输层 TCP/UDP
网络层 IP
数据链路层
物理层

三、TCP/IP协议簇

3.1 模型

应用层 HTTP/HTTPS SMTP、FTP
传输层 TCP/UDP
网络层 IP
物理层 PPP

3.2 详解

传输层: 负责两台主机进程之间的通信,提供通用的数据传输服务
(应用进程利用该服务传送应用层报文)
主要有两种协议:TCP / UDP
1.传输控制协议-TCP:面向连接协议,靠谱(稳定,不丢包),有数据验证功能(安全),电话协议,重发机制,效率相比UDP较低
2.用户数据协议-UDP:快,不靠谱(丢包),广播协议,缺乏数据验证

TCP UDP
是否连接 面向连接 无连接
是否可靠 可靠传输,使用流量控制和拥塞控制 不可靠传输,不使用流量控制和拥塞控制
连接对象个数 只能是一对一通信 支持一对一,一对多,多对一和多对多交互通信
传输方式 面向字节流 面向报文
首部开销 首部最小20字节,最大60字节 首部开销小,仅8字节
场景 适用于要求可靠传输的应用,例如文件传输 适用于实时应用(IP电话、视频会议、直播等)

应用层: 任务是通过应用进程间的交互来完成特定网络应用;应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则
网络层: 任务就是选择合适的网间路由和交换结点,确保计算机通信的数据及时传送;
在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP/IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报 ,简称数据报
数据链路层: 简称为链路层,两台主机之间的数据传输 总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。)
物理层: 在物理层上所传送的数据单位是比特;
作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异,使其上面的数据链路层不必考虑网络的具体传输介质是什么;
“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的。

四、TCP与HTTP的区别

TCP/IP协议是传输层协议,主要解决数据如何在网络中传输;
HTTP是应用层协议,主要解决如何包装数据

TCP/IP和HTTP协议的关系,可理解为"我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、SMTP等,也可以自己定义应用层协议;WEB使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。"
(TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,他俩存在一个显著区别:TCP提供有保证的数据传输,而UDP不提供;说明TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证)

五、TCP,UDP,HTTP应用场景

Socket实现服务器与客户端之间的物理连接,并进行数据传输。
主要有TCP/UDP两个协议。
Socket只是一种连接模式,不是协议,socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)
Socket处于网络协议的传输层。

TCP:
传输控制协议,面向连接的的协议,稳定可靠。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
UDP:
广播式数据传输,UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
Socket 传输的特征:
优点:
1.传输数据为字节级,传输数据可自定义,数据量小。相应的移动端开发,手机费用低
2.传输数据时间短,性能高
3.适合C/S之间信息实时交互
4.可以加密,数据安全性高
缺点:
1.需要对传输的数据进行解析,转化为应用级的数据
2.对开发人员的开发水平要求高
3.相对于Http协议传输,增加了开发量

你可能感兴趣的:(网络协议,https,http)