运输层协议:TCP和UDP
2024-09-07 17:38:41
运输层简介
运输层的通信实体不再是主机,而是主机中的进程。运输层的通信是一台主机的进程和另一台主机的进程进行数据交换。
运输层作用
- 运输层向上层的应用层提供通信服务
- 运输层为进程提供端到端的通信
运输层协议
- 传输控制协议(TCP):面向连接的可靠传输协议
- 用户数据报协议(UDP):无连接的不可靠协议
应用层对UDP和TCP的使用
应用 | 应用层协议 | 运输层协议 |
---|---|---|
域名解析 | DNS | UDP |
文件传送 | TFTP(简单文件传送协议) | UDP |
万维网 | HTTP | TCP |
电子邮件 | SMTP | TCP |
文件传送 | FTP(文件传送协议) | TCP |
UDP
UDP,用户数据报协议(User Packet Protocol)。UDP在IP的数据报基础上只加入了很少的功能,包括复用分用和差错检测。它有以下的特点:
- 无连接:UDP在发送数据前不需要建立连接,这减少了建立连接和释放连接带来的开销
- 尽最大努力交付:UDP没有差错重传的机制,它只能尽最大努力交付数据,所以是不可靠传输。虽然没有重传机制导致了不可靠传输,但是这样也减少了主机需要维护的状态参数,减轻了主机的负担
- 面向报文:UDP将上层服务传递的报文加上首部后就能发送,它不会对数据进行拆分或合并
- 首部开销小:UDP报文的首部只有8字节
- 一对多、多对一、一对一通信
TCP
TCP,传输控制协议(Transport Controller Protocol)。TCP是比较复杂的协议,它加入了可靠传输、流量控制、拥塞控制的机制。
- 面向连接:TCP在发送数据之前要建立TCP连接,通信完成需要释放连接。TCP建立连接要经过三次握手的过程,释放连接要经过四次挥手
- 可靠传输:TCP通过确认报文、停止等待(自动重传)等方式实现了可靠传输
- 面向字节流:TCP会将应用层的数据划分成大小不等的数据块,数据块以字节为单位。TCP会将这些数据块封装后按序发送,但是不能保证数据块到达的顺序
- 点对点:因为建立连接,TCP只能进行端到端的通信
TCP与UDP对比
UDP | TCP | |
---|---|---|
有无连接 | 无连接 | 有连接 |
是否可靠 | 尽最大努力交付 | 可靠传输 |
传输方式 | 面向报文 | 面向字节流 |
端点 | 一对一、一对多 | 点对点 |
首部大小 | 首部小,仅8字节 | 首部开销大 |
最新文章
- Java方法区和运行时常量池溢出问题分析
- eclipse failed to create the java virtual machine 问题图文解析
- Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解
- VS2013无法启动 IIS Express Web解决办法
- Laravel教程 五:MVC的基本流程
- OpenJudge计算概论-计算三角形面积【海伦公式】
- UVA 11609 Teams 组合数学+快速幂
- zedboard之ubuntu环境变量设置
- myeclipse6.0下载及注冊码
- JDK 环境变量配置(Mac)
- Portal.MVC
- Angular4.0引入laydate.js日期插件方法
- 有关java中的hashCode问题
- poj 1696 叉积理解
- OpenStack 命令行速查表
- HDU - 1036
- 苹果手机iOS11中fixed弹出框中input光标错位问题
- Got error on conf /etc/mha/app1.cnf: Parameter name master_ip_failover_scrip is invalid!
- mongoose findByIdAndUpdate不执行的解决方法
- 【修改缓存路径】修改Gradle缓存路径的几种方式
热门文章
- 搭建SSM基础环境>;基于idea
- 剑指 Offer 32 - II. 从上到下打印二叉树 II
- Java面向对象01——什么是面向对象
- Salesforce Integration 概览(五) Remote Call-In(远程操作 外部->;salesforce)
- dubbo学习实践(3)之Dubbo整合Consul及Dubbo配置方式
- 关于shell脚本——echo、for语句、while语句、until语句
- cmseasy&;内网渗透 Writeup
- sqli-labs lesson1-4
- [BZOJ2906]「颜色」
- MVVMLight学习笔记(二)---MVVMLight框架初探