传输层要点整理

UDP的特点

  1. UDP的首部包括四个字段 源端口,目标端口,长度,检验和 ,每个字段的长度是两个字节,一共八个字节
  2. 源端口:源端口号。在需要对方回信时选用。不需要时可用全0。
  3. 目的端口:目的端口号。在终点交付报文时使用。
  4. 长度:UDP用户数据报的长度,其最小值是8(仅有首部)。
  5. 检验和:检测UDP用户数据报在传输中是否有错。有错就丢弃。
  6. 十六进制转十进制方法:将十六进制数25A4转化为十进制数。首先我们确定第0位数字为4,它的权重为16^0;第1位数字为A,对应的数字为10,权重为16^1;第2位数字5,对应权重为16^2;第三位数字2对应的权重为16^3。将它们相乘再求和为:
  7. 4*16^0+10*16^1+5*16^2+2*16^3=4+160+1280+8192=9636。因此(25A4)16=(9636)10。
  8. 一个UDP用户数据报的首部的十六进制表示是:06 32 00 45 00 1C E2 17。源端口是(1586)、目的端口是(69)、用户数据报的总长度是(28)、数据部分长度是(20)、该数据报的源端是(客户)端。(因为目的端口=69<1023,所以是从客户发送给服务器的,服务器程序是TFTP。
  9.     UDP 是无连接的,即发送数据之前不需要建立连接(发送数据结束时也没有连接可释放),减少了开销和发送数据之前的时延
  10. UDP 使用尽最大努力交付,即不保证可靠交付,主机不需要维持复杂的连接状态表
  11. UDP 是面向报文的,发送方的 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。
  12. UDP 对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界
  13. UDP 没有拥塞控制,网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的
  14. UDP 支持一对一、一对多、多对一和多对多的交互通信
  15. UDP 的首部开销小,只有8个字节,比 TCP 的20个字节的首部要短

TCP的特点

  1. TCP仅支持端到端(点对点,一对一)传输,TCP/IP的运输层用一个(16)位端口号来标志一个端口。端口号只具有(本地)意义。它只是为了标志本计算机应用层中的各个进程在和运输层交互时的层间接口。
  2. 网络层的策略对TCP拥塞控制影响最大的就是路由器的分组丢弃策略,该策略是在路由器队列已满时,将后续到达的所有分组全部丢弃,该策略叫尾部丢弃)策略
  3. TCP连接释放时,经历完成四报文握手,要经过时间等待计时器设置的时间(2)MSL后,才进入CLOSE状态。(MSL(Maximum Segment Lifetime)报文最长存活时间)【三次握手(连接建立),四次挥手(连接释放)
  4. TCP最初只规定了一种选项,即最大报文段长度MSS,MSS的默认值是(536)字节长
  5. TCP是面向连接的运输层协议。应用程序在使用 TCP 协议之前,必须先建立 TCP 连接。在传送数据完毕后,必须释放已经建立的 TCP 连接。
  6. 每一条TCP连接只能有两个端点,每一条 TCP 连接只能是点对点的(一对一)
  7. TCP提供可靠交付的服务。通过 TCP 连接传送的数据,无差错、不丢失、不重复,并且按序到达。
  8. TCP提供全双工通信。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都设有发送缓存和接受缓存,用来临时存放双向通信的数据。
  9. 面向字节流。TCP中的“流”指的是流入到进程或从进程流出的字节序列。

TCP滑动窗口的理解

注释:1Kb/s=10^3b/s,1Mb/s=10^6b/s,1Gb/s=10^9b/s。

  1. TCP的当前报文段显示的窗口值是指发送本报文段一方的(接收)窗口大小。
  2. 最大传输速率算法同下:

单程端到端时延要乘2再计算

通信信道带宽为1Gbps,端到端传播时延为10ms。TCP的发送窗口为65535字节,则信道利用率为(2.55 )%。(小数点后保留两位)【请用阿拉伯数字回答】

发送时延=数据长度/信道带宽=65535*8bit/1Gb/s=0.52428*10-3s=0.52428ms;

传播往返时延=2*10=20ms (发送数据和接收确认);

故每发送一个窗口大小的流量需要,

总时延 = 发送时延 + 传播往返时延 = 0.52428+20=20.52428ms。

故每秒钟可以产生1000/20.52428个窗口,

因此最大数据吞吐量=65536*8*(1000/20.52428)=25544769bit/s=25.5Mb/s

信道的利用率 = 25.5Mb/s÷1000Mb/s≈2.55%

  1. 主机甲和主机乙之间已建立一个TCP连接, TCP最大段的长度为1000字节,若主机甲的当前拥塞窗口为4000字节,在主机甲向主机乙连续发送2个最大段后,成功收到主机乙发送的第一段的确认段,确认段中通告的接收窗口大小为2000字节,则此时主机甲还可以向主机乙发送的最大字节数是(1000)。【请用阿拉伯数字填写答案】

