导图社区 计算机网络传输层
计算机网络传输层小结。还有不足,待补充
计算机组成原理CPU知识点。标红的地方是历年真题出现过的知识点。
社区模板帮助中心,点此进入>>
英语词性
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
法理
刑法总则
【华政插班生】文学常识-先秦
【华政插班生】文学常识-秦汉
文学常识:魏晋南北朝
【华政插班生】文学常识-隋唐五代
民法分论
传输层
传输层概述
传输层向它上面的应用层提供通讯服务,它属于通信部分的最高层,同时也是用户功能的最低层
功能
提供应用进程与应用进程之间的逻辑通信 而网络层提供主机之间的逻辑通信
复用:发送方不同的应用进程可以使用同一个传输层协议传送数据
分用:接收方的传输层在剥去报文的首部后能把这些数据正确交付到目的进程
对收到的报文进行差错检测 而网络层只检测IP 数据报头部
提供两种不同的传输协议,TCP 和UDP 网络层无法同时实现两种协议,要么虚电路,要么数据报
端口
端口是传输层的SAP ,标识主机中的应用进程 网络层SAP (IP 地址)数据链路层SAP (MAC 地址)
端口号长度16b
服务器使用的端口号
熟知端口号
给TCP/IP 最重要的应用进程。数值0 ~ 1023
登记端口号
1024 ~ 49151
客户端使用的端口号
仅在客户进程运行时才动态选择。49152 ~ 65535
常见熟知的端口号
FTP(21) TELNET (23) SMTP(25) DNS(53) TFTP(69) HTTP(80) SNMP(161)
套接字
主机IP 地址+ 端口号
唯一标识网络中一台主机和其上的一个应用进程
UDP 协议
UDP 仅在IP 数据报上增加了很少功能,即复用分用和差错检测
特点
无连接
不保证可靠传输(由应用层保证)
面向报文,适合一次性传输少量数据的网络应用
无拥塞控制,适合实时应用
首部8B ,TCP 首部20B
首部格式
源端口号(2B )
需要对方回信时选用,不需要时可全0
目的端口号(2B )
终点交付时必须用到(实现分用)
长度(2B)
UDP 数据报最小为8B
检验和(2B )
检测UDP 数据报在传输中是否有错,有错就丢弃
计算检验和要添加12B 的伪首部(伪首部仅在计算检验和时用到)
伪首部=4B 源IP 地址+4B 目的IP 地址+1B 全0 字段+1B 协议字段(UDP 为17 )+2BUDP 长度
检验和的计算方法:二进制反码求和再取反
TCP 协议
面向连接(虚连接)
提供可靠传输,保证数据无差错,不丢失,不重复且有序
面向字节流
每条TCP 连接只能是点对点的(一对一)
提供全双工通信
发送缓存
接受缓存
报文段格式
源端口(2B )
目的端口(2B )
序号(4B )
指本报文段所发送数据的第一个字节的序号
确认号(4B )
期望收到对方的下一个报文段的数据的第一个字节的序号
数据偏移(4b )
首部长度,以4B 为单位,最短20B
紧急位URG
URG=1 表明紧急指针有效,报文段中有高优先级的数据
确认位ACK
ACK=1 时确认号字段有效,连接建立后所有传送的报文段都必须把ACK 置1
推送位PSH
接收方应尽快交付应用进程
复位位RST
表面TCP 连接中出现严重差错,必须释放连接,再重新建立连接
同步位SYN
SYN=1 表示这是一个连接请求或连接接受报文
终止位FIN
释放连接
窗口(2B )
指允许对方发送的数据量,单位字节
校验和(2B )
与UDP 相同,伪首部协议字段是6
紧急指针(2B )
指出本报文段中紧急数据有多少字节
选项(长度可变)
MSS 是TCP 报文段中数据字段的最大长度
填充
使整个首部长度是4B 的整数倍
TCP 连接管理
连接建立(三次握手)
客户端发送连接请求报文段,无应用层数据 SYN=1 ,sea=x( 随机)
服务器为该TCP 连接分配缓存和变量,并向客户端返回确认报文段,无应用层数据 SYN=1 ,ACK=1 ,seq=y( 随机) ,ack=x+1
客户端为该TCP 连接分配缓存和变量,并向服务器返回确认的确认,可以携带数据 ACK=1 ,seq=x+1,ack=y+1
SYN 洪泛攻击
数据传送
连接释放(四次握手)
客户端发送连接释放报文段,停止发送数据,可以接受数据,主动关闭TCP 连接 FIN=1 ,seq=u
服务器端回送一个确认报文段,客户到服务器这个方向的连接就释放了—半关闭状态 ACK=1,seq=v,ack=u+1
服务器端发完数据,就发出连接释放报文段,主动关闭TCP 连接 FIN=1,ACK=1,seq=w,ack=u+1
客户端回送一个确认报文段,再等到时间等待计时器设置的2MSL (最长报文段寿命)后,连接彻底关闭 ACK=1,seq=u+1,ack=w+1
可靠传输
TCP 提供的可靠数据传输服务保证接收方进程从缓存区读出的字节流与发送方发出的字节流完全一样 序号,确认,重传,检验
序号
TCP 首部的序号字段用来保证数据能有序提交给应用层
一个字节一个序号
确认
确认号是期望对方的下一个报文段数据的第一个字节的序号
发送方缓存区会继续存储那些已发送但为收到确认的报文段,以便在需要时重传
默认使用累计确认
重传
超时重传
TCP 的发送方在重传时间内没有收到确认就要重传
冗余ACK ,快速重传
当发送方收到同一个报文段的3 个冗余ACK ,就认为期望报文段丢失,立即重传
流量控制
利用滑动窗口机制
接收方根据自己接受缓存的大小,动态地调整发送方的发送窗口大小(窗口字段rwnd) 发送方的发送窗口大小=min{ 接受窗口rwnd, 拥塞窗口cwnd}
拥塞控制
为防止过多的数据注入网络,保证网络中的路由器或链路不致过载。往往表现为通信时延的增加
拥塞控制与流量控制的区别
拥塞控制是全局性的过程,涉及所有的主机,所有的路由器,以及降低网络传输性能有关的所有因素
流量控制是点对点的通信量的控制
慢开始和拥塞避免
慢开始
每经过一个传输轮次,即收到新报文段的确认后,cwnd 就翻倍,呈指数增长。直到慢开始门限ssthresh ,然后改用拥塞避免
拥塞避免
每经过一个RTT 就增加一个cwnd 的大小,呈线性增长。当出现一次超时(网络拥塞),令ssthresh 等于cwnd 的一半,然后把cwnd 置为1 ,执行慢开始
快重传和快恢复
快重传
冗余ACK 来检测丢包的发生,用于网络拥塞的控制
发送方连续收到3 个冗余ACK ,立即重传对方未收到的报文
快回复
发送方收到连续3 个冗余ACK 时,执行乘法减小,把cwnd 置为改变后的ssthresh ,然后执行拥塞避免