计算机网络复习笔记(5)

                                                                                 今日复习运输层

1.运输层两大协议

tcp(transmission control protocol)传输控制协议。

udp(user datagram protocol)用户数据报协议。、

2.两个对等运输实体在通信时传送得数据单位叫运输协议数据单元TPDU。但在TCP/IP体系中,,则根据所使用的协议是TCP或UDP,分别称之为TCP报文段UDP用户数据报

3.udp在传送数据之前不需要先建立连接。远地主机得运输层在收到UDP报文后,不需要给出任何确认。

4.tcp则提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束,要释放连接。TCP不提供广播或多播服务。

5.解决不同主机之间应用程进程得通信的办法为使用端口。

6.端口又分为两大类

(1)服务器端使用的端口号 这里又分为两类,最重要的一类叫做熟知端口号或系统端口号,数值为0~1023。另外一种是登记端口号,数值为1024~49151.这类端口号是为没有熟知端口号的应用程序使用的。使用这类端口号必须在IANA按照规定的手续登记,以防重复。

(2)客户端使用的端口号 数值为49125~65535.由于这类端口号仅在客户进程运行时才动态选择,因此又叫做短暂端口号。 

7.UDP的主要特点:

(1)UDP是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的延时。

(2)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。

(3)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部之后就向下交付IP层。

(4)UDP没用拥塞控制,因此网络出现的拥塞不会使源主机的发哦是那个速率降低。

(5)UDP支持一对一,一对多,多对一和多对多的交互通信。

(6)UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。

8.UDP的首部格式

(1)源端口 源端口号。在需要对方回信时选用。不需要时可用全0.

(2)目的端口 目的端口号。这在终点交付报文时必须使用。

(3)长度 UDP用户数据报的长度,其最小值是8(仅有首部的情况)。

(4)检验和 检测UDP数据报正在传输中是否有错,有错就丢弃。

9.TCP主要特点:

(1)TCP是面向连接的运输层协议。应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完毕后,必须释放已经建立的TCP连接。

(2)每一条TCP连接只能有两个断电,每一条TCP连接只能是点对点的。

(3)TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错,不丢弃,不重复,并且按序到达。

(4)TCP提供全双工通信。TCP允许允许通信双方的应用进程在任何时候都能发送数据。

(5)面向字节流。TCP中的流指的是流入到进程或从进程流出的字节序列。面向字节流的含义是:虽然应用程序和TCP的交互是一次一个数据块,但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流。TCP和UDP在发送报文时所采用的方式完全不同,TCP并不关心应用进程一次把多长的报文发送到TCP缓存中,而是根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节。(UDP发送的报文长度是应用进程给出的)

10.TCP的连接:TCP的连接的端点叫做套接字(socket)或插口。端口号拼接到IP地址即构成了套接字。

套接字 socket = (IP地址:端口号)

每一条TCP连接唯一的被通信两端的两个端点(即两个套接字)所确定。

TCP连接 ::= {socket1, socket2} = {(IP1:port1),(IP2:port2)}

同一个ip地址可以有多个不用的TCP连接,而同一个端口号也可以出现在多个不同的TCP连接中。

11.可靠传输的工作原理:

(1)传输信道不产生差错。

(2)不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据。

12.停止等待协议ARP(Automati从Repeat reQuest):详情请看下方链接。

https://blog.csdn.net/weixin_43584807/article/details/93800480

13.信道利用率  u = 发送分组需要的时间 / (发送分组需要的时间 + 往返时间 + 发送确认分组需要的时间)为提高传输效率,发送方可以不使用停止等待协议,而是采用流水线传输。

14.TCP报文段的首部格式:

TCP报文段首部的前20个字节是固定的,后面又4n字节是根据需要而增加的选项。因此TCP首部的最小长度是20字节。

首部固定部分个字段的意义如下:

(1)源端口和目的端口号 各占两个字节,分别写入源端口号和目的端口号。

(2)序号 占四个字节。序号范围[0, 2^32 - 1]共2^32个序号。序号增加到2^32 - 1后又从0开始。TCP是面向字节流的。在一个TCP连接中传送的字节流中的每一个字节都按顺序编号。整个要传送的字节流的起始序号必须在连接建立时设置。首部中的序号字段值则指的是本报文段所发送的数据的第一个字节的序号。