发送方的发送窗口的上限值取接收方窗口和拥塞窗口中的最小值,即min(4000, 2000)=2000B,第一个TCP的确认字段说接收窗口为2000字节,说明乙在接收第一个字段后还能接收2000字节。在接受完第二个字段后还剩1000字节,所以还能发送1000字节

熟知端口号有哪些

 

拥塞控制算法

  1. 拥塞控制的算法有:慢开始、拥塞避免、快重传、快恢复四种
  2. 当发送方TCP收到三个连续的对同一个报文段的确认后,应采用(快重传)和(快恢复)算法。
  3. 在TCP/IP中,快速重传和恢复(fast retransmit and recovery,FRR)是一种拥塞控制算法,它能快速恢复丢失的数据包。没有FRR,如果数据包丢失了,TCP将会使用定时器来要求传输暂停。在暂停的这段时间内,没有新的或复制的数据包被发送。有了FRR,如果接收机接收到一个不按顺序的数据段,它会立即给发送机发送一个重复确认。如果发送机接收到三个重复确认,它会假定确认件指出的数据段丢失了,并立即重传这些丢失的数据段。有了FRR,就不会因为重传时要求的暂停被耽误。  当有单独的数据包丢失时,快速重传和恢复(FRR)能最有效地工作。当有多个数据信息包在某一段很短的时间内丢失时,它则不能很有效地工作。
  4. 某次TCP传输过程中,拥塞窗口的变化为:1,2,4,8,9,10,11,12,1,2,4,6,7,8,9。根据拥塞窗口的变化情况回答问题:慢开始门限值有(2)个值,分别是(8)和(6)。拥塞窗口值是(12)的时候,网络出现了拥塞。

一个TCP连接总是以1KB的最大报文段发送TCP段,发送方有足够多的数据要发送。当拥塞窗口为16KB时发生了超时,如果接下来的4个RTT时间内的TCP段的传输都成功,那么当第4个RTT时间内发送的所有TCP段都得到肯定应答时,拥塞窗口大小是(9)KB。

但是规定当TCP连接开始的时候或者传输遇到超时的时候都要用慢开始和拥塞避免的方法慢开始是指,预先设定一个门限值,当超过这个门限值的时候就开始加法增大,也就是成功发送一个TCP段,拥塞窗口就增加1,这样是为了避免过大增加拥塞窗口出现超时。但是当某个时间出现了超时,就以当前的拥塞窗口的一半作为新的门限值,比如题中当前发生超时的拥塞窗口是16K,那么新的门限值就是8K。发生超时后就把当前的拥塞窗口设为1个TCP的大小,也就是1K,在达到门限值之前是乘法增大,也就是每成功发送一个TCP段,就把新的窗口值设为当前的2倍,一直到达到门限值为止。所以当发生超时后,拥塞窗口是1K,然后第一个RTT发送成功之后,变为2K,第2个发送成功后变为4K,第3个发送成功后是8K,这时就达到了门限值,然后开始加法增大,也就是拥塞避免,第4个发送成功后,增加1K,最后当前的拥塞窗口就是9K

  1. 考虑在一条具有10ms往返路程时间的线路上,采用慢开始拥塞控制而不发生网络拥塞情况下的效应。接收窗口为24KB,最大报文段长度为2KB。那么,需要(40)毫秒时间就可以发送完第一个完全窗口。

 

