三.传输层

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三.传输层相关的知识,希望对你有一定的参考价值。

参考技术A 传输层的 核心任务 : 应用进程 之间提供 端到端 的 逻辑通信 服务
回顾:只有 主机 才有传输层,网络核心中的路由器、交换机、集线器等只用到 下三层 的功能

记:分复流拥寻差错-可靠

一台计算机中,不同应用进程用 进程标识符(进程ID) 来区分
网络环境下:
TCP/IP 体系结构网络的解决方法:
在传输层使用协议端口号,通常简称为端口(port), 在全网范围内利用 IP地址+端口号 唯一标识一个通信端点

传输层端口号为16位整数,可以编号65536个(2的16次方)
常用端口: 端口号小于256的端口

传输层端口号:
1、服务器端使用的端口号:熟知端口号和登记端口号
2、客户端使用的端口号临时性,在客户进程运行时由操作系统随机选取唯一的未被使用的端口号:

多路复用 :在源主机,传输层协议从不同的套接字收集应用进程发送的数据块,并为每个数据块封装上首部信息(包括用于分解的信息)构成报文段,然后将报文段传递给网络层
多路分解 : 在目的主机,传输层协议读取报文段中的字段,标识出接收套接字,进而通过该套接字,将传输层报文段中的数据交付给正确的套接字

多路复用与多路分解(复用与分解/复用与分用): 支持众多 应用进程共用 同一个传输层协议,并能够将接收到的数据准确交付给 不同的应用进程

用户数据报协议(User Datagram Protocol, UDP):Internet提供无连接服务的传输层协议
UDP套接字二元组:<目的IP地址,目的端口号>

传输控制协议(Transmission Control Protocol, TCP): Internet提供面向连接服务的传输层协议
TCP套接字四元组: <源IP地址,源端口号,目的IP地址,目的端口号>

基于不可靠信道实现可靠数据传输采取的措施
差错检测:利用编码实现数据报传输过程中的比特差错检测
确认: 接收方向发送方反馈接收状态。 ACK(肯定确认) ;NAK(否定确认)
重传:发送发 重新 发送接收方没有正确接收的数据
序号:确保数据按序提交(对数据进行编号,即便不按序到达,可以按序提交)
计时器: 解决 数据丢失问题

TCP提供可靠数据传输服务
UDP不提供可靠数据传输服务

最简单的自动重传请求协议是停等协议

流水线协议:管道协议,允许发送方在没有收到确认前连续发送 多个 分组
最典型的流水线协议: 滑动窗口协议
1、 增加分组序号
2、发送方和接收方可以缓存多个分组

发送方的发送窗口:发送方可以发送未被确认分组的最大数量
接收方的接收窗口: 接收方可以缓存到正确到达的分组的最大数量

发送:

接收:

滑动窗口协议:根据窗口的大小,可以具体分为:
回退N步协议:GBN协议(Go-Back-N)
选择重传协议:SR协议(Selective Repeat)

GBN协议: 发送窗口>=1; 接收窗口=1 ;
发送端 缓存能力高,可以在没有得到确认前发送多个分组
接收端 缓存能力很低,只能接收一个按序到达的分组,不能缓存未按序到达的分组

GBN发送方响应的3类事件:

SR协议: 发送窗口>1 接收窗口>1
发送端缓存能力高
接收端缓存能力高

SR发送方响应事件:

用户数据协议(User Datagram Protocal, UDP): Internet 传输层 协议,提供 无连接 、不可靠、数据报尽力传输服务

0-15-31: 32位二进制

UDP首部四个字段: 每个字段长度都是2字节,共8个字节
源端口号和目的端口号:UDP实现复用和分解
长度:指示UDP报文段中的字节数(首部和数据的总和)
校验和:接收方使用检测数据报是否出现差错
应用数据字段:应用层数据占用

UDP校验和:提供差错检测功能
UDP的校验和用于检测UDP报文段从源到目的地传送过程中,其中的数据是否发生了改变

UDP校验和计算规则
1、所有参与运算的内容按16位对齐求和
UDP校验和计算的内容包括3部分:UDP伪首部、应用数据

