2021-10-22 常用通信协议介绍(HTTP,UDP,TCP,HTTPS)整理

前言
网络协议是网络上所有设备进行通信的一种规则,每个不同的网络层之间有着不同的协议进行连接,每一层都有各自的网络协议,接收方和发送方使用的网络协议必须相同,否则无法通讯。

本文总结一下常见的网络协议,以及常见的相关问题。

TCP和UDP协议
TCP和UDP协议的区别是常见的问题,我们基本能记住的就是TCP更加稳定,而UDP相对更不稳定,那么为什么TCP更加稳定呢,因为它使用了三次握手四次挥手进行链接建立,然后顺着这个问题问下去,这个可扩充的知识点就有很多了,所以要想真正搞懂TCP协议也不容易。

在这里先总结一下两个协议的区别:

TCP是面向链接的,UDP是无连接的,即发送数据之前不需要建立链接;
TCP使用三次握手四次挥手,传送的数据更加无差错,更加准确,且有序;UDP不保证可靠交付数据;
TCP面向字节流,是把数据看成一段字节流,发送出去,而UDP是面向报文的,UDP没有拥塞控制,所以不会出现拥塞问题;
TCP是点对点进行连接交互,而UDP可以一对一,一对多,多对一,多对多进行交互通讯;
TCP的逻辑信道是可靠的全双工信道,而UDP是不可靠信道。

简单地说,TCP协议更加精确,但是精确是要付出资源的代价,你多付出资源,就能给你准确的信息传递,而UDP就是相反,UDP一般处理多台client要发生数据的情况。

我总结了一下TCP和UDP协议具体编程的步骤:
TCP服务器:

使用socket()函数创建socket,
使用bind()将端口信息,IP地址等绑定到socket中;
使用listen()函数进行监听;
使用accept()函数进行接收客户端信息与客户端建立连接;
使用send()和recv()函数进行发送和接收信息;
关闭网络连接
关闭监听。
TCP客户端:

使用socket()函数进行套接字创建;
使用bind()将端口信息,IP地址等绑定到socket中;
设置对方要连接的端口和IP地址;
使用connect()函数进行连接服务器;
使用send(),recv()函数进行数据的发送和接收;
关闭网络连接。
UDP相对于就更简单一点,由于我没写过相关的项目,所以这里简单总结一下:

UDP服务器创建socket都一样,收发数据使用函数recvfrom();

UDP客户端创建socket和TCP也一样,收发数据使用sendto()函数;

TCP协议中的重点,三次握手和四次挥手
我简单的画一个图:
在这里插入图片描述

SYN是同步的意思,ACK是确认已收到,FIN是结束的意思

三次握手简单的来说:

约吗?

约?

走起!

四次挥手:

不玩了

我也不玩了

好的再见

拜拜

三次握手和四次挥手还有一些相连性的问题,比如说为什么是三次,两次不行吗?

为什么是四次挥手,三次可以吗?三次握手在那个阶段最容易受到攻击,四次挥手在哪个阶段最容易受到攻击等问题。

这些我在别的博客会总结,不然偏离了这篇博客的重心。

TCP和UDP就说这么多,下面我们来看看HTTP和HTTPS

首先我们先了解一下关于这两个协议:

HTTP协议
首先我们输入一个网址之后,网页前面会加上http://,这个http就是通信协议,后面的就是域名地址。

HTTP协议是一种使用明文传输数据的网络协议。其最大的问题,就是使用明文发生数据,试想一下,你在网址中输入自己的银行卡号和银行卡密码,发送的数据被第三方截到了,那你这张银行卡就是一张银行卡了,所以为了避免这种隐患,就有了HTTPS协议。

HTTPS协议
HTTPS协议就是在HTTP协议中加上SSL加密协议,使发送的数据是经过加密之后的数据,使得信息安全性得到保障,这也是HTTPS协议和HTTP协议最大的区别,此外,HTTPS协议需要申请CA证书,才能在网页中使用。

总结一下,HTTP和HTTPS协议的区别有:
HTTP协议是明文数据,HTTPS协议是加密数据;
HTTPS协议需要CA证书认真,因此更加昂贵;
HTTPS协议在HTTP协议中加了SSL加密;
搜索引擎中会优先搜索HTTPS协议。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP/IP协议栈是互联网的基础协议栈,它包含了多个典型的协议。以下是TCP/IP协议栈中的典型协议及其功能和特点: 1. 网络接口层协议:网络接口层协议主要负责将数据帧发送到物理网络中,常用的网络接口层协议有Ethernet、PPP等。 2. 网络层协议:网络层协议主要负责将数据包从源主机发送到目的主机,常用的网络层协议有IP、ICMP、ARP等。 3. 传输层协议:传输层协议主要负责将数据从一个应用程序传输到另一个应用程序,常用的传输层协议有TCPUDP等。 4. 应用层协议:应用层协议主要负责实现应用程序之间的通信,常用的应用层协议有HTTP、SMTP、FTP等。 其中,TCPUDP是最常用的传输层协议,它们的主要特点如下: 1. TCP协议:TCP协议是一种可靠的面向连接的传输层协议,它提供了流量控制、拥塞控制、数据重传等功能,适用于对数据传输可靠性要求较高的应用场景,如文件传输、电子邮件等。 2. UDP协议:UDP协议是一种不可靠的无连接的传输层协议,它不提供流量控制、拥塞控制、数据重传等功能,适用于对数据传输可靠性要求不高的应用场景,如音视频传输、网络游戏等。 除了TCPUDP协议外,还有一些其他的典型协议,例如: 1. IP协议:IP协议是一种无连接的网络层协议,它负责将数据包从源主机发送到目的主机,是TCP/IP协议栈的核心协议。 2. ICMP协议:ICMP协议是一种网络层协议,它主要用于网络故障诊断和错误报告。 3. ARP协议:ARP协议是一种解析地址的协议,它将IP地址映射为物理地址,以便网络设备之间的通信。 以上是TCP/IP协议栈中的一些典型协议,它们各自负责不同的功能,共同构成了互联网的基础协议栈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值