传输层Stu

简介: 传输层Stu

概述和传输层服务



本章学习的重点:


1.理解传输层的工作原理

  1. 多路复用/解复用
  2. 可靠数据传输
  3. 流量控制 (发送方和接收方的问题)
  4. 拥塞控制

2.学习Internet的传输层协议

  1. UDP:无连接传输
  2. TCP:面向连接的可靠传输
  3. TCP的拥塞控制


传输服务和相关协议


** 为运行在不同主机上的应 用进程提供逻辑通信 **

** 传输协议运行在端系统 **


  • 发送方:将应用层的报 文分成报文段,然后传 递给网络层
  • 接收方:将报文段重组 成报文,然后传递给应 用层


** 有多个传输层协议可供应 用选择 **


1.Internet: TCP 和 UDP


传输层和网络层比较


  1. 网络层服务: 主机之间的逻辑通信
  2. 传输层服务: 进程之间的逻辑通信


  • 依赖于网络层的服务
  • 并对网络层的服务进行 增强


Internet传输层协议


1690373273674-708c290d-f8bf-424e-996a-3468fce79fd5.png

传输层向上层应用进程提供逻辑的通信服务

在物理上就是通过层间接口传给传输层,由传输层之间的相互配合 将massage 传输给对方的应用进程。


三个协议


1.** 可靠的、保序的传输: TCP **

原理 :


  • 多路复用、解复用
  • 拥塞控制
  • 流量控制
  • 建立连接


2.** 不可靠、不保序的传输:UDP **


多路复用、解复用


没有为尽力而为的IP服务添加更 多的其它额外服务


3.**都不提供的服务: **

  • 延迟保证(主机之间的延迟上层无法加强)
  • 带宽保证(ip主机上的带宽无法加强)


多路解复用的工作原理(TCP和UDP不同)


TCP复用解复用


  • 每个数据报有源IP地址和目标地 址
  • 每个数据报承载一个传输层报 文段
  • 每个报文段有一个源端口号和 目标端口号 (特定应用有著名的端口号)


ip之间的传输说的是主机之间的信息传输, 如果想要实现进程之间的信息传输就需要加上端口号(port)

1690593173357-c0b30e06-d677-4a20-aa81-0ddda6ed0c5c.png


TCP绑定的是四元组的信息。


通过层间接口向下传输的是四元组 ,和 massage 。


Server端将数据报发出之后, 对方的IP就会接收到这个数据报开始解析, 在TCP部分就会解析TCP的头部,等等信息 。然后在向上传输


主机联合使用IP地址和端口号将报 文段发送给合适的套接字


例子:


1.

1690594723957-ee220fe4-d4a8-4eae-98ea-291269b7958e.png


1.

1690594751725-5b29e3e0-d7ff-4b4e-adb2-d2e5362c05ce.png


3, 多线程的场景举例 :

1690594815936-846a174f-8983-46e2-bca6-5c10112fdbd6.png


UDP多路解复用


Server端:


  1. 服务端通过APP的线程, 里面封装了要传输的massage 、 serverSocket 、对方的ip和udp端口的捆绑关系所在的结构体的指针(PID)
  2. 将上述的信息传输给UDP,UDP再往下就是将udp的datagram 、ip地址


Client端:


  1. client接收到对方的ip打包传输过来的信息后, 先检查报文段的目标端口号 , 然后 用该端口号将报文段定位给 套接字
  2. IP解析之后向上交的是 UDP datagram、源ip和目标ip等信息
  3. udp 的datagram中 有源port 目标port ,通过这两个端口信息, 我们就可以将进程的对应关系找到了


如果两个不同源IP地址/源端 口号的数据报,但是有相同的 目标IP地址和端口号,则被定 位到相同的套接字


1690594641666-cf3c440e-ece4-45ae-894a-77b4a23f6511.png


无连接传输:UDP



UDP: User Datagram Protocol (用户数据报协议)


它只是增加了多了复用解复用, 除此之外, 并没有增加其他的


1.尽力而为”的服务,报文段可能


丢失 、送到应用进程的报文 段乱序


1.无连接:


2

  1. UDP发送端和接收端 之间没有握手
  2. 每个UD报文段都被 独立地处理


3.UDP经常被用于 :


流媒体(丢失不敏感, 速率敏感、应用可控制 传输速率)


DNS


SNMP


UDP:用户数据报协议


为什么要有UDP?


  1. 不建立连接 (会增加延时 )
  2. 简单:在发送端和接收端没 有连接状态
  3. 报文段的头部很小(开销小)
  4. 无拥塞控制和流量控制: UDP可以尽可能快的发送报 文段
  5. 应用->传输的速率= 主机->网 络的速率


一个UDP数据报文段格式:


1690595214320-2b744bf2-16b9-4846-8d4c-d75814098861.png


UDP校验和


目标: 检测在被传输报文段中的差错 (如比特反转) , 如果出现差错, 那么就直接丢失。


发送方:


  1. 将报文段的内容视为16 比特的整数
  2. 校验和:报文段的加法 和 (1的补运算)
  3. 发送方将校验和放在 UDP的校验和字段


接收方:


  1. 计算接收到的报文段的校验 和
  2. 检查计算出的校验和与校验 和字段的内容是否相等:


  • 不相等––检测到差错
  • 相等––没有检测到差错 ,但也许还是


Such as(不太懂)


注意:当数字相加时,在最高位的进位要回卷,再加 到结果上


1690595389749-f3929f7c-96c3-41de-be31-5bdcb5f1af61.png


目标端:校验范围+校验和=1111111111111111 通过校验


否则没有通过校验


注:求和时,必须将进位回卷到结果上


要有进位回滚


回卷 和 校验和之间的和 就是仅为回滚的和。


可靠数据传输的原理



传送门: https://wclspace.xyz/post/84f702e5.html


面向连接的传输: TCP



段结构

可靠数据传输

流量控制

连接管理

拥塞控制原理

TCP 拥塞控制


目录
相关文章
|
9月前
|
网络协议 网络架构
一文搞定网络层协议
本文详细的介绍了网络层的所有的细节,学习完本章小白将打下坚实的基础。
|
6天前
|
网络协议
网络层有哪些常见协议
网络层有哪些常见协议
|
5月前
|
网络协议 安全 程序员
【计算机网络】传输层TCP协议2
【计算机网络】传输层TCP协议
37 0
|
7月前
|
存储 网络协议 程序员
UDP 协议【传输层协议】
UDP 协议【传输层协议】
71 0
|
9月前
|
缓存 网络协议 网络安全
网络层协议与应用(二)
网络层协议与应用(二)
162 0
|
9月前
|
网络协议 网络性能优化 网络架构
网络层协议与应用(一)
网络层协议与应用(一)
58 0
|
10月前
|
域名解析 网络协议 程序员
传输层 — UDP协议
传输层 — UDP协议
187 0
|
缓存 网络协议 网络性能优化
网络层协议
重点内容 IP数据包格式 ICMP协议介绍 ARP协议介绍 ARP攻击原理
网络层协议
|
缓存 监控 网络协议
传输层(一)
传输层(一)
206 0
|
缓存 网络协议 算法
传输层(二)
传输层(二)
220 0