首先确定下传输层的作用
01传输层基本功能
02TCP建立连接过程
0201TCP序列号
03资源子网和通信子网
04 拥塞控制与流量控制
例子:
.在OSI参考模型中,自下而上第一个提供端到端服务的层次是 传输层
解析
传输层,传输层的是作用是负责为两台主机中应用进程之间的通信提供服务,而对于网络层来说,提供的是主机到主机之间的通信,所谓的端到端是指应用进程到应用进程。
02TCP建立连接过程
SYN(synchronous)是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。
在第一次发送信息中,A随机选取一个序列号x作为初始化序列号发送给B。
第二次B使用ack对A的数据报进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时发送自己的初始化序列号seq=y
seq是数据报本身的序列号;ack是期望对方继续发送的那个数据包的序列号。
TCP连接的第一个包,非常小的一种数据包。SYN 攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。每个机器的欺骗包都要花几秒钟进行尝试方可放弃提供正常响应。
如下图所示,IP 地址在IP 数据报的首部,而硬件地址则放在MAC 帧的首部。在网络层以上使用的是IP 地址,而链路层及以下使用的是硬件地址。
连接端点
TCP的连接端点称为 套接字(socket),根据TCP协议的规定,端口号拼接到IP地址即构成了套接字。
也就是说TCP连接的端点不是主机,不是IP不是应用进程,而是套接字。
套接字 socket = (IP地址:端口号)
套接字 socket = (IP地址: 端口号)
TCP 连接 ::= {socket1, socket2} = {(IP1: port1), (IP2: port2)}
Socket连接是一个五元组,包括协议类型,源IP,源端口,目标地址和目标端口
0201TCP序列号
TCP是面向字节流的,每一个字节对应一个序列号。
TCP每次发送的报文段的首部中的序列号是该报文段的第一个字节的序号。
接收端返回的确认号是收到数据的最高序号加1
一个 TCP报文段的数据部分最多是
IP数据报的最大长度=2^16-1=65535(字节)
TCP报文段的数据部分=IP数据报的最大长度-IP数据报的首部-TCP报文段的首部=65535-20-20=65495(字节)
在IP 层抽象的互连网上,我们看到的只是IP 数据报,路由器根据目的站的 IP地址进行选路。在具体的物理网络的链路层,我们看到的只是 MAC 帧,IP 数据报被封装在 MAC帧里面。
MAC 帧在不同的网络上传送时,其MAC 帧的首部是不同的。这种变化,在上面的IP 层上是看不到的。每个路由器都有IP 地址和硬件地址。使用IP 地址与硬件地址,尽管连接在一起的网络的硬件地址体系各不相同,但 IP层抽象的互连网却屏蔽了下层这些很复杂的细节,并使我们能够使用统一的、抽象的IP 地址进行通信。
当某个路由器发现一数据报的检验和有差错时,会直接丢弃。
03 资源子网与通信子网
网络层 位于通信子网的最高层,实现网络通信功能
传输层 位于资源子网的最低层,实现资源共享功能
思考
如何理解TCP/IP 协议本是为非实时数据业务而设计的
例:为什么在 TCP 首部中有一个首部长度字段,而 UDP 的首部中就没有这个字段?
答:这是TCP 与UDP 包的区别,TCP 包的首部字段可以更好的保证数据传输的可靠安全,而UDP 就不能保证,所以UDP 比TCP 快,不间断但是不可靠,例如QQ 视频就是使用UDP,经常出现人不动,就是这个原因
虚通信和实通信
虚电路
分组交换根据其通信子网向端点系统提供的服务,还可以进一步分为面向连接的虚电路方式和无连接的数据报方式。这两种服务方式都由网络层提供。
虚电路在发送方和接受方会建立一条逻辑上的连接,并不是一条真正的物理连接。
电路交换的电话通信是先建立一条真正的物理连接,因此分组交换的虚电路和电路交换的连接只是类似,并不完成一样。
1 数据报服务发送分组前不需要建立连接
2 虚电路网络中的每个结点上都维持一张虚电路表,它的每一项记录了一个打开的虚电路的信息,包括在接受链路和发送链路的虚电路号,前一结点和下一结点的标识。
TCP确认序列相关问题
04拥塞控制与流量控制
关于拥塞上一张脑图
发生拥塞控制的原因:资源(带宽、交换节点的缓存、处理机)的需求 > 可用资源。作用:拥塞控制就是为了防止过多的数据注入到网络中,这样可以使网络中的路由器或者链路不至于过载。拥塞控制要做的都有一个前提:就是网络能够承受现有的网络负荷。
对比流量控制:拥塞控制是一个全局的过程,涉及到所有的主机、路由器、以及降低网络相关的所有因素。流量控制往往指点对点通信量的控制,是端对端的问题。流量控制只关心发送方和接收方点对点的发送量。它的任务是处理发送能力大于接受能力。
网络中存在太多的数据包,导致数据包被延迟和丢失,从而降低传输性能,这种情况称为拥塞。网络层和传输层共同承担着处理拥塞的责任。
窗口
TCP连接的每一端都必须设有两个窗口,一个发送窗口,一个接收端口。
TCP可靠传输机制用字节的序号进行控制。TCP所有的确认基于序号还不是基于报文。TCP 每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一报文段。TCP协议用于控制数据段是否需要重传的依据是设立 重传定时器。
保护数据不受主动攻击(数据的伪造和变动)的措施称为报文认证技术。
重传ARQ滑动窗口
自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中运输层的错误纠正协议之一。它包括停止等待ARQ协议和连续ARQ协议,错误侦测(Error Detection)、正面确认(Positive Acknowledgment)、逾时重传(Retransmission after Timeout)与负面确认继以重传(Negative Acknowledgment and Retransmission)等。
重发定时器
TCP协议用于控制数据段是否需要重传的依据是设立 重发定时器