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. 传输控制协议(TCP)

1.1 TCP的主要特点:

  • 支持可靠性的面向连接服务

  • 支持流传输:无报文丢失、重复和失序的正确数据序列

  • 支持全双工服务:支持客户端和服务端同时发送和接收数据

  • 支持可靠服务: 使用确认机制来检查数据是否安全和完整地到达

1.2 TCP协议的可靠性

  • 应用数据将被分割成TCP协议认为最适合发送的数据块. [分段]
  • TCP发送出一个报文段后, 它启动一个定时器, 等待目的端确认收到这个报文段. 如果不能及时收到一个确认,将重发这个报文段. [超时和重传]
  • 当TCP收到发自TCP连接另一端的数据后, 将发送一个ACK确认. [确认]
  • TCP保持头部和数据的校验和, 如果校验和有差错, TCP将丢弃这个报文段, 不予确认. [校验和]
  • TCP需要对接收到数据报进行重新排列,然后将正确的数据传送给应用层. [数据报重排]
  • IP数据报会发生重复, 接受方的TCP需要检查并丢弃重复的数据. [去重]
  • TCP采用可变窗口进行流量控制, 根据对方缓冲区大小来协调发送方的发送速度, 避免缓冲区溢出数据丢失. 同时TCP还进行拥塞控制, 以进一步提高可靠性.[流量控制和拥塞控制]
  • TCP对字节流的内容不作任何解释, 只负责传输字节流, 不存在编码问题.

1.3 TCP流量控制 – 滑动窗口机制1

窗口大小表示发送方未经确认可发送的报文个数

发送方每当接收到一个确认报文, 滑动窗口就向前移动.

1.4 TCP 差错控制

1.4.1 差错检测和纠正:

TCP使用校验和、确认和超时来完成差错检测。纠正方式是简单的丢弃报文,等待新的报文重传。

1.4.2 TCP计时器

  • 重传计时器:

    • 如果在计时器截止时间之前收到了对该报文段的确认,则撤销此计时器
    • 如果在收到确认报文之前计时器截止时间到,则重传报文段并将计时器复位
  • 坚持计时器:

    1. 当接收方发送一个0窗口报文时, 发送发就会停止发送数据,直到接收方再发送一个非0窗口的ACK。

    2. 但是TCP中是不会对ACK进行确认的,如果这个非0窗口ACK丢失了,接收方就会一直等待发送方发送数据,进入死锁。

    3. 坚持计时器的作用就是:在发送方接收到一个0窗口通知报文时,启动一个坚持计时器,等计时器超时后,发送一个1字节的探测报文段, 它有一个序号,但是它的序号不需要确认,计算对其他数据确认时也忽略该序号。

    4. 如果没有收到接收方的响应,则将坚持计时器的值加倍和复位,直到增大到门限值(一般60s)为止,此后发送方就每隔60s发送一个探测保温段,知道窗口重新打开。

  • 保持计时器(激活计时器):

    1. 如果客户端与服务端建立了连接,发送一些数据后就停止了发送(可能是故障)。若计时器超时后服务器还没收到客户端信息,就发送探报文,如果发送了10个探测报文还没有响应(每一个间隔75s),就假定客户出了故障,终止该连接。
    2. 服务端每当接收到数据时,就复位计时器
  • 时间等待器:

    1. 时间等待计时器在连接终止期间使用
    2. 在时间等待期,连接处于一种过渡状态,时间等待计时器通常设置为2倍TTL

1.5 TCP传输连接建立、维护与释放

1.5.1 传输连接建立

  • 主机A发送报文段宣布它愿意建立连接, 报文段包括关于从A到B的通信量的初始化信息。
  • 主机B发送确认报文段确认A的请求。
  • 主机B发送报文段确认A的请求,报文段包含B到A的通信量的初始化信息。
  • 主机A发送确认报文段确认B的请求.

三次握手:

  1. A 发送SYN
  2. B发送 SYN + ACK (将SYN和ACK合并为一个报文段)
  3. A发送ACK (确认SYN+ACK报文段)

1.5.2 传输连接释放 – 四次握手

  1. 如果客户端打算终止连接,客户端发送FIN1报文段
  2. 服务端TCP程序接收到FIN1报文段后,发送ACK1报文段
  3. 服务端仍然可以在服务器到客户端方向继续发送数据,当没有数据需要发送时,服务端TCP程序通知操作系统释放从服务端到客户端的TCP连接,并向客户端发送FIN2报文段
  4. 客户端TCP程序发送ACK2报文段, 切断服务端到客户端的TCP连接

2. 用户数据报协议(UDP)

2.1 UDP协议的主要特点

  • 无连接、不可靠的传输层协议
  • 只提供了有限的差错检验功能

2.2 UDP适用的范围

  • 视频播放应用
  • 简短的交互式应用
  • 多播与广播应用
    • UDP支持1对1、1对多、多对多的交互式通信,这一点TCP协议不支持

  1. http://c.biancheng.net/view/6427.html ??

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

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