(3)确认号 占四个字节,是期望收到对方下一个报文段的第一个数据字节的序号。确认号 = N,则表明N - 1个字节已经正确收到。

(4)数据偏移 占四位,它指出TCP报文段的数据起始处距离TCP报文段起始处有多远。这个字段实际上是指出TCP报文段的首部长度。数据偏移的单位是32位字(即四字节)。

(5)保留 占六位,保留为今后使用,目前置为0.

(6)紧急URG 当URG = 1时,表明紧急指针字段有效。它告诉系统此报文段有紧急数据,应尽快发送,而不要按原来的排队顺序来传送。

(7)确认ACK(ACKnowlegment) 仅当ACK = 1时确认好字段才有效。当ACK = 0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1.

(8)推送PSH 当两个应用进程进行交互式的通信,有时在一端的应用进程希望在键入一个命令后立即就能够收到对方的响应。这时就把PSH置1,并立即创建一个报文段发送出去。接收方TCP收到PSH = 1的报文段,就尽快交付接收应用进程,而不再等到整个混村都填满了后再向上交付。

(9)复位RST(ReSet) 当RST为1,表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接。

(10)同步SYN(SYNchronization) 在连接建立时,用来同步序号。当SYN = 1,而ACK = 0,表明这是一个连接请求报文段。对方若同意建立连接,则应在响应的报文段中使 SYN = 1和ACK = 1.因此,SYN置为1就表示i这是一个连接请求或者连接接受报文。

(11)终止FIN(FINis) 用来释放一个连接。当FIN = 1时,表明此报文段的发送发的数据已发送完毕,并要求释放连接。

(12)窗口 占两个字节。窗口值是[0, 2^16 - 1]之间的整数。窗口指的是发送本报文段的以放的接收窗口。窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前语序对方发送的数据量。之所以要有这个限制,是因为接收方的数据缓存空间是有限的。总之,窗口值作为接收方让发送方设置其发送窗口的依据。

(13)检验和 占两个字节。检验和字段检验的范围包括首部和数据着两部分。

(14)紧急指针 占两字节,仅当URG = 1时才有效,他指出本报文段中的紧急数据的字节数。

(15)选项 长度可变,最长可达40字节。当没有使用选项时,TCP的首部长度是20字节。

15.TCP可靠传输的实现

(1)以字节为单位的滑动窗口。

(2)超时重传的选择 新的RTTs = (1 - а)* (旧的RTTs) + α * (新的RTT样本),第一次测量到RTT样本时,RTTs值就取为所测量到的RTT。

RTO(retransmission time -out) 超时重传时间 RTO =  RTTs + 4 * RTTD。

RTTD是RTT的偏差的加权平均值。

(3)选择确认SACK(selective ACK)

16.TCP的流量控制:所谓流量控制就是让发送发的发送速率不要太快,要让接收方来得及接收。

(1)利用滑动窗口实现流量控制

发送方的发送窗口不能超过接收方给出的接受窗口的数值。TCP窗口的单位是字节,不是报文段。

17.TCP得拥塞控制

(1)拥塞:在计算机网络中得链路容量,交换节点中得缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源得需求超过了该资源所能提供得可用部分,网络的性能就要变坏。这种情况就叫拥塞。可以把出现网络拥塞得条件写成如下的关系式:∑对资源得需求 > 可用资源。

(2)拥塞控制:所谓拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。

(3)流量控制:流量控制往往使指点对点通信量的控制,是个端到端的问题。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

(4)拥塞控制分为两种方法:开环控制和闭环控制。

开环控制就是在设计网络时事先将有关发生拥塞的因素考虑到,力求网络在工作时不产生拥塞。但一旦整个系统运行起来,就不再中途进行更改了。

闭环控制使基于反馈环路的概念主要有以下几种措施:

监测网络系统以便检测到拥塞在何时,何处发生。

把拥塞发生的信息传送到可采取行动的地方。

调整网络系统的运行已解决出现的问题。

