联博以太坊:计算机网络之传输层

admin 3个月前 (07-18) 科技 40 1

传输层概述

  从信息处置得角度上去看,传输层主要是给上面得应用层提供通讯服务得。我们平时再对网络举行编程得时刻,我们许多时刻都是直接对接得传输层,也就是我们使用传输层所提供得接口来举行网络编程,以是我们常说传输层是用户功效得最底层,是面向通讯部份得最高层。

  传输层卖力将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;包罗的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议)。

UDP协议

  UDP(User Datagram Protocol: 用户数据报协议),是一个异常简朴的协议,它对接收到的数据报不合并也不拆分,如下图:

UDP协议花样:

16位源端口号 16位目的端口号
16位UDP长度 16位UDP校验和
UDP数据

  UDP协议的特点:UDP是无毗邻协议;UDP不能保证可靠的交付数据,即UDP协议不会感知网络是否拥塞,UDP协议不管网络是否拥塞,都会把数据交付出去,给这个网络就完了。无法保证数据在网络中是否丢失;UDP是面向报文传输的;UDP没有拥塞控制,而且UDP首部开销很小。

TCP协议

  TCP(Transmission Control Protocol: 传输控制协议),是盘算机网络中异常复杂的一个协议。

  TCP协议特点:TCP是面向毗邻的协议;TCP的一个毗邻有两头(点对点通讯);TCP提供可靠的传输服务;TCP协议提供全双工的通讯;TCP是面向字节省的协议。

TCP协议花样:

16位源端口 16位目的端口
序号
确认号
数据偏移 保留字段 TCP符号 窗口
校验和 紧要指针
TCP选项 填充

序号:0~\(2^{32}\)-1,一个字节一个序号, 数据首字节序号
确认号:0~\(2^{32}\)-1,一个字节一个序号, 期望收到数据的首字节序号。确认号为N:则示意N-1序号的数据都已经收到。
数据偏移:占4位:0~15,单元为:32位字,数据偏离首部的距离。
TCP符号:占6位,每位各有不赞成义

符号 寄义
URG Urgent: 紧要位,URG=1,示意紧要数据
ACK Acknowledgement: 确认位,ACK=1,确认号才生效
PSH Push: 推送位,PSH=1,尽快地把数据交付给应用层
RST Reset: 重置位,RST=1,重新确立毗邻
SYN Synchronization: 同步位,SYN=1 示意毗邻请求报文
FIN Finish: 终止位,FIN=1 示意释放毗邻

窗口:占16位:0~\(2^{16}\)-1,窗口指明允许对方发送的数据量
紧要指针:紧要数据(URG=1),指定紧要数据在报文的位置
TCP选项:最多40字节,支持未来的拓展

可靠传输的基本原理

  • 住手守候协议:发送方天生新的新闻,发送给接收方,而且此时不会发生新的新闻,需要收到接受方的确认新闻后,才会发生新的新闻。超时重传:若是发送方的新闻在传输的历程种丢失了,接收方没有收到新闻,就会举行超时重传;若是接收方发送的确认新闻,在传输的历程中丢失,也会举行超时重传,因此 每发送一个新闻,都需要设置一个定时器。住手守候协议是最简朴的可靠传输协议,但住手守候协议对信道的行使效率不高。
  • 延续ARQ协议:ARQ(Automatic Repeat reQuest:自动重传请求),由于单个发送和确认效率低,我们可以通过批量发送和确认来提升效率。

  TCP的可靠传输基于延续ARQ协议,TCP的滑动窗口以字节为单元,窗口滑动历程如下图:

若是接收到的序号没有按序收到确认号,在超时时间内就会举行重新传送,如下图:
联博以太坊:计算机网络之传输层  第1张
为了制止对整个窗口中的字节举行重传,因此TCP协议使用了选择重传来提高传输效率。选择重传:重传的是一段字节省,而不是某个字节,在TCP选项里存储的是需要重传的字节省的界限。选择重传需要指定需要重传的字节,每一个字节都有唯一的32位序号。

TCP协议的流量控制

   流量控制指让发送方发送速率不要太快,是使用滑动窗口来实现的,即通过窗口巨细控制对方发送速率。当接收到窗口为0的新闻,则启动坚持定时器,坚持定时器每隔一段时间发送一个窗口探测报文。
联博以太坊:计算机网络之传输层  第2张

TCP协议的拥塞控制

  一条数据链路经由异常多的装备,数据链路中各个部门都有可能成为网路传输的瓶颈。流量控制思量点对点的通讯量的控制,拥塞控制思量整个网络,是全局性的思量。若何判断是否发生了网络拥塞?凭据报文超时来判断发生了拥塞是不成立的,若是我们在传输的历程中,把光纤或者网络断了,这个时刻也会导致报文超时,但这是由于网络故障造成的
  慢启动算法: 由小到大逐渐增添发送数据量,每收到一个报文确认,就加一。例如:发送的数据量以此为:1 2 4 8 16...,是指数增进的。当使用慢启动算法增进到慢启动阈值时,就会使用拥塞制止算法;拥塞制止算法:维护一个拥塞窗口的变量,只要网络不拥塞,就试探着拥塞窗口调大,如1 2 4 8 16 17 18 19。

