导图社区 计算机网络5-传输层
计算机网络中传输层的知识框架梳理,适合考研408、专业课考试。主要包括:传输层服务的功能、寻址与端口、无连接服务与面向连接服务。
编辑于2022-07-24 11:50:03传输层
传输层服务
功能
1.提供应用进程之间的逻辑通信
2.复用和分用
传输层的复用是指发送方不同的应用进程都可使同一个传输层协议传送数据; 分用是指接收方的传输层在剥去报文首部后能把这些数据正确交付给目的应用进程
网络层的复用是指发送方不同协议的数据都可以封装成IP数据报发送出去; 分用是指接收方的网络层在剥去首部后把数据交付给相应的协议
3.差错检测
检测首部和数据部分
网络层只检查IP数据报的首部
4.同时提供两种不同的传输协议
TCP和UDP
网络层要么只提供面向连接的服务,如虚电路;要么只提供无连接服务,如数据报
5.及时网络层协议不可靠,传输层仍能为应用程序提供可靠的服务
6.通信子网中没有传输层,传输层只存在于以外的主机中
寻址与端口
端口的作用
标识主机中的应用进程,能让应用层的各种应用进程将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层的相应进程
传输层的SAP(服务访问点)
数据链路层的SAP是MAC地址
网络层的SAP是IP地址
端口号
长度为16bit,能表示2^16个不同的端口号;只具有本地意义,在因特网中不同计算机的相同端口号是没有联系的
分类
服务器端使用的端口号
熟知端口号
数值为0~1023
IANA(互联网地址指派机构)派给了TCP/IP最重要的应用程序
登记端口号
数值1024~49151
必须在IANA登记,以防重复
客户端使用的端口号
数值为49152~65535
仅在客户进程运行时才动态选择,又称短暂端口号/临时端口
套接字Socket
是一个通信端点,端口号与IP地址拼接,唯一地标识网络中一台主机的一个应用进程
Socket=(IP地址:端口号)
无连接服务与面向连接服务
UDP与IP数据报区别
IP数据报在网络层要经过路由的存储与转发;而UDP数据报在传输层的端到端的逻辑信道中传输,封装成IP数据报在网络层传输时,UDP数据报的信息对路由是不可见的
TCP与网络层虚电路的区别
TCP报文段在传输层抽象的逻辑信道中传输,对路由器不可见;虚电路所经过的交换节点都必须保存虚电路的状态信息。在网络层若采用虚电路方式,则无法提供无连接服务;而传输层采用TCP不影响网络层提供的无连接服务
UDP
UDP数据报
概述
在IP数据报服务上增加了两个最基本的服务:复用和分用以及差错检测
优点
1.无须建立连接
2.无连接状态
3.分组首部开销小
4.应用层能更好地控制要发送的数据和发送时间
5.支持一对一、一对多、多对一、多对多的交互通信
格式
UDP校验
伪首部
临时添加,既不向上递交也不向下传送
过程
1.把全零字段放入校验和字段并添加伪首部,视作每16位的字串,若不是偶数字节,最后在数据部分临时填入全零(不发送)
2.按照二进制反码计算出这些16位字的和,将此和写入校验和字段,并发送
3.接受方收到的UDP数据报,自己加上伪首部,不为偶数字节仍填充0,按二进制反码求和。无差错时结果应全为1,否则就有差错,接收方会丢弃这个数据报或附上错误报告交给上层
TCP
特点
1.TCP是面向连接的传输层协议,TCP连接是一条逻辑连接
2.每条TCP连接只能有两个端点,每条TCP连接只能是端到端的(进程对进程)
3.TCP提供可靠交付的服务,保证传送的数据无差错、不丢失、不重复且有序
4.TCP提供全双工通信,允许双方的进程在何时都能发送数据,TCP两端都设有发送缓存和接受缓存
发送缓存
发送应用程序传送给发送方TCP准备发送的数据
TCP已发送但尚未收到确认的数据
接受缓存
按序到达但尚未被接受应用读取的数据
不按序到达的数据
5.TCP是面向字节流的,把应用程序交下来的数据视作一连串无结构的字节流
TCP报文段
序号:占4B,范围为0~2^31-1;指的是本报文段所发送的数据的第一个字节的序号
确认号:期望收到对方下一个报文段的第一个数据字节的序号
数据偏移(即首部长度)
单位是4B,首部的最大长度为60B
紧急位URG
为1时,表明紧急指针字段有效,即此报文段中有紧急数据应尽快发送
确认位ACK
为1时,确认号有效;否则无效
推送位PSH
接收方TCP收到PSH=1的报文段,就尽快地交付给应用进程
复位位RST
为1时表示TCP连接中出现严重差错,必须释放重新建立
同步位SYN
为1时,表示连接请求或连接接受报文; 为1时,ACK=0时,表示连接请求;若对方同意,响应报文中SYN=1,ACK=1
终止位FIN
用来释放一个连接;FIN=1时,表示此报文段的发送方数据已发送完毕,并要求释放运输连接
窗口
允许对方发送的数据量,作为接收方让发送方设置其发送窗口的依据
校验和
包括首部和数据,方法同UDP,只需将协议字段的17改为6
紧急指针
URG=1时才有意义,表示本报文段中紧急数据共有多少字节(在报文段最前面)
选项
长度可变。eg:MSS是TCP报文段中数据字段的最大长度
填充
首部长度是4B的整数倍
TCP连接管理
连接的建立(三次握手)
数据传输
连接的释放(四次挥手)
TCP可靠传输
序号
确认
重传
超时
TCP每发送一个报文段,就设置一个计时器,若设置的时间内未收到确认,则重传
冗余ACK
指再次确认某个报文段的ACK
TCP规定每当比期望序号大的失序报文段到达时,就发送一个或多个冗余ACK,指明下一个期待字节的序号;(快速重传:接收方收到冗余ACK后,立即重传)
TCP流量控制
基于滑动窗口协议的流量控制
接收方根据自己接收缓存的大小,动态地调整发送方的发送窗口大小,即接收窗口rwnd,即“窗口”字段值;同时,发送方根据网络拥塞程度估计而确定的窗口值,这称为拥塞窗口cwnd,大小与网络的带宽和时延密切相关
发送窗口取这俩的最小值
与数据链路层流量控制的区别
传输层定义端到端用户之间的流量控制,数据链路层定义两个中间相邻结点的流量控制
数据链路层的滑动窗口协议的窗口大小不能动态变化,传输层则可以动态变化
TCP拥塞控制
拥塞窗口的维护
慢开始和拥塞避免
快重传
发送方连续收到3个重复的ACK时,直接重传对方尚未收到的报文段,而不必等待重传计时器超时
快恢复