计算机网络之传输层知识点笔记整理
树图思维导图提供 《计算机网络》传输层笔记 在线思维导图免费制作,点击“编辑”按钮,可对 《计算机网络》传输层笔记 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:ab7a9651f7d2ea77c31feff7a3534fae
《计算机网络》传输层笔记思维导图模板大纲
通信部分的最高层,是面向用户功能部分的最底层
在通信子网中没有传输层,只有在主机中有传输层
传输层的功能
应用进程之间的逻辑通信(即端到端通信)
复用和分用
复用:发送发不同的应用进程都可使用同一个传输层协议传送数据
分用:接收方的传输层在剥去报文的首部后能把这些数据正确的交付到目的应用进程
对收到的报文进行差错检测(首部和数据部分),网络层只检查IP数据的首部
提供两种不同的传输协议
面向连接的TCP
无连接的UDP
端口
端口是传输层的服务访问结点(TSAP),类似于网络层的IP地址,数据链路层的MAC地址,端口号标识的是不同的进程
端口号
长度为16bit,只具有本地意义
两类端口号
服务端使用的端口号
熟知端口号:0~1023
FTP(文件传输协议):21
TELNET(远程登陆协议):23
SMTP(简单邮件传输协议): 25
DNS(域名转换协议):53
TFTP(小文件传送协议):69
HTTP(超文本传输协议):80
SNMP(简单网络管理协议):161
登记端口号:1024~49151
客户端使用的端口号/短暂端口号/临时端口号
数值为49152~65535
套接字(Socket):(主机IP地址,端口号)
UDP的优点
无需建立连接,没有建立连接的时延
没有连接状态,可以支持更多的客户机
首部开销小,TCP首部20B,UDP首部只有8B
应用层能更好的控制要发送的数据和发送时间
传输层是面向报文的,发送方UDP对应用层浇下来的报文,添加首部之后就向下交付给IP层,不合并,不拆分。
UDP首部格式
源端口
目的端口
长度:以字节为单位,包括数据和首部
校验和:可选的,不想校验就直接全0
UDP校验
计算校验和时需要添加12B的伪首部,既不向下传送,也不向上递交,只是为了计算校验和
UDP校验和检查首部和数据部分,IP数据报的校验和只检查首部
校验如果出错,可以直接丢弃,也可以交付给上层,但是需要附上错误报告
特点
TCP使用套接字(socket)确定两个端点,所以一旦建立就不能在相同的端点再建立TCP连接
TCP连接只能是点对点的
TCP连接是全双工的,TCP连接双方都有发送缓存和接收缓存
TCP是面向字节流的
虽然TCP面向字节流,但是并不是每一个字节都会进行确认,TCP的确认机制以报文段为单位
TCP报文段
TCP首部
前20B是固定的,TCP首部最短20B,最长60B(数据偏移字段只有4位),填充的数据只能是4B的整数倍
构成
源端口和目的端口
序号字段:4B,TCP为每一个字节编一个序号,序号字段的值是本报文段所发送的数据的第一个字节序号
确认号字段:4B,期望收到对方的下一个数据报的第一个字节的序号
数据偏移(首部长度):4位,单位是32位,即4B
保留字段:6位
紧急位URG:为1时表示报文段中有紧急数据,应尽快发送
确认位ACK:连接建立后所有传送的报文段都应该把ACK置1
推送位PSH:为1表示尽快提交给应用程序,不能等待缓存写满
复位位RST:为1时表示,出现严重差错,必须释放连接,然后重新建立运输连接
同步位SYN:SYN=1,ACK=0时表示这是一个连接请求报文。SYN=1,ACK=1表示接受连接请求
终止位FIN:为1表示发送方的数据已经发送完毕,请求释放传输连接
窗口字段:2B,允许对方发送的数据量,单位为字节
校验和:2B,检查首部加数据,检查时候和UDP一样加上伪首部
紧急指针字段:16位,指出本报文段中紧急数据共有多少字节,紧急数据放在报文段数据部分最前面
选项字段:长度可变
填充字段:为了使整个首部长度是4B的整数倍
TCP数据
TCP连接管理
TCP连接的端口是套接字(Socket)/插口
TCP连接的建立(三次握手)
客户机→服务器:SYN=1,ACK=0,seq=x
客户机←服务器:SYN=1,ACK=1,seq=y,ack=x+1,服务器端分配缓存和变量
客户机→服务器:SYN=0,ACK=1,seq=x+1,ack=y+1,客户机端分配缓存和变量
连接建立,传输数据
TCP连接的释放(四次挥手)
客户机→服务器:发出连接释放报文段,停止发送数据,主动关闭TCP连接,FIN=1,seq=u
客户机←服务器:发出确认,ACK=1,ack=u+1,seq=v,服务器仍可以发送数据
客户机←服务器:通知TCP释放连接,FIN=1,ACK=1,seq=w,ack=u+1
客户机→服务器:发出确认,ACK=1,ack=w+1,seq=u+1,此时还未释放连接,等待2MSL之后,客户机进入连接关闭状态
TCP可靠传输
TCP的校验机制和UDP一样
序号:
TCP给每一个字节编号,所以TCP是基于字节流的
确认:
TCP采用累计确认,ack号是数据流中至第一个丢失字节为止的字节
重传:
超时
自适应算法
新RTT=(1-α)×(旧RTT)+α×(新RTT样本) 推荐的α=0.125
超时重传时间RTO应该略大于新的RTT
RTO=RTT+4×RTTD RTTD为RTT的加权平均值
新的RTTD=(1-β)×(旧RTTD)+β×|RTT-新的RTT样本| 推荐的=0.25
冗余ACK
TCP没收到一个比期望序号大的失序ACK就发送一个冗余ACK
连续收到三个冗余ACK时就进行重传
称为快速重传技术
TCP流量控制
TCP的流量控制服务基于滑动窗口协议
两个窗口
接收窗口rwnd:接收方根据自己的缓存大小,通过设置TCP报文中的窗口字段值,动态的调整发送方的发送窗口大小
拥塞窗口cwnd:发送方根据当前网络的拥塞程序的估计动态确定的窗口值,大小与带宽和时延密切相关
TCP拥塞控制
发送窗口的上限值=min[rwnd,cwnd]
控制方法
慢开始
在TCP刚连接的时候,令拥塞窗口cwnd=1,即一个最大报文长度MSS
每收到一个对新报文段的确认后,将cwnd加一(每个报文就加1,所以每个RTT之后都是加倍,cwnd指数式增长)
增大到一个规定的慢开始门限ssthresh之后,改用拥塞避免算法
拥塞避免
发送端的拥塞窗口cwnd每经过一个往返时延RTT就增加一个MSS大小,cwnd按线性规律缓慢增长(加法增大)
出现网络超时(网络拥塞)时,令慢开始门限ssthresh变为当前cwnd的一半(乘法减小)
cwnd<ssthresh时,慢开始
cwnd>ssthresh时,拥塞避免
cwnd=ssthresh时,两者均可,一般拥塞避免
cwnd不能越过ssthresh的值
拥塞处理
网络出现拥塞时,无论是慢开始还是拥塞避免阶段,都直接把慢开始门限ssthresh设置为出现拥塞时的发送方cwnd的一半(不小于2)
然后把拥塞窗口cwnd设置为1,执行慢开始
快重传
连续收到三个冗余ACK时(重复确认)就进行重传,不用等待重传计时器超时
快恢复
连续收到三个冗余ACK时,进行乘法减小,把慢开始门限ssthresh设置为出现拥塞时的发送方cwnd的一半
将cwdn的值设置为慢开始门限ssthresh改变后的值,然后执行“拥塞避免算法”
树图思维导图提供 农村幼儿园利用绘本阅读开展安全教育的实践研究_副本 在线思维导图免费制作,点击“编辑”按钮,可对 农村幼儿园利用绘本阅读开展安全教育的实践研究_副本 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:2000927dcd222b18fa95af52d1709af8
树图思维导图提供 普通家庭高考跨越阶层 在线思维导图免费制作,点击“编辑”按钮,可对 普通家庭高考跨越阶层 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:f3247f4626fdf79ff2dbeb15d8bdaa54