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 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络——传输层 -> 正文阅读

[网络协议]计算机网络——传输层

计算机网络——传输层
解决如何通信?

1.传输层概述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 使用端口(Port)来标记不同的网络进程

  • 端口(Port)使用16比特位表示(0~65535)

    常用端口:

  • FTP: 21

  • HTTP: 80

  • HTTPS: 443

  • DNS: 53

  • TELNET: 23

在这里插入图片描述

2.UDP协议概述

  • UDP(User Datagram Protocol):用户数据报协议
  • UDP是一个非常简单的协议
    在这里插入图片描述
    在这里插入图片描述

2.1.UDP协议头部

在这里插入图片描述

2.2.UDP协议特点

  • UDP是无连接的协议。不需要提前建立连接
  • UDP不能保证可靠的交付数据,无法保证数据是否丢失
  • UDP是面向报文传输的
  • UDP没有拥塞控制
  • UDP的首部开销很小

3.TCP协议详解

  • TCP(Transmission Control Protocol):传输控制协议
  • TCP协议是网络中非常复杂的一个协议
    在这里插入图片描述

3.1TCP协议特点

  • TCP是面向连接的协议
  • TCP的一个连接有两端(点对点通信)
  • TCP提供可靠的传输服务
  • TCP协议提供全双工的通信
  • TCP是面向字节流的协议
    在这里插入图片描述

3.2.TCP协议首部

在这里插入图片描述
16源端口、16位目的端口:地址

头部固定:20字节

序号:

  • 0~2^ 32 - 1
  • 一个字节一个序号
  • 数据首字节序号
    在这里插入图片描述
    确认号:
  • 0~2^ 32 - 1
  • 一个字节一个序号
  • 期待收到数据的首字节序号

在这里插入图片描述在这里插入图片描述
数据偏移:

占4位:0~15,单位为:32位字节

数据偏离首部的距离
在这里插入图片描述
TCP标记:

占6位,每位各有不同的意义
在这里插入图片描述
在这里插入图片描述
窗口:

占16位:0~2^ 16 - 1

窗口指明允许对方发送的数据量

确认号:501, 窗口:1000, 从501到1500的数据都可以被接收

校验和

紧急指针:

  • ? 紧急数据(URG = 1)
  • ? 指定紧急数据在报文的位置

TCP选项:

? 最多40字节

? 支持协议未来的拓展

3.3.可靠传输的基本原理

3.3.1停止等待协议

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
停止等待协议是最简单的可靠传输协议

停止等待协议对信道的利用效率不高

3.3.2.连续ARQ协议

ARQ:自动重传请求
在这里插入图片描述
在这里插入图片描述
累计确认前的都已经确认了。

3.4.TCP协议的可靠传输

  • TCP的可靠传输基于连续ARQ协议
  • TCP的滑动窗口以字节位单位
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    可靠传输的效率不高

选择重传:重传的是数据的边界

  • 选择重传需要指定需要重传的字节
  • 每一个字节都有唯一的32位序号
    在这里插入图片描述

3.5.TCP协议的流量控制

  • 流量控制指让发送方发送速率不要太快
  • 流量控制是使用滑动窗口来实现的
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
发送方和接收方会一直等待,这时使用坚持定时器。
在这里插入图片描述

3.6.TCP协议的拥塞控制

在这里插入图片描述

  • 流量控制考虑点对点的通信量的控制
  • 拥塞控制考虑整个网络,是全局性的考虑
  • 报文超时则认为是拥塞

3.6.1.慢启动算法

  • 由小到大逐渐增加发送数据量
  • 每收到一个报文确认,增大一倍

1 2 4 8 16 指数增长 达到慢启动阈值16,启动拥塞避免算法

3.6.2.拥塞避免算法

  • 维护一个拥塞窗口的变量。
  • 只要网络不拥塞,就试探着拥塞窗口调大, 每次加1

1 2 4 8 16 慢启动阈值16

? 17 18 19
在这里插入图片描述

3.7.TCP连接的建立----三次握手

TCP标记:
在这里插入图片描述
在这里插入图片描述
为什么发送方要发出第三个确认报文呢?(三次握手)

? 防止已经失效的连接请求报文传送到对方,引起错误。
在这里插入图片描述
在这里插入图片描述

3.8.TCP的释放-----4次挥手

在这里插入图片描述
等待计时器:等待2MSL,MSL(最长报文段寿命)

MSL建议设置为2分钟。

为什么需要等待2MSL?

  • 确保发送方的ACK可以到达接收方
    • 一个报文没有确认
    • MSL是报文最长寿命
    • 2MSL时间内没有收到,则接收方会重发
  • 确保当前连接的所有报文都已经过期

3.9套接字与套接字编程

  • 使用端口(Port)来标记不同的网络进程
  • 端口(Port)使用16比特位表示(0~65535)

{IP:Port}. ===>套接字(Socket)

  • 套接字(Socket)是抽象概念,表示TCP连接的一端
  • 通过套接字可以进行数据发送或接受
    在这里插入图片描述
    TCP由两个套接字组成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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