TCP毗邻的确立

符号 寄义
URG Urgent: 紧要位,URG=1,示意紧要数据
ACK Acknowledgement: 确认位,ACK=1,确认号才生效
PSH Push: 推送位,PSH=1,尽快地把数据交付给应用层
RST Reset: 重置位,RST=1,重新确立毗邻
SYN Synchronization: 同步位,SYN=1 示意毗邻请求报文
FIN Finish: 终止位,FIN=1 示意释放毗邻

联博以太坊:计算机网络之传输层  第3张

TCP三次握手的历程:

  1. 第一次握手:确立毗邻时,客户端(发送方)发送syn包(seq=j)到服务器,并进入SYN_SENT状态,守候服务器(接收方)确认;
  2. 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。
  3. 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP毗邻乐成)状态,完成三次握手

  在客户端与服务器端传输的TCP报文中,双方的确认号Ack和序号Seq的值,都是在相互Ack和Seq值的基础上举行盘算的,这样做保证了TCP报文传输的连贯性。一旦泛起某一方发出的TCP报文丢失,便无法继续"握手",以此确保了"三次握手"的顺利完成。今后客户端和服务器端举行正常的数据传输。这就是“三次握手”的历程。

为什么发送方要发出第三个确认报文呢?

  • 为了制止已经失效的毗邻请求报文传送到对方,引起错误
    联博以太坊:计算机网络之传输层  第4张

TCP毗邻的释放

联博以太坊:计算机网络之传输层  第5张

TCP四次挥手的历程:TCP毗邻断开历程:假设Client端提议中止毗邻请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",然则若是你另有数据没有发送完成,则不必急着关闭Socket,可以继续发送数据。以是你先发送ACK,"告诉Client端,你的请求我收到了,然则我还没准备好,请继续你等我的新闻"。这个时刻Client端就进入FIN_WAIT状态,继续守候Server端的FIN报文。当Server端确定数据已发送完成,则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭毗邻了"。Client端收到FIN报文后,"就知道可以关闭毗邻了,然则他照样不相信网络,怕Server端不知道要关闭,以是发送ACK后进入TIME_WAIT状态,若是Server端没有收到ACK则可以重传。",Server端收到ACK后,"就知道可以断开毗邻了"。Client端守候了2MSL后依然没有收到回复,则证实Server端已正常关闭,那好,我Client端也可以关闭毗邻了。Ok,TCP毗邻就这样关闭了!

  MSL(Max Segment Lifetime): 最长报文段寿命,MSL建议设置为2分钟。为什么需要守候2MSL?其实在释放毗邻的历程中,客户端最后一次发送的报文,服务端是没有确认的,为了确保发送方的ACK可以到达接收方,若是2MSL时间内没有收到,则接收方会重发。这也是守候计时器的作用,主要是为了确保发送方发送的第四次挥手报文可以准确的到达接收方,若是没有到达的话,接收方就会重新放松第三次挥手的报文,以准确获得释放这次毗邻。守候计时器的另一个作用就是确保当前毗邻的所有报文都已经由期。

为什么关闭毗邻需要四次挥手呢?
  这是由于服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭毗邻时,当收到对方的FIN报文通知时,它仅仅示意对方没有数据发送给你了;但未必你所有的数据都所有发送给对方了,以是你可能未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来示意你赞成现在可以关闭毗邻了,以是它这里的ACK报文和FIN报文多数情况下都是离开发送的。

传输层总结:第一个端到端,即主机到主机的条理。传输层卖力将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处置端到端的差错控制和流量控制问题。 传输层的义务是凭据通讯子网的特征,最佳的行使网络资源,为两个端系统的会话层之间,提供确立、维护和作废传输毗邻的功效,卖力端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。 网络层只是凭据网络地址将源结点发出的数据包传送到目的结点,而传输层则卖力将数据可靠地传送到响应的端口。 有关网络层的重点:

  • 传输层卖力将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
  • 包罗的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议);
  • 主要装备:网关。
,

Allbet Gmaing代理

欢迎进入Allbet Gmaing代理(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

Sunbet声明:该文看法仅代表作者自己,与本平台无关。转载请注明:联博以太坊:计算机网络之传输层

网友评论

  • (*)

最新评论

  • 联博www.326681.com采用以太坊区块链高度哈希值作为统计数据,联博以太坊统计数据开源、公平、无任何作弊可能性。联博统计免费提供API接口,支持多语言接入。有甜有苦,很真

    1

标签列表

    文章归档

      站点信息

      • 文章总数:652
      • 页面总数:0
      • 分类总数:8
      • 标签总数:1154
      • 评论总数:290
      • 浏览总数:9318