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协议和UDP协议 -> 正文阅读

[网络协议]TCP协议和UDP协议

1用户数据报协议UDP协议

定义和特点

UDP协议旨在ip数据报的服务之上增加了很少的功能,即复用分用和差错检测功能,主要特点是:

  1. UDP是无连接的,减少开销和发送数据之前的时延
  2. UDP使用最大努力交付,即不保证可靠交付
  3. UDP是面向报文的,适合一次性传输少量的数据网络应用。
  4. UDP无拥塞控制,适合很多的实时应用
    在这里插入图片描述

内部结构

在这里插入图片描述

2TCP协议

tcp协议的特点

1tcp是面向连接(虚连接)的传输层协议
2每一条TCP连接只能由两个端点,每一个tcp连接只能是点对点的
3tcp提供可靠的交付服务,无差错,不丢失,不重复,按序到达(可靠有序,不重不丢)
4tcp提供全双工通信

tcp协议的四个功能:
1连接管理
2可靠传输
3流量控制
4拥塞控制

1.TCP连接管理

在这里插入图片描述
分析问题:
可以看出,在第一次向服务器请求的阶段后,服务器接收信息之后会为该请求分配缓存和变量,并且会向浏览器发送确认报文并且会等待响应,如果客户端不返回确认的确认时,服务器就会一直等待,并且还因为已经开辟了内存而浪费了资源。就会容易产生SYN洪泛攻击问题。
在这里插入图片描述
解决此办法是设置SYNcookie

断开连接(四次挥手)

在这里插入图片描述为什么要设置这个等待时间2mls时间呢,因为:当客户端收到服务器端的关闭通知之后,会设置2mls时间,如果服务器端在2mls时间之内收不到客户端发来的关闭确认通知,服务器端会再次发送关闭通知,然后客户端会再次发送确认关闭,并且重置2mls时间,当发送服务器端接收到关闭通知后,才进入close状态。

2.TCP的可靠传输

可靠传输是指:在接收方收到的字节流与发送发发送的字节流完全一样的

  1. 校验:在接收方和发送方增加伪首部,来进行二进制反码求和,判断有没有发生错误。
  2. 序号:序列号
  3. 确认:确认接收到信息,确认号:希望收到的下一个序列号
  4. 重传:如果发送方没有收到接受方的信息的话,就可以确认自己发送的数据应该是丢失了,需要重传。从而可以保证是可靠的,但是如何因为网络时间的复杂性,如何根据时间来确定接收端没有接收到信息呢?
    那就需要采用了自适应算法,动态的改变重传时间RTTS(加权平均往返时间)。

3.TCP的流量控制

让发送方发送慢一点,好让接收方来得及接收。
tcp利用滑动窗口机制实现流量控制。

机制:在通信过程当中,接收方根据自己接收缓存的大小,动态的调整发送方的发送窗口大小,即接收窗口rwnd(接收方设置确认报文段的窗口字段来将rwnd通知给发送方),发送方的发送窗口取接收窗口rwnd和拥塞窗口cwnd的最小值。
在这里插入图片描述为了解决发送双方:当B发送0窗口之后,A就不能发送新的数据报,但当B再次发送数据报之后,要求发送端A发送新的数据时把发送窗口搞丢了,此时A就不会发送数据的问题,造成B等待A发送,而A等待B发送发送窗口的类似于死锁的局面,引入了零窗口的探测报文段:

TCP为每一个连接设有一个持续计时器,只要TCP连接的发送方A收到接收方B的零窗口通知,就启动持续计时器。若持续计时器设置的时间到期,发送方就会发送一个零窗口探测报文段,接收方收到探测报文段之后会重新发送现在的窗口值,如果仍然为0,发送方就重新设置持续计时器。

4.TCP的拥塞控制

在这里插入图片描述

1慢开始和拥塞避免组合使用来解决拥塞问题

在这里插入图片描述(报文段指的是最大报文段长度:512字节)

慢开始阶段:逐渐的按照指数增加传输报文的数量,当达到慢开始门限之后,就开始执行阻塞避免阶段
阻塞避免阶段:采用逐渐增加报文段的数量,一个一个的增加传输数量
当达到拥塞窗口的值时,会将新的阈值(慢开始门限 ssthresh)设置为当前拥塞窗口的一半,然后将传输报文段设为1,再次按照慢开始阶段的指数增长和阻塞避免阶段的逐渐增长。

2快重传和快恢复算法来解决拥塞问题

在这里插入图片描述当连续收到三个重复的确认后,就会执行快重传算法,此时会讲阈值设置为一半,但是不在向第一种方法一样来从新开始,而是直接从阈值(慢开始门限)开始执行加法增大算法(拥塞避免),一点点的增加传输数据包数量.

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-26 22:36:04  更:2021-12-26 22:37:11 
 
开发: 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年11日历 -2024/11/26 12:00:59-

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