ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算机网络之传输层

2022-06-29 23:03:33  阅读:153  来源: 互联网

标签:发送 UDP 协议 报文 TCP 计算机网络 传输层 接收


 

 

一.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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有