传输控制协议(Transmission Control Protocol ,TCP): Internet 传输层协议
提供面向连接、可靠、有序、字节流传输服务
第一:应用进程 先建立连接
第二:每一条TCP连接只有 两个 端点
第三: 可靠交付 :无差错、不丢失、不重复、按序到达
第四: 全双工 通信
第五:面向 字节流
流:字节序列,应用程序和TCP的交互是一个个数据块,TCP把他们看做是无结构字节流

1、源端口号字段、目的端口号字段:占16位、复用和分解上层应用的数据

2、序号字段、确认序号字段:占32位
序号字段:TCP序号是对每个应用层数据的每个字节进行编号
确认序号字段:期望从对方接受数据的字节序号,即该序号对应的字节尚未收到

9.选项字段长度可变,最短为0字节,最长为40字节

TCP连接管理:连接建立与连接拆除
以客户端上的一个应用进程与服务器上的一个应用进程建立一条TCP连接为例

一、建立连接
第一次握手:

客户向服务器发送连接请求段:(SYN=1, seq=x)
SYN = 1; 建立连接请求控制段
seq=x; 表示传输的报文段第1个数据字节的序列号是x,此序列号代表整个报文段的序号
客户端进入SYN_SEND (同步发送)

第二次握手:

服务端发回确认报文段:(SYN=1, ACK=1,seq=y,ack_seq=x+1)
SYN=1 同意建立新连接的确认段
ack_seq = x + 1; 表示已经收到序列号为x的报文段,准备接受序列号为x+1的报文段
seq=y : 服务器告诉客户确认报文段的序列号是y
服务器由LISTEN进入SYN_RCVD(同步收到)

第三次握手

客户端对服务器的同意连接报文段进行确认:(ACK=1,seq=x+1, ack_seq=y+1)
seq=x+1 : 客户端此次的报文段的序列号是x+1;
ack_seq = y+1 : 客户端期望接收服务器序列号y+1的报文段
当客户端发送ACK时,客户端进入ESTABLISHED状态
当服务端收到ACK后,也进入ESTABLISHED状态
第三次 握手可携带数据

二、连接拆除:四次挥手

第一次挥手

客户端向服务器发送释放连接报文段:(FIN=1, seq=u)
FIN=1.发送端数据发送完毕,请求释放连接
seq=u 传输的第一个数据字节的序号是u
客户端状态由ESTABLISHED进入FIN_WAIT_1(终止等待1状态)

第二次挥手

服务器向客户发送确认段:(ACK=1, seq=v, ack_seq=u+1)
ACK=1; 确认字号段有效
ack_seq=u+1 : 服务器期望接受客户数据序号为u+1
seq=v: 服务器传输的数据序号是v

服务器状态由ESTABLISHED进入CLOSE_WAIT(关闭等待)
客户端收到ACK段后,由FIN_WAIT_!进入FIN_WAIT_2

第三次挥手

服务器向客户发送释放连接报文段:(FIN=1, ACK=1, seq=v+1, ack_seq=u+1)
FIN =1: 请求释放连接
ACK = 1:确认字号段有效
ack_seq=u+1: 表示服务器期望接受客户数据序列号为1
seq=v+1 表示自己传输的第一个数据字节的序号是v+1
服务器状态由CLOSE_WAIT进入LAST_ACK(最后确认状态)

第四次挥手:

客户向服务器发送确认段:(ACK=1,seq=u+1,ack_seq=w+1)
ACK=1: 确认字号段有效
ack_seq=v+1+1 : 表示客户期望接受服务器数据序号为v+1+1
seq=u+1 表示客户传输的数据的序号是u+1
客户端状态由FIN_WAIT_2进入TIME_WAIT 等待2MSL时间,进入CLOSED状态
服务器再收到最后一次ACK后,由LAST_ACK进入CLOSED

一、可靠:保证接收方应用进程从缓冲区读出的字节流与发送发发出的字节流是完全一样的
二、TCP实现可靠数据传输服务的工作机制
1、应用层数据被 分割 成TCP认为最适合发送的数据块
2、序号,发送方对发送的数据包进行编号,确保数据按序提交给接收方 采用累积确认
3、确认,接收方向发送方反馈接收状态,确认是否正确接收数据
4、差错检测,利用差错编码实现数据包传输过程中的比特差错检测(甚至纠正)
5、重传,发送方重新发送接收方没有正确接收的数据
6、计时器,在发送方引入计时器,解决数据丢失问题

