- 前言
- 一、传输层介绍
- 二、传输层功能
- 1.进程间的逻辑通信
- 2.多路复用/分用
- (1).无连接分用
- (2).面向连接分用
- 三、传输层协议
- 1.面向连接TCP
- 2.无连接UDP
- 总结
提示:以下是本篇文章正文内容
一、传输层介绍传输层:为应用层提供通信服务,使用网络层的服务
1.传输层服务的基本理论和基本机制
(1)复用/分用 (2)可靠数据传输机制 (3)流量控制机制 (4)拥塞控制机制
2.Internet的传输层协议
(1) UDP:无连接传输服务 (2)TCP:面向连接的传输服务 TCP拥塞控制
二、传输层功能 1.进程间的逻辑通信传输层提供应用进程之间的逻辑通信(即端到端的通信)
传输层协议为运行在不同Host上的进程提供了一种逻辑通信机制
(1)端系统运行传输层协议 发送方:将应用递交的消息分成一个或多个的Segment,并向下传给网络层。
接收方:将接收到的segment组装成消息,并向上交给应用层
(2)传输层可以为应用提供多种协议 TCP / UDP
传输层和网络层对比 (1)网络层:提供主机之间的逻辑通信机制
(2)传输层:提供应用进程之间的逻辑通信机制
1.位于网络层之上 2.依赖于网络层服务 3.对网络层服务进行(可能的)增强
2.多路复用/分用如果某层的一个协议对应直接上层的多个协议/实体,则需要复用/分用
复用:指发送方不同的应用进程都可使用同一个传输层协议传送数据
分用:指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程
接收端进行多路分用:传输层依据头部信息将收到的Segment交给正确的Socket,即不同的进程
发送端进行多路复用:从多个Socket接收数据,为每块数据封装上头部信息,生成Segment,交给网络层
分用工作原理: (1)主机接收到IP数据报(datagram)
1.每个数据报携带源IP地址、目的IP地址。 2.每个数据报携带一个传输层的段(Segment) 3.每个段携带源端口号和目的端口号
IP数据报
(2)主机收到Segment之后,传输层协议提取IP地址和端口号信息,将Segment导向相应的Socket
分用分为无连接分用和面向连接分用
(1).无连接分用1.利用端口号创建Socket
DatagramSocket mySocket1 = new DatagramSocket(99111);
DatagramSocket mySocket2 = new DatagramSocket(99222);
2.UDP的Socket用二元组标识:(目的IP地址,目的端口号) 套接字Socket= (主机IP地址,端口号)
3.主机收到UDP段后,检查段中的目的端口号,将UDP段导向绑定在该端口号的 Socket
4.来自不同源IP地址和/或源端口号的IP数据包被导向同一个Socket
传输过程:
1.TCP的Socket用四元组标识 (源IP地址,源端口号,目的IP地址,目的端口号)
2.接收端利用所有的四个值将Segment导向合适的Socket
3.服务器可能同时支持多个TCP Socket , 每个Socket用自己的四元组标识
4.Web服务器为每个客户端开不同的Socket
传输过程:
注:传输层的复用分用功能与网络层的复用分用功能不同 网络层的复用是指发送方不同协议的数据都可以封装成IP数据报发送出去, 网络层的分用是指接收方的网络层在剥去首部后把数据交付给相应的协议
三、传输层协议传送数据前必须建立连接,数据传输结束后要释放连接,不提供广播和多播服务 由于TCP要提供可靠的面向连接的传输服务,因此不可避免增加许多开销:确认,流量控制,计时器及连接管理
特点:可靠,面向连接,时延大,适用于大文件
TCP主要适用于可靠更重要的场合,如文件传输协议(FTP),超文本传输协议(HTTP),远程登录(TELNET)
2.无连接UDP传送数据之前不需要建立连接,收到UDP报文后也不需要给出任何确认
特点:不可靠,无连接,时延小,使用于小文件
UDP的应用主要包括小文件传输协议(TFTP) ,DNS,SNMP和实时传输协议(RTP)
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?