钓鱼网站下载,页面设计模板网站,绍兴高兴区建设网站,毕业设计做网站low目录
1、UDP 协议#xff08;用户数据报协议#xff09;
协议特点
报文首部格式
2、TCP 协议#xff08;传输控制协议#xff09;
协议特点
报文首部格式
TCP连接建立时的三次握手
TCP拆除连接的四次挥手
TCP的流量控制
TCP的拥塞控制
3、传输层端口号
三类端口…目录
1、UDP 协议用户数据报协议
协议特点
报文首部格式
2、TCP 协议传输控制协议
协议特点
报文首部格式
TCP连接建立时的三次握手
TCP拆除连接的四次挥手
TCP的流量控制
TCP的拥塞控制
3、传输层端口号
三类端口号
一些熟知端口号 协议类型是否面向连接是否可靠传输效率开销通信方式UDP否否高小单点/多点 到 单点/多点TCP是是低大点到点 1、UDP 协议用户数据报协议
协议特点
无连接面向报文首部开销小8字节尽最大努力交付不保证可靠不提供拥塞控制支持 一 or 多 对 一 or 多 通信 报文首部格式 2、TCP 协议传输控制协议
协议特点
面向字节流将应用层交下来的数据当成字节来处理并对其进行相应的编号面向连接每一条 TCP 连接只有两个端点一对一的连接保证可靠交付可以全双工通信 报文首部格式 源端口和目的端口的取值为0~65535
序号seq表示本报文段的数据的第一个字节的序号取值为 0 ~ - 1
确认号ack表示期望收到对方下一个报文段的第一个数据字节的序号取值为 0 ~ - 1
数据偏移 表示TCP首部的长度可以方便地识别出数据段的起始位置最小长度为50101单位是字节则首部的最小长度为20字节
紧急指针 当 URG 位为 1 时此字段有效并会指出需要紧急发送的数据
填充字段 长度可变用于确保TCP报文的首部长度为 4 字节的整数倍
字段占位说明控制字段URG1bit紧急位当为1时表示有数据要紧急发送ACK1bit确认位这里是大写与确认号小写ack区分开来当为1时确认字段有效表示肯定应答PSH1bit推送位置为1时立即发送TCP报文RST1bit复位位置为1时表示TCP连接有严重错误需要重新建立连接也可以用于拒绝一个连接SYN1bit同步位置为1时表示正在建立一个TCP连接FIN1bit终止位置为1时表示正在释放一个TCP连接窗口16 bit接收空闲窗口值用于实现TCP流量控制 TCP连接建立时的三次握手
三次握手的作用是为了避免产生错误的连接 主机 A 向服务器 B 发送 SYN 表示请求建立一个 TCP 连接即便是没有数据也要消耗一个 seq。此时直到没有收到目标服务器第一次回应前主机 A 处于SYN-SENT 状态。 服务器 B 在没有接收到TCP连接请求前属于 LISTEN 的监听状态。 服务器响应给主机 A SYN表示也向主机 A 请求建立一个连接ACK1 表示同意了刚才主机 A 的连接请求服务器 B 也要消耗一个 seqseq yack x 1表示确认了刚刚主机发送过来的数据内容并且提出期望希望主机 A 下次发送消息给服务器 B 时的 seq 为 x 1。此时服务器 B 需要等待主机 A 的响应此时也转变到 SYN-SENT 状态。 主机 A 接收到服务器B的回应再回应服务器 B ACK1 表示确认了服务器 B 的TCP建立请求响应服务B的期望即便展示还没有数据也发送一个seqseq x 1同时 ack y 1也是对刚刚服务器 B 发送过来的内容的一个确认同时也提出期望希望服务型下次发送消息时的 seq 为 y 1。同时将状态设置为 ESTABLISHED表示已经建立起连接。 服务器 B 收到主机 A 的响应确认无误后也将状态设置为 ESTABLISHED表示TCP连接成功建立。 此时主机 A 和服务器 B 已经建立起了一条TCP连接双方可以正常进行数据传送。
状态说明SYN-SENT发送了SYN请求请求建立TCP连接的第一步LISTEN监听SYN报文的状态SYN-RCVD接收到SYN请求报文后的状态ESTABLISHEDTCP连接建立成功的状态 TCP拆除连接的四次挥手 当主机 A 发送 FIN 1 断开连接标志后它会进入 FIN-WAIT-1 状态等待对方确认关闭。当主机收到对方的 ACK 1确认标志后主机 A 会进入 FIN-WAIT-2 状态。此时主机 A 已经断开了到对方的连接但尚未完全断开TCP连接仍等待对方发送 FIN 标志以确认对方的关闭。 只有在主机 A 收到对方的 FIN 标志并发送 ACK 标志确认后才会进入 TIME-WAIT 状态此时主机才真正关闭了TCP连接。
状态说明FIN-WAIT-1发送了第一个 FIN 请求等待对方确认FIN-WAIT-2等待对方的 FIN 请求CLOSE-WAIT等待自己进程发出断开连接的命令LAST-ACK等待对方最后一次确认TIME-WAIT等待足够的时间以确保对方接收到了确认CLOSED关闭状态 TCP的流量控制 流量控制是针对两端之间的通信的。考虑的是发送方和接收方之间的数据传输速率之间的差异。 TCP流量控制是通过可变大小的滑动窗口机制实现的。即 让数据发送端传输的速率不要太快让数据接收端来得及接收。 数据传输窗口 win 在连接建立时由双方商定。但在通信的过程中数据接收端可根据自己的资源情况随时动态地调整对方的传输窗口大小。上面经过协商后窗口大小为3 接收端将此窗口值放在 TCP 报文的首部中的窗口字段传送给发送端。 接收方通常会在接收到数据后立即发送一个 ACK 报文确认收到数据并通知发送方此时窗口的大小。如果接收方的缓冲区已满它会将窗口大小设置为0发送方就会停止发送数据。当接收方处理完数据后它会将窗口大小设置为一个大于 0 的值并发送 ACK 报文通知发送方以便发送方继续发送数据。 TCP的拥塞控制 拥塞控制是针对整个网络的通信而言的考虑的是网络中的各个路由器和线路的资源利用情况以避免因过多的数据流量导致网络拥塞。 四种常见的拥塞控制方法
慢开始拥塞避免快重传快恢复 拥塞窗口cwnd是发送方维护的一个状态变量其大小取决于网络的拥塞程度并且会动态变化
慢开始门限ssthresh为了防止拥塞窗口 cwnd 的增长过大而引起网络拥塞所设置的一个门限值
cwnd ssthresh执行慢开始算法cwnd ssthresh可以使用慢开始算法也可以使用拥塞避免算法cwnd ssthresh使用拥塞避免算法
慢开始每经过一个传输轮次cwnd 的值都会加倍从小到大增大 cwnd
拥塞避免每经过一个传输轮次cwnd 的值都会加 1从小到大缓慢增大 cwnd
快重传接收方每收到一个失序报文段后就会立即发出重复确认 ACK若发送方一连收到三个重复确认就会立即重传对方尚未收到的报文段。因此能尽早重传未被确认的报文而不是等待超时
快恢复当发送方连续收到三个重传确认 ACK 时就执行乘法减小算法把门限值减半当前 cwnd值的一半同时把 cwnd 值设置为减半后的门限值并执行拥塞避免算法 乘法减小出现超时可能是拥塞时则 ssthresh 减半当前 cwnd 值的一半同时执行慢开始算法
加法增大执行拥塞避免算法使 cwnd 增大 如上图初始慢开始门限为16cwnd 从 1 开始每当发送方接收到一个 ACK 确认报文时都会使 cwnd 增大在达到门限值前使用慢开始算法增大。 [① ~ ②] 当到达门限值后改用避免拥塞算法来缓慢增大 cwnd; [② ~ ③] cwnd 24 时发生超时则门限减半即 ssthresh 12然后下一次接收到 ACK 确认报文时cwnd 从 1 开始使用慢开始算法来递增 [③ ~ ④] cwnd 12 时到达了门限则改用拥塞避免算法缓慢递增 [④ ~ ⑤] 到 ④ 时cwnd 16发送方一连收到三个重复确认则门限减为当前 cwnd 的一半即 ssthresh 8而 cwnd 变为与门限值一致 [⑤ ~] 由于cwnd ssthresh开始采用避免拥塞算法来进行增加 3、传输层端口号
三类端口号
熟知端口 0 ~ 1023登记端口 1024 ~ 49151客户端口号 49152 ~ 65535 一些熟知端口号
端口号服务类型TCP 20文件传输协议数据TCP 21文件传输协议控制TCP 23Telnet 终端仿真协议TCP 25SMTP 简单邮件发送协议TCP 80超文本传输协议HTTPTCP 110POP3 服务器邮箱接收服务器TCP 443安全超文本传输协议HTTPS 端口号服务类型UDP 53域名服务器DNSUDP 67DHCP服务端UDP 68DHCP客户端UDP 69简单超文本传输协议TFTPUDP 161SNMP轮询UDP 162SNMP陷阱UDP 520RIP 路由协议