TCP、UDP、HTTP、HTTPS、socket

2020-02-06  本文已影响0人  创奇

TCP:

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的 传输层通信协议,由IETF的RFC 793 定义。传输控制协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。

TCP优点:

数据传输可靠、稳定、提供全双工通信。
可靠体现在传输数据之前进行三次握手定理来建立连接,在传输数据时有确认、重传、拥塞控制机制,数据传输完成后会断开连接来节约系统资源。

TCP缺点:

慢、效率低、系统占用资源高、易被攻击。
TCP传输数据之前要创建连接,传输数据时,确认机制、重传机制、拥塞控制机制等都需要消耗时间,且每台设备都要维护传输连接都需要消耗内存、cpu等资源。
由于TCP存在确认机制和三次握手机制,这些导致易被人利用,进行DOS、DDOS、CC等攻击。

UDP:

Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。

UDP优点:

数据传输快、 有单播,多播,广播的功能;
UDP没有TCP的确认机制、重传机制、三次握手等机制,且不需要创建连接就直接发生数据,因此UDP传输数据非常快。

UDP缺点:

不可靠。
udp在通信上不需要创建连接,没有tcp的可靠机制,只管发送不管对方是否正确接收。即使网络条件不好,也不会对发送速率进行调整。这样实现的弊端就是在网络条件不好的情况下可能会导致丢包。

总结:

TCP必须先创建连接才可以发送数据,而UDP知道ip和端口便可以发送,比TCP快但是不可靠。

HTTP协议

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

HTTP是短连接:客户端发送请求都需要服务器端回送响应.请求结束后,主动释放链接,因此为短连接。通常的做法是,不需要任何数据,也要保持每隔一段时间向服务器发送”保持连接”的请求。

HTTP 属于应用层协议,在传输层使用 TCP 协议,在网络层使用 IP 协议。IP 协议主要解决网络路由和寻址问题,TCP 协议主要解决如何在 IP 层之上可靠的传递数据包

HTTPS通信原理

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道
HTTPS是HTTP over SSL/TLS,HTTP是应用层协议,TCP是传输层协议,在应用层和传输层之间,增加了一个安全套接层SSL/TLS:
1) SSL (Secure Socket Layer,安全套接字层)
2) TLS (Transport Layer Security,传输层安全协议)
3) SSL使用40 位关键字作为RC4流加密算法

HTTPS作用:

  1. 内容加密,建立一个信息安全的通道,保证数据传输安全
  2. 数据完整性 防止内容被第三方篡改
  3. 进行身份认证,确认网站安全性(需要申请证书)

HTTP和HTTPS两者的区别:

  1. https需要到CA申请证书
  2. http信息是明文传输。https信息是ssl加密传输;
  3. http和https连接方式和端口均不同,前者端口默认是80,后者默认是443;
  4. http是无状态的连接,https是ssl+http构建的可加密传输、身份认证的传输协议;

Socket协议

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;
socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。 socket就是该模式的一个实现,socket是一种特殊的文件,一些socket函数就是对其进行的操作(打开、读/写IO、关闭)。

Socket 传输的特点:

优点:

  1. 传输时间短,性能高。
  2. 数据可进行加密传输,安全;
  3. 传输数据为字节级,数据量小;

缺点:

  1. 需要对传输的数据解析,转换为应用级的数据(序列化与反序列化)
  2. 开发量较大

Socket传输适用范围:

基于Socket传输的特点:Socket 传输方式适合于对传输速度,安全性,实时交互,费用等要求高的应用中,如网络游戏,手机应用,银行内部交互等。

Http协议传输的适用范围:

 基于http协议传输的特点:基于http协议传输方式适合于对传输速度,安全性 要求不是很高,且需要快速开发的应用。如公司OA系统,互联网服务等。
上一篇下一篇

猜你喜欢

热点阅读