第5章-TCP和UDP基本原理

1. TCP/IP传输层的作用

2. TCP基本原理

2.1. TCP头格式

2.2. TCP的三次握手

2.3. TCP的四次挥手

2.4. TCP的窗口滑动机制

3. UDP基本原理

4. TCP和UDP的比较


1. TCP/IP传输层的作用

        1、定义:为主机:提供端到端的连接;为网络层:提供TCP和UDP服务;

        2、作用:

        提供面向连接或无连接的服务;

        维护连接状态;

        对应用层数据进行分段和封装;

        实现多路复用;

        可靠地传输数据;

        3、TCP和UDP的区别

        TCP(Transmission Control Protocol):面向连接;"流式传输"

        UDP(User Datagram Protocol):无连接,不可靠;

        对方在吗?对方收到了吗?对方收到的信息正确的吗?

2. TCP基本原理

2.1. TCP头格式

        Source Port | Destination Port

        源端口、目的端口;

        端口:每个应用程序进出网络都需要经过一个唯一端口,通过端口来识别数据交由哪个应用程序处理;

        服务端:固定端口号0~1023;客户端:1024以上随机端口;

        命令:netstat -a

        Sequence Number | Acknowledgement Number

        Sequence Number 序列号

        Acknowledgement Number 确认号

        Data Offset | Reserved

        Data Offset(数据偏移):标识数据分段在完整数据中的位置,进行数据重组;

        Reserved(保留位):闲置;

        Flags 标志位

        URG(紧急指针字段标志):紧急开关位,优先转发;(紧急指针)

        ACK(确认字段标志):标识字节流;

        PSH(推功能):直接提交缓存数据,在缓存区中立即结束上传给应用层;

        RST(重置连接):无法正常连接,死机、断线;

        SYN(协商位、同步序列号):确认号;

        FIN(数据传送完毕):标识结束—四次挥手;

        Window

        窗口尺寸:滑动机制,用来通告本机的接收能力;

        问题:丢包重传

        Checksum | Options | Padding

        Checksum:Hash校验

2.2. TCP的三次握手

        1、工作机制

        seq:序列号,随机产生;

        ack:确认号;

        ① 主机A向主机B发送请求,第一个数据包,产生一个seq:a;(无ack)

        ② 主机B回应主机A,a. 确认收到,产生一个ack:a+1;b. 产生一个seq;

        ③ 主机A回应主机B,对该确认再做确,再产生序列号;ack:a+1; seq:b+1;

        ④ 主机B收到主机A的确认报文后,连接建立;

        例子:两个人打招呼;

        2、确认重传机制

        若数据包检测有错误,利用确认号,让对方再发一次

        3、现实应用场景

        TCP不要求对每个段一对一地发送确认,接收端可以用一个ACK确认之前收到的所有数据。

2.3. TCP的四次挥手

        FIN(Finish Segment):结束段;

        工作机制

        ① 主机A向主机B发送FIN,请求结束

        ② 主机B向主机A回应: a. ACK确认收到请求,b. FIN请求结束

        ③ 主机A向主机B回应ACK,确认结束

2.4. TCP的窗口滑动机制

        目的:实现流量控制;

        工作机制:使用大小可变的滑动窗口,定义窗口尺寸的通告;

3. UDP基本原理

        1、功能:实现数据报模型的分组交换计算机网络通信而设计的;无连接、不可靠;

        2、UDP的头格式

4. TCP和UDP的比较

        1、TCP:

        优点:传输可靠性高;

        缺点:占用带宽高,传输延迟高;

        应用场景:对数据完整性要求高,但对传输延迟要求低;

        2、UDP:

        优点:占用带宽低,传输延迟低;

        缺点:没有任何可靠机制;

        应用场景:对传输延迟要求高,但数据完整性要求低

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/427288.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】入门(二)

前言: c基础语法(下) 文章目录 五、引用5.1 引用概念5.2 引用使用规则5.3 常引用5.4 引用的使用场景5.5 引用和指针的区别 六、内联函数6.1 概念6.2 内联函数的特性 七、auto关键字(C11)7.1 概念7.2 使用规则7.3 用于f…

SpringSecurity(12)——OAuth2相关概念

角色 资源所有者(Resource Owner):通常是用户,如昵称、头像这些资源的拥有者(用户只是将这些资源放到服务提供商的资源服务器中)第三方应用(Client):希望使用资源服务器…

Springboot+vue的科研工作量管理系统的设计与实现(有报告),Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的科研工作量管理系统的设计与实现(有报告),Javaee项目,springboot vue前后端分离项目 项目介绍: 本文设计了一个基于Springbootvue的前后端分离的科研工作量管理系统的设计与实现…

一分钟教你搭建《幻兽帕鲁》服务器

幻兽帕鲁是一款由Pocketpair开发的开放世界生存游戏,融合了多种玩法的游戏,其独特的题材和画风吸引了很多玩家,越来越多的玩家开始尝试自己搭建服务器,享受更加自由的游戏体验。本文将为大家详细介绍如何从零开始搭建《幻兽帕鲁》…

Git的管理操作

目录 前言 认识工作区、暂存区、版本库 小结: 使用场景--1: git log: 查看.git文件: 使用场景--2: git status: git diff: 进行提交: 总结: 版本回退 退…

java垃圾回收GC过程

GC(Gabage Collection) 用于回收堆中的垃圾数据 清理方法 1.标记-清理 对数据标记,然后清理 缺点:容易产生内存碎片 2.标记-整理 对标记后的数据清理,剩下数据前移 缺点:每次清理后数据都要迁移&#xff0…

Socket多进程模型

基于最原始的阻塞网络 I/O, 如果服务器要支持多个客户端,其中比较传统的方式,就是使用多进程模型,也就是为每个客户端分配一个进程来处理请求。 服务器的主进程负责监听客户的连接,一旦与客户端连接完成,a…

【jetson笔记】解决vscode远程调试qt.qpa.xcb: could not connect to display报错

配置x11转发 jetson远程安装x11转发 安装Xming Xming下载 安装完成后打开安装目录C:\Program Files (x86)\Xming 用记事本打开X0.hosts文件,添加jetson IP地址 后续IP改变需要重新修改配置文件 localhost 192.168.107.57打开Xlaunch Win菜单搜索Xlaundch打开 一…

上市公司-避税程度(2000-2022年)(数据+4种方法测算)

上市公司的避税程度是一个重要的财务指标,可以通过多种方式进行研究和分析。以下是一些可以用来研究上市公司避税程度的方法和指标:财务报表分析:可以通过分析公司的财务报表,特别是利润表和资产负债表,来识别潜在的避…

【裁员潮】技术变革下的职业危机,程序员会有多大影响,又应该如何面对

大家好,我是全栈小5,欢迎阅读文章! 此篇是【话题达人】序列文章,这一次的话题是《技术变革下的裁员潮》 文章将以博主的角度进行讲述,理解和水平有限,不足之处,望指正。 目录 背景硬实力职业危机…

Nas-FPN(CVPR 2019)原理与代码解析

paper:NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection third-party implementation:https://github.com/open-mmlab/mmdetection/tree/main/configs/nas_fpn 本文的创新点 本文采用神经网络结构搜索(Neur…

【JavaWeb】日程管理系统 项目搭建 第二期

文章目录 一、数据库准备二、导入依赖 与 JDBC工具类三、pojo包处理四、daodao包工具类 五、service六、controllerservlet 基类 反射 七、加密工具类 MD5八、页面文件九、业务代码9.1 注册业务处理9.2 登录业务处理 总结 一、数据库准备 创建数据库: SET NAMES …