TCP首部包含的字段​​​​​​

  1. 源端口和目的端口:各两个字节,分别写入源端口和目的端口号。
  2. 每一条TCP连接有两个端点,TCP连接的端点叫做(套接字)或(端口)。
  3. 序号(seq):4个字节,在TCP连接中传送的字节流中的每一个字节都按顺序编号。序号字段即指本报文段所发送的数据的第一个字节的序号。假如,当前发送的数据的第一个字节序号为301,而数据长度为100,最后一个字节的序号为400,那么下一个报文段的数据序号应该从401开始
  4. 确认号(ack):4个字节,是期望收到对方的下一个报文段的第一个数据字节的序号。比如A向B发送序号为seq=301,长度为100的数据,B收到了这些数 据,于是B向A发送确认号ack=401,表明400之前的数据都收到了,401是我下一个期待收到的数据
  5. 数据偏移:4个字节,指的是TCP数据字段距TCP报文段起始位置有多远,也就是规定了TCP报文段的首部长度。值得注意的是,它只有4个bit位,最大值是15,而TCP首部长度以4个字节为计算单位。那么,TCP首部字段最长为60(15*4)个字节,选项长度最大为40个
  6. 保留:6位,暂不使用
  7. 紧急URG:当URG=1,表明紧急指针字段有效,告诉系统这个报文中含有紧急数据,优先级较高,要尽快传达。它需要与紧急指针字段配合使用。
  8. 确认ACK只有ACK=1时,确认号(ack)字段才有用
  9. 推送PSH:较少使用,TCP都有缓存,如果psh=1,则表示立即发送,立即处理,不用等到缓存已满时再处理。
  10. 复位RST:当RST=1,表明TCP中出现严重差错,必须释放连接,然后重新建立连接。
  11. 同步SYN:在建立连接时会用到,当SYN=1,ACK=0时,表明这是一个连接请求报文段,如果对方同意,则响应报文段中SYN=1,ACK=1。SYN=1表示当前报文段是连接请求和连接接受报文。
  12. 终止FIN:用来释放一个连接,当FIN=1,表明此报文段要发送的数据都已经发送完了,要求释放连接
  13. 窗口:2个字节,窗口值告诉对方,从本报文的确认号算起,接收方目前允许对方发送的数据量。窗口字段明确指出了现在允许对方发送的数据量,窗口值是经常在变化着的。例如,确认号为701,窗口字段是1000,这就表明,从701号算起,发送此报文段的一方还有接收1000个字节数据的缓存空间
  14. 检验和:2个字节,通过相应规则计算此报文段有无错误,有则废弃。
  15. 紧急指针:2个字节,它只在URG=1时才有意义,它指出本报文段中紧急数据的字节数,紧急数据之后就是普通数据
  16. 选项:长度可变,最多40个字节,根据需要添加

根据下图回答问题

 

(1)该TCP报文段包含多少字节选项?说明理由

(2)该报文段的源端是服务器还是客户端?

(3)如果该报文段首部中的窗口值是32767,说明什么?

(4)该报文段的客户端请求什么服务?

(1)该报文段包含8个字节选项。理由如下:TCP偏移量为7,TCP首部固定长度表示为5,7-5=2为选项或填充,首部偏移以4字节为单位计算,结果为:2*4=8个字节。

(2)该报文段的源端是服务器。

(3)该报文段首部中的窗口值32767说明,服务器端的接收窗口是32767,同时告知客户端设置发送窗口时不要超过这个值。

(4)该报文段的客户端请求的是WWW服务器(或HTTP)。

 捕获某个TCP报文段,其序号字段是6238,确认号字段是1356,说明序号字段和确认号字段值的含义

序号字段即指本报文段所发送的数据的第一个字节的序号,确认号字段是期望收到对方的下一个报文段的第一个数据字节的序号

 简述TCP报文段首部"窗口"字段的作用

窗口值告诉对方,从本报文的确认号算起,接收方目前允许对方发送的数据量。

 简述流量控制和拥塞控制的区别。

(1)流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。

(2)流量控制往往指点对点的流量控制,是接收端控制发送端的发送速率问题。

(3)拥塞控制就是防止过多的数据注入到网络中,使网络中的路由器或链路不致过载。

(4)拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。

(5)拥塞控制是一个全局的过程,涉及到所有的主机、路由器、以及与降低网络传输性能有关的所有因素。

 简述运输层使用的两类端口号

(1) 服务器端使用的端口号

熟知端口,数值一般为 0~1023。

登记端口号,数值为 1024~49151,为没有熟知端口号的应用程序使用的。使用这个范围的端口号必须在 IANA 登记,以防止重复。

(2) 客户端使用的端口号

又称为短暂端口号,数值为 49152~65535,留给客户进程选择暂时使用。

当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。通信结束后,这个端口号可供其他客户进程以后使用。

客户端A向某WWW服务器B发送连接建立请求,经过三报文握手,连接建立完成,请描述三报文握手的过程。

客户端A向WWW服务器B发送标志位中SYN=1,ACK=0的报文段,表示客户端A向WWW服务器B发送连接建立请求;WWW服务器B收到后,发送标志位中SYN=1,ACK=1的确认报文段表示同意建立连接;客户端A收到后,再向WWW服务器发送标志位中SYN=0,ACK=1的确认报文段,自此连接建立完成。

 简述运输层两个协议的区别?

UDP是无连接的,面向报文的,尽最大努力交付即不可靠交付的协议,支持一对一,一对多,多对多,多对一的交互通信,没有拥塞控制

TCP是面向连接的,面向字节流,提供可靠交付,仅支持端对端(点对点)传输,有拥塞控制

 客户端启动浏览器,向某WWW服务器发送请求,通过客户端捕获数据包,简要回答下列问题:

(1)第一个TCP报文段的发送方向?

DNS服务器

  1. 第一个TCP报文的作用?

请求建立连接

  1. 通过什么字段表示该作用?

ACK和SYN

(4)通常情况下,该报文段中的TCP首部中TCP偏移量大于5,超过5的部分说明什么?

说明选项长度不为0

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值