其他分享
首页 > 其他分享> > 计算机网络之传输层

计算机网络之传输层

作者:互联网

 

 

一.UDP协议详解

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

UDP是一个非常简单的协议

UDP协议对其数据报内容不合并,不拆分,原样传输。同样的,UDP协议=UDP首部+UDP数据报数据

 

UDP是无连接协议,也就是说并不需要两方建立连接,UDP不能保证可靠的交付,数据丢失没有控制机制。UDP是面向报文传输(不拆分不合并)的,首部开销很小。

 

二.TCP协议

TCP(Transmission Control Protocol: 传输控制协议)

TCP协议是计算机网络中非常复杂的一个协议

◆ TCP是面向连接的协议 ◆ TCP的一个连接有两端(点对点通信) ◆ TCP提供可靠的传输服务

◆ TCP协议提供全双工(双方都可向对方发送数据)的通信 ◆ TCP是面向字节流的协议

 

序号:◆ 0~2^32-1 ◆ 一个字节一个序号 ◆ 数据首字节序号 就是tcp数据报的首字节

确认号:◆ 0~2^32-1 ◆ 一个字节一个序号 ◆ 期望收到数据的首字节序号

数据偏移:◆ 占4位:0~15,单位为:32位字 ◆ 数据偏离首部的距离 最大为4*15=60

TCP标记:占6位,

 

窗口:指明允许对方发送的数据量

 

紧急指针:◆ 紧急数据(URG=1) ◆ 指定紧急数据在报文的位置

TCP选项:◆ 最多40字节 ◆ 支持未来的拓展

 

TCP协议的可靠性传输:

◆ 停止等待协议

◆ 连续ARQ协议

停止等待协议:发送方发送消息后停止生成消息,等待接收方的确认消息,如果出差错的话超时重传

停止等待协议的改进:超时定时器

每发送一个消息设置一个超时定时器,超时的话重传消息,缺点是对信道的利用率不高。

为提高信道的利用率,进行信息的批量确认

连续ARQ协议:(Automatic Repeat reQuest:自动重传请求)

滑动窗口:只要确认消息到达就会把窗口向前推动。

累计确认:只要收到第N个确认消息就会认为N之前的消息都收到了。

 

如果25 ,27 收到了确认消息那么就从23开始重传接收到确认消息后把窗后后移2个字节。也就是确认后就把窗口滑动,而没确认的重传

 

◆ 选择重传需要指定需要重传的字节 ◆ 每一个字节都有唯一的32位序号

 

 

TCP协议的流量控制:

◆ 流量控制指让发送方发送速率不要太快 ◆ 流量控制是使用滑动窗口来实现的

 

 

坚持定时器 :◆ 当接收到窗口为0的消息,则启动坚持定时器 ◆ 坚持定时器每隔一段时间发送一个窗口探测报文

 

TCP协议的拥塞控制:

◆ 流量控制考虑点对点的通信量的控制 ◆ 拥塞控制考虑整个网络,是全局性的考虑 

报文超时就认为是拥塞状态。

算法:

慢启动算法:从小到大增加发送的数据量,每收到一个报文确认就加一发送的数据量,慢启动算法的阈值到达后启动拥塞避免算法

拥塞避免算法:维护一个拥塞窗口的变量,只要报文不超时就试探性的增大窗口

 

 

TCP连接的三次握手:

 

发送方发出一个tcp标记为SYN=1的报文,发送之后发送方处于同步已发送状态,接收方收到报文之前是监听的状态,接收到报文之后,接收方发出一个TCP标记SYN=1,ACK=1 的报文表示确认,在第三次报文发送过来之前,此时接收方处于同步已接收的状态。

发送方收到这个报文之后,再发出第三次tcp标记ACK=1的报文,接收方收到报文建立链接。

 

为什么发送第三次报文:◆ 已经失效的连接请求报文传送到对方,会引起错误

 

 

 TCP链接的挥手:

 

发送方发出一个TCP标记为FIN=1 的报文,此是发送方处在FIN-WAIT-1等待状态,接收方收到这个报文以后,给发送方发出一个ACK=1的确认报文,此时接收方处在关闭等待状态,这是接收方还是可以发送数据给发送方,等到数据发送方完成之后,接收方会发送一个ACK=1,FIN=1的报文。此时接收方处于最后确认状态,发送方接收到这个报文之后发出ACK=1的报文,启动等待计时器,等接收方接收报文之后,就处于关闭状态。

 

等待计时器:等待2MSL的时间

MSL是最长报文段寿命,一般网络MSL设置为2分钟

为什么需要等待2MSL?

确保最后一次挥手的ACK可以到达接收方,如果2MSL时间内没有收到,接收方就会重发报文。

确保当前所有连接的报文都已经过期。

 

套接字与套接字变成

套接字(Socket)是抽象概念,表示TCP连接的一端{ip:port}表示TCP连接的一端。

 

服务端创建套接字,绑定套接字,监听套接字,然后接受处理信息。

客户端创建套接字,连接套接字,之后发送信息。

 

标签:发送,UDP,协议,报文,TCP,计算机网络,传输层,接收
来源: https://www.cnblogs.com/buttertofree/p/16425212.html