传输层

1.概述

功能

  • 提供进程到进程之间的逻辑通信
  • 复用和分用
    • 复用:应用层的所有应用进程都可以通过传输层再传送到应用层
    • 分用:传输层从网络层收到的数据可以分给应用层对应的应用进程
  • 对收到的报文进行差错检测
  • TCP和UDP协议

在这里插入图片描述
在这里插入图片描述

寻址和端口

端口号:

  • 端口号是传输层的SAP,标识主机中的应用进程
  • 端口号只有本地意义,在因特网中的不同计算机的相同端口号是没有联系的
  • 端口号长度16bit,能表示65536个不同的端口号
  • 端口号的划分
    * [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OGQ68ZPB-1650257593844)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417210310682.png)]

套接字(Socket) 唯一标识了网络上的一台主机和主机上的一个进程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R6io08KZ-1650257593844)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417210408269.png)]

2.UDP

1.主要特点

  • 无连接,减少开销和发送数据之前的时延
  • 使用最大努力交付,即不保证可靠交付、
  • 面向报文,适合一次性传输很少的数据的网络应用
  • 无拥塞控制,适合很多网络应用
  • 首部开销小,8B,TCP首部20B

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-87yYwyxL-1650257593844)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417210603153.png)]

2.UDP首部格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P6pi6Ca9-1650257593845)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417210716534.png)]

3.UDP校验

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bl3ODi0o-1650257593845)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417210735947.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TDnQO2Aq-1650257593845)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417211302693.png)]

3.TCP

1.特点

  • 面向连接
  • 每一条TCP只能由两个端点,只能是点对点的
  • 提供可靠的交付,无差错、不丢失、不重复、按序到达
  • 提供全双工通信
    • 发送缓存:准备发送的数据&已发送但未收到确认的信息
    • 接收缓存:按序到达但未被应用进程读取的信息&不按序到达的数据
  • 面向字节流:把应用程序交付下来的数据看成无结构的字节流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hpMaNtaG-1650257593846)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417211306959.png)]

2.报文段首部格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c85WpEdC-1650257593846)(file:///D:\QQ文件\2848246009\Image\C2C(S(E0MS)]~%[8T3NBOS6T$XW.png)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WcpDxWcT-1650257593846)(file:///D:\QQ文件\2848246009\Image\C2C\7VI7UDV~%2Z6I@[6VD`K_8E.png)]

3.TCP的连接和管理

1.请求连接

连接三个阶段:连接建立、数据传送、连接释放

连接采用客服服务器模式(C/S)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iWwaQU2I-1650257593847)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417211710354.png)]

三次握手

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jycOSX8S-1650257593847)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417211719101.png)]

2.SYN洪泛攻击

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QXs9YsDp-1650257593848)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417211940422.png)]

3.连接释放

四次挥手

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SJ7nNByJ-1650257593848)(C:\Users\周畅\AppData\Roaming\Typora\typora-user-images\image-20220417212016465.png)]

4.可靠传输

在这里插入图片描述

1.校验

增加伪首部

2.序号

表示当前报文段的第一个字节的序号

3.确认

采用累计确认机制

在这里插入图片描述

4.重传

正常情况下是超时重传,规定时间内没有收到确认进行重传,TCP会采用自适应算法,动态改变重传时间RTTs(加权平均往返时间),但是这样的时间会等很久。

采用冗余ACK方法,每当收到比期望序号更大的报文段,就会发送一个冗余ACK,当收到三个对于某报文段的冗余ACK就进行重传。

在这里插入图片描述

5.流量控制

滑动窗口机制: 在传输过程中可通过接收方的确认报文动态改变发送窗口大小

持续计时器:给发送方设置一个持续计时器,若计时器时间到期,发送方就会发送一个零窗口探测报文段,接收方收到该报文就会给出窗口值,若窗口依然为0,则发送方重新设置计时器。

在这里插入图片描述

6.拥塞控制

在这里插入图片描述

在这里插入图片描述

2.快开始和拥塞避免

ssthresh(门限值):在传输开始时有一个默认初始值,在出现网络拥塞之后,会自动更新值

传输轮次:发送一批报文段并收到他们的确认,即一个往返时间RTT

每经过一个传输轮次收到对应的确认报文如果无丢包发送窗口就进行指数型的增长,如果到了sshtresh就进行加法式的窗口增大,如果丢包了,就将窗口重置为1
在这里插入图片描述

2.快重传和快恢复

每经过一个传输轮次收到对应的确认报文如果无丢包发送窗口就进行指数型的增长,如果到了sshtresh就进行加法式的窗口增大,如果出现三个某报文段的冗余,将窗口重置为sshtresh然后进行加法式增长

快重传就是通过冗余ACK进行快速重传

快恢复是指在网络拥塞之后窗口大小直接变为ssthresh值

在这里插入图片描述