18.TCP的拥塞控制方法

TCP进行拥塞控制的算法有四种,即慢开始,拥塞避免,快重传和快恢复。

慢开始和拥塞避免

判断网络拥塞的依据就是出现了超时。

慢开始算法的思路是这样的:当主机开始发送数据时,由于并不清楚网络的负荷情况,所以如果一开始就将大量数据字节注入到网络,那么就有可能引起网络发发生拥塞。经验证明,较好的方法实现探测一下,即由小到大逐渐增大发送窗口,也就是说,由小到大逐渐增大拥塞窗口数值。慢开始还规定,在每收到一个对新的报文段的确认后,可以把拥塞窗口增加最多一个SMSS的数值,即  拥塞窗口cwnd每次的增加量 = min(N, SMSS),其中N是原先未被确认的,但现在被刚收到的确认报文段所确认的字节数。每经过一个传输轮次,拥塞窗口cwnd就加倍。

为了防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢开始门限ssthresh状态变量。

当cwnd < ssthresh时使用上述的慢开始算法。

当cwnd > ssthresh时,停止使用慢开始算法而改用拥塞避免算法。

当cwnd = ssthresh时,两者即可。

拥塞避免算法的思路是:让拥塞窗口cwnd缓慢地增大,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是像慢开始阶段哪样加倍增长。因此在拥塞避免阶段就有“加法增大”AI(additive  increase)的特点。这表明在拥塞避免阶段,用死啊窗口按线性规律缓慢增长。拥塞避免并非完全能够避免了拥塞,而是使网络比较不容易出现拥塞。一旦出现超时或3个重复的确认,就要把门限值设置为当前拥塞窗口的一半,并大大减小拥塞窗口的数值。这常成为“乘法减小”。

发送窗口的大小由网络的拥塞程度来决定,但实际上接收方的缓存空间总是有限的。接收方根据自己的接收方窗口rwnd,并把这个窗口值写入TCP首部中的窗口字段,传送给发送方。发送方的发送窗口一定不能超过对方给的接收方窗口值rwnd,也就是说

                     发送方的窗口上限值 = Min[rwnd, cwnd]

rwnd和cwnd中数值较小的一个,控制了发送方发送数据的速率。

19.主动队列管理AQM

路由器的队列通常都是按照先进先出FIFO的规则处理到来的分组,当队列满了,后面来的分组都会丢弃。这就叫做尾部丢弃策略。路由器的尾部丢弃策略会导致一连串分组的丢失,这就使发送放超时重传。在网络中有很多TCP连接,这样会导致许多TCP连接在同一时间进入到慢开始状态。这种情况叫做全局同步。全局同步使得网络通信量突然下降很多,而在网络恢复后通信量又突然增大很多。为了避免这种现象,可以使用主动队列管理AQM(Active Queue Management)。

AQM:当队列长度到达某个警惕的数值时,就主动丢弃分组。这样就提醒了发送方应该降低发送速率。AQM可以有不用的实现方法,例如随即早期检测RED(Random Early Detection)。

RED:实现RED时需要使路由器维持两个参数,即队列长度最小门限和最大门限。当每一个分组到达时,RED就按照规定的算法先计算当前的平均队列长度。

若平均队列长度小于最小门限,则入队。

若平均队列长度大于最大门限,丢弃。

两者之间,按照概率P把新到达的分组丢弃。

20.TCP的运输连接管理

大家熟悉的三次握手来了。https://www.cnblogs.com/kaleidoscope/p/9701117.html详情请看。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法回答关于"计算机网络复习笔记 王道"的问题。我的回答只基于提供的引用内容。如果您有其他关于计算机网络的问题,我会很乐意帮助您回答。 #### 引用[.reference_title] - *1* [计算机网络笔记(王道考研) 第一章:计算机网络体系结构](https://blog.csdn.net/zimuzi2019/article/details/126634216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [计算机网络笔记(王道考研) 第四章:网络层](https://blog.csdn.net/zimuzi2019/article/details/126634461)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [计算机网络笔记(王道考研) 第五章:传输层](https://blog.csdn.net/zimuzi2019/article/details/126634511)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值