最大报文段长度:1500字节
报文段中封装的应用层数据的最大长度:1480字节 = 1500 - 最短的首部长度

TCP生成ACK的策略

流量控制:协调发送方与接收方的数据发送与接收 速度
在通信过程中,接收方设置报文段的 接收窗口字段 来将窗口大小通知给发送方

一、网络拥塞: 太多的主机``以太快的速度 向网络中发送 太多的数据 ,超出了网络处理能力,导致大量数据分组拥挤在中间设备队列中等待转发, 网络性能 显著下降的现象
二、拥塞控制:通过合理调度、规范、调整向网络中发送数据的主机数量、发送速率、数据量、以 避免 拥塞或 消除 已发生的拥塞

三、概念补充介绍

四、TCP拥塞控制算法

阈值之前:慢启动阶段
阈值之后:拥塞避免阶段

l例如: 发生计时器超时,当前拥塞窗口24MSS,当前阈值为16MSS
新的阈值:为当前拥塞窗口的一半,新的阈值=24/2=12MSS
新的拥塞窗口:直接调整为1MSS 新的拥塞窗口=1MSS
调整好新的阈值和新的拥塞窗口之后,使用 慢启动。拥塞避免 算法增加拥塞窗口大小

例如:发送3次重复确认时,当前拥塞窗口为24MSS,当前阈值为16MSS
新的阈值:为当前拥塞窗口的一半
新的拥塞窗口:调整为新的阈值
调整好新的阈值和新的拥塞窗口后,使用 拥塞避免 算法增加拥塞窗口大小

五、窗口调整的基本策略(Additive Increase,Multiplicative Decrease, AIMD):
网络未发生拥塞时:逐渐"加性"增大窗口
网络拥塞时“乘性”减小窗口

六、拥塞预防策略:流量整型技术:规范主机向网络发送数据的流量

OSI模型

OSI参考模型
OSI模型规范重要的功能之一,是帮助不能类型的主机实现相互之间的数据传输。

OSI模型有7个不同的层,分为两个组。上面三层定义了中断系统中的应用程序将被彼此通信,以及如何与用户通信。下面4层定义了三怎样进行端到端的数据传输。

下面4层定义了怎样通过物力电缆或者通过交换机和路由器进行数据传输。

传输层:
1. 提供可靠或不可靠的传输
2. 在重传之前执行错误纠正
网络层:
1. 提供逻辑寻址,以便进行路由选择.
数据链路层:
1. 将数据包组合为字节,字节组合为帧
2. 使用MAC地址提供对介质的访问
3. 执行错误检测,但不纠正
物理层:
1. 在设备之间传输比特流
2. 制定电压大小、线路速率和电缆的引脚数

工作在OSI模型的所有7层的网络设备包括:
1. 网络管理系统(NMS)
2. WEB和应用程序服务器
3. 网关(非默认网关)
4. 网络主机


OSI参考模型的7层和各层的功能
1. Application layer 文件、打印、消息、数据库和应用程序
2. Presentation layer 数据加密、压缩和转换服务
3. Session layer 会话控制
4. Transport layer 端到端连接
5. Network layer 路由选择
6. Data Link layer 数据组合成帧
7. Physical layer 物理拓扑


应用层:OSI模型的应用层是用户与计算机进行实际通信的地方。

表示层:表示层因它的用途而得名:它为应用层提供数据,并负责数据转换和代码的格式化。

会话层:会话层负责建立、管理和终止表示层实体之间的会话连接。

传输层:传输层将数据分段并重组为数据流。

网络层:网络层负责设备的寻址,跟踪网络中设备的位置,并决定传送数据的最佳路径,这意味着网络层必须在位于不同地区的互联设备之间传输数据流。

数据链路层:数据链路层提供数据的物理传输,并处理出错通知、网络拓扑和流量控制。

物理层:物理层是最低层,物理层的功能有两个:发送和接收位流。

以上是关于三.传输层的主要内容,如果未能解决你的问题,请参考以下文章

网络安全——传输层安全协议

四层协议网络传输

4-1:TCP协议之传输层的作用及传输层协议TCP和UDP

3.协议与端口

:传输层

OSI模型