计算机网络体系结构:OSI的七层协议,TCP/IP的四层协议,五层协议
TCP/IP 是互联网通信中各类协议族的总称,比如:TCP,UDP,IP,FTP,HTTP,ICMP,SMTP 等都属于 TCP/IP 族内的协议。
TCP三次握手,为什么不是两次或者四次?
三次握手的目的是建立可靠的通信信道,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的。
因为三次握手才能保证双方具有接收和发送的能力,避免资源浪费
1、三次握手才可以阻止重复历史连接的初始化(主要原因)
2、三次握手才可以同步双方的初始序列号
3、三次握手才可以避免资源浪费
如果两次,那么B无法确定B的信息A是否能收到,会出现问题 。如果四次,那么就造成了浪费
简单示意图:
TCP四次挥手
A:“喂,我不说了 (FIN)。”A->FIN_WAIT1
B:“我知道了(ACK)。等下,上一句还没说完。Balabala…..(传输数据)
B:”好了,说完了,我也不说了(FIN)。”B->LAST_ACK
A:”我知道了(ACK)
TCP & UDP
TCP:传输控制协议
UDP:用户数据报协议
是互联网协议族中的两个重要的传输层协议
TCP工作原理
TCP是一种面向连接的协议,通过三次握手建立可靠的连接。发送端将数据分割成多个TCP段,并通过IP进行传输。接收端接收到TCP段后进行重组,并通过确认机制确保数据的可靠性。TCP还使用拥塞控制和流量控制机制来保证网络的稳定性。
TCP特点与优缺点
特点:
可靠性:TCP保证数据的可靠传输,通过重传机制和确认机制避免数据丢失或损坏。
顺序性:TCP保证数据按照发送的顺序进行传输,接收端可以按照相同顺序重组数据。
流量控制:TCP使用滑动窗口机制来控制发送端的数据量,避免接收端缓冲区溢出。
优点:
可靠性高:通过重传和确认机制保证数据的可靠性,适用于对数据完整性要求高的应用场景。
顺序性强:保证数据按照发送顺序传输,适用于需要按序处理的应用场景。
缺点:
开销大:TCP需要建立连接、维护状态和进行确认,占用较多的网络资源。
传输速度相对较慢:由于提供可靠性保证,TCP的传输速度相对较慢。
TCP的应用场景
网页浏览:HTTP协议使用TCP来传输网页内容,保证数据的可靠性和顺序性。
文件传输:FTP协议使用TCP来传输文件,确保文件的完整性和正确性。
邮件传输:SMTP协议使用TCP来传输电子邮件,保证邮件的可靠传输和顺序接收。
远程登录:Telnet和SSH等远程登录协议使用TCP来提供安全的登录通道。
数据库访问:MySQL、Oracle等数据库使用TCP来进行数据传输和查询。
UDP工作原理
UDP是一种无连接的协议,数据以数据报的形式独立发送。发送端将数据打包成UDP数据报并通过IP进行传输,接收端接收到数据报后直接提取数据。UDP不提供可靠性保证和拥塞控制机制,因此传输速度较快。
UDP特点与优缺点
无连接:UDP不需要进行连接的建立和维护,数据报独立发送。
无可靠性保证:UDP不提供重传和确认机制,数据传输不可靠。
传输速度快:由于无需建立连接和提供可靠性保证,UDP传输速度较快。
优点
传输速度快:无需建立连接和提供可靠性保证,适用于实时性要求较高的应用场景。
开销小:UDP不需要维护连接状态和进行确认,占用较少的网络资源。
缺点
不可靠性高:由于无重传和确认机制,数据传输可能丢失或损坏。
顺序性差:UDP数据报独立发送,接收端无法保证数据按照发送顺序接收。
UDP的应用场景
实时通信:音频、视频会议以及实时游戏等应用利用UDP的快速传输特性,实现实时交互。
流媒体:流媒体传输(如音频和视频的实时播放)通常使用UDP,因为对于丢失少量数据并不敏感,但传输速度至关重要。
DNS解析:域名系统(DNS)使用UDP进行域名解析请求和响应,以快速获取域名对应的IP地址。
广播和多播:UDP支持广播和多播传输,用于向多个主机发送数据,如局域网中的视频流广播。
TCP | UDP | |
连接方式 | 面向连接 | 无连接 |
数据传输可靠性 | 可靠 | 不可靠 |
传输速度 | 慢 | 快 |
数据包大小 | 有限制 | 无限制 |
连接数量 | 连接数量受限:1对1 | 连接数量不受限:支持1对1,1对多,多对1,多对多 |
传输方式 | 字节流 | 报文 |
首部开销 | 最小20字节,最大60字节 | 首部开销小,仅8字节 |
应用场景 | 文件传输、电子邮件、浏览网页 | 实时视频、语音通话 |
HTTP和HTTPS
TCP/IP 网络模型,一般是五层模型
HTTP:超文本传送协议(Hypertext Transfer Protocol )是应用层协议,定义的是传输数据的内容的规范。
HTTPS:HTTP+TLS/SSL协议组合而成,而安全性的保证正是TLS/SSL 所做的工作。HTTPS 就是身披了一层SSL 的 HTTP。
HTTP 是未经安全加密的协议,传输的数据都是未加密的,也就是明文,它的传输过程容易被攻击者监听、数据容易被窃取、发送方和接收方容易被伪造
HTTPS 是安全的协议,HTTP的安全版,在HTTP基础上加入SSL层,协议传输的数据都是加密的,也就是密文的,使用对称加密和非对称加密结合方式,通过 密钥交换算法-签名算法-对称加密算法-摘要算法,能够解决上面这些问题