5.1 基本概念
只有主机才有的层次
-
传输层提供进程和进程之间的逻辑通信
-
复用(应用层所有的应用进程都可以通过传输层再传输到网络层)和分用(传输层从网络层收到数据后交付指明的应用进程)
-
传输层对收到的报文进行差错检测
传输层的两个协议
-
TCP(面向连接的传输控制协议):可靠,面向连接,时延大,不提供广播/多播服务,适用于大文件
-
UDP(无连接的用户数据报协议UDP):不可靠,无连接,时延小,适用于小文件
传输层的寻址与端口
端口是传输层的SAP,标识主机中的应用进程,分为逻辑端口/软件端口
5.2 UDP协议
-
无连接,减少时延
-
不保证可靠交付
-
面向报文
-
无拥塞控制
-
UDP首部8B
UDP报文格式
UDP校验
接收端的校验码(求和取反)和发送端的校验码(全零)不同,所以若无差错,则接收端再次求和相当于总的结果+总的结果取反=全1
5.3 TCP协议
TCP协议的特点
-
TCP是面向连接(虚连接)的传输层协议;点对点,且只有两个端点
-
每一条TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达
-
TCP提供全双工通信:发送缓存(准备发送&已发送但未收到确认的数据)和接收缓存(按序到达但未被接受应用程序读取的数据)&不按序到达的数据
-
TCP面向字节流:TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
TCP报文段首部格式
-
序号:在一个TCP连接中传送的字节流中的每一个字节都按顺序编号,本字段表示本报文段所发送数据的第一个字节的序号
-
确认号:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为N,则证明到序号N-1为止的所有数据都已正确收到
-
数据偏移(首部长度):TCP报文段的数据起始处距离TCP报文段的起始处有多远,以4B为单位
-
六个位:
-
紧急位URG:URG=1时,标明此报文段中有紧急数据,是高优先级的数据,应尽快传送,配合紧急指针字段使用
-
确认位ACK:ACK=1时确认号有效,在连接建立后所有传送的报文段都必须把ACK置为1
-
推送位PSH:PSH=1时,接收方尽快交付接收应用进程,不再等到缓存填满再向上交付
-
复位RST:RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立传输连接
-
同步位(SYN):SYN=1时,表明是一个连接请求/连接接受报文
-
终止位(FIN):FIN=1时,表明此报文段发送方数据已发完,要求释放连接
-
-
窗口(接收窗口):指的是发送本报文段的一方的接收窗口,即现在允许对方发送的数据量
-
检验和:检验首部+数据,检验时要加上12B伪首部,第四个字段为6
-
紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数
-
选项:最大报文段长度MSS、窗口扩大、时间戳、选择确认
TCP连接管理
TCP的连接建立(三次握手)
TCP的连接释放(四次握手)
TCP的可靠传输
返回确认报文段之前,TCP缓存仍保留原报文段
累计确认,确保每个报文段都接收到
确认重传不分家,TCP的发送方在规定的时间内没有收到确认就要重传已发送的报文段;TCP采用自适应算法,动态改变重传时间RTTs(加权平均往返时间)
快速重传方法(冗余ACK/确认法)
TCP流量控制
通过B对A的发送窗口进行设置来控制流量(动态滑动窗口机制);发送方的发送窗口取决于接收窗口rwnd和拥塞窗口cwnd的最小值
TCP拥塞控制
相对于流量控制具有全局性
慢开始和拥塞避免
快重传和快恢复
标签:发送,报文,确认,TCP,计算机网络,传输层,连接 From: https://www.cnblogs.com/eecsCodeStar/p/16980744.html