IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP-IP协议整理 -> 正文阅读

[网络协议]TCP-IP协议整理

TCP-IP协议:

TCP-IP协议是当今使用最广范、最基本的网络协议,当然最基本的网络协议其中不仅包含TCP、IP协议,更包含了更广阔的如SMTP、FTP、HTTP等常用协议,所以我们一般也称它为TCP-IP协议簇。

三次握手与四次挥手:

在这里插入图片描述
TCP-IP设计了一套特色的传输模式,我们大多称为 三次握手与四次挥手

建立连接(三次握手):

1、客户端发送 syn=x 报文至服务端,进入SYN_SENT状态,等待服务端回应
2、服务端收到报文并确认后,也发送一个 syn=y 报文至客户端(SYN+ACK),此时服务端进入SYN_RCVD状态
3、客户端收到SYN+ACK报文后发送确认确认报文ACK(ack=y+1),之后二者进入ESTABLISHED状态

数据传输:ESTABLISHED

终止连接(四次挥手):

1、首先客户端想要释放连接,向服务端端发送报文,FINSeq=x+2、ACK=y+1
客户端进入FIN_WAIT_1状态,停止向服务端发送数据,但客户端不会关闭连接,服务端仍可向客户端发送数据
2、服务端接收客户端报文后,确认客户端的终止连接请求,随后服务端进入CLOSE_WAIT状态,发送一段报文ACK x+3
客户端收到ACK报文后进入FIN-WAIT-2阶段
3、服务端发出ACK报文之后,经过CLOSED_WAIT阶段后,再次向客户端发出一段报文:FIN seq = y+1
随后服务端结束CLOSE_WAIT阶段,进入LAST_ACK阶段。同时停止向客户端发送数据,但是服务端仍然能够接收从客户端传输过来的数据
4、客户端收到报文,确认了服务端已准备终止连接后,进入TIME_WAIT状态,并向服务端发送最后一段报文ACK y=2
随后客户端在短暂等待(2MSL,一次传输的最大生命周期)后,结束TIME-WAIT阶段,进入CLOSED阶段,完成“四次挥手

为什么需要三次握手与四次挥手?

三次握手保证了一次通信的完整性

如果只有两次握手,那么如果环境存在延迟与丢包,响应未能及时应答,此时又会发出新的一次连接的请求,造成了资源浪费。同时也不安全,两次握手的形式决定服务端将一直处于ESTABLISHED的状态,这种情况容易遭受大批量请求的网络攻击

四次挥手确保信息发送完整

在双工通信中,客户端请求断开连接时,并不代表服务端没有想发送给客户端的数据,此时如果服务端应答可关闭并进入close状态,那么数据将无法发送完整,会造成数据滞留

UDP协议

由以上我们可以知道TCP-IP是一个面向与连接、稳定的双工协议
而UDP和TCP-IP是相对的,UDP面向与无连接,且非双工。它不会判断是否发送成功或接收成功,通俗点可以称之为广播。这么做舍取了稳定性,但增强了性能,适用与音视频、多媒体场景。

网络协议体系结构:

网络协议遵循一套基本的多层体系结构,每一层都有相应的处理协议。如应用层的FTP、TELNET,网络层的ICMP、IP等
我们这边应用最广泛的还是TCP-IP的四层结构,能处理90%的问题
在这里插入图片描述

数据链路层

处理数据在物理媒介上的传输,如网线、网卡,同时为上层协议提供统一的入口
对应协议:ARPRARP - 将物理地址(MAC)解析为IP地址

网络层

处理网络连接,确认终端连接路径
当处于局域网环境中可进行直接连接,处于广域网时通过多节点的拓扑过程进行连接
对应协议:IP(寻找终端主机)、ICMP(监控网络连接状态)

传输层

处理数据传输以及传输安全,错误抛出、超时重连等
对应协议:TCP(建立可靠的终端连接 - 三次握手&四次挥手)、UDP(可直接传输数据、但不可靠,不可建立连接,与TCP是相对的)、SCTP(主要应用于电话信号)

应用层

该层涉及应用程序的业务逻辑处理
如登录验证、传输/拉取数据、文件下载等,主要由用户层面控制
对应协议:TELNET、HTTP(用户逻辑数据传输处理)、DNS(域名解析)

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:14:36  更:2022-08-06 11:14:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 4:38:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码