| |
|
开发:
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协议的特性 TCP协议在IP协议软件提供服务的基础上,支持面向连接的、可靠的、面向流的服务。 (1)面向流的投递服务 应用程序之间传输的数据可被视为无结构的字节流(或位流),流投递服务保证收发的字节顺序完全一致。 (2)面向连接的投递服务 流传输之前,TCP收发模块之间需建立(类似虚电路),其后的TCP报文在此连接上传输。TCP连接报文通过IP数据报进行传输,由于IP数据报的传输导致ARP地址映射表的产生,从而保证了后继的TCP报文可以具有相同的路径。 (3)可靠的传输服务 发送方TCP模块在形成TCP报文的同时,形成一个“累计核对”。“累计核对”类似于校验和,并随同TCP报文一起传输。接收方TCP模块根据该校验和判断传输的正确性:如果传输不正确,接收方简单地丢弃该TCP报文;否则进行应答。发送方如果在规定地时间内未能获得应答报文,则自动进行重传。 (4)缓冲传输 为了保证数据传输地效率,TCP模块提供强制性传输(立即传输)和缓冲传输两种手段。缓冲传输允许将应用程序地数据流积累到一定的体积,形成报文,再进行传输。 (5)全双工传输 TCP模块之间可以进行全双工的数据流交换。 (6)流量控制 TCP模块提供滑动窗口机制支持收发TCP模块之间的端到端流量控制。 2.TCP端口和连接 TCP模块以IP模块为传输基础,同时又可向多种应用程序提供传输服务。为了能够区分对应的应用程序,引入了TCP端口号含义。 TCP端口类似于OSI中传输层服务访问点,与一个16位的整数值相对应,该整数值也被称为TCP端口号。需要服务的应用程序与某个端口号进行连接,此时,TCP模块就可以通过该TCP端口与应用进程通信。 由于IP地址可以对应到因特网中的某台主机,而TCP端口号可对应到主机上某个应用进程,因此,TCP模块采用IP地址和端口号的对偶来标识TCP连接的端点。一条TCP连接实质上对应了一对TCP端点。 3.TCP窗口机制 TCP的特点之一是提供体积可变的滑动窗口机制,支持端到端的流量控制。TCP的窗口以字节为单位进行调整,以适应接收方的处理能力。 处理过程: (1)TCP连接阶段,双方协商窗口尺寸,同时接受方预留数据缓存区。 (2)发送方根据协商的结果,发送符合窗口的尺寸的数据字节流,并等待对方的确认。 (3)接收方根据当前的处理能力,调整接收窗口的尺寸,并在确认中告知发送方。 (4)发送方根据确认信息,改变窗口的尺寸,增加或减小发送未得到确认的字节流中的字节数。调整过程包括:如果出现发送拥塞,则应将发送窗口缩小为原来的一半,同时将超时重传的时间间隔扩大一倍。 TCP的窗口机制和确认保证了数据传输的可靠性和流量控制。 4.UDP UDP是TCP/IP协议簇中等同于TCP的通信协议,其差异在于:UDP直接利用IP进行UDP数据报的传输,因此UDP提供的是无连接、不可靠的数据报投递服务。 UDP常用于数据量较少的数据传输。例如,域名系统中地址/IP地址的映射请求和应答采用UDP进行传输,以减少TCP连接的过程,提高工作过效率。 当使用UDP传输信息流时,用户负责解决排序、差错确认等问题。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 6:27:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |