【计算机网络】传输层学习笔记一

一、功能和服务

1.进程到进程的通信

2.用户功能的最底层

 二、传输层核心技术

1.编址:端口号

2. 连接的建立:三次握手

(1)目标:收发双方正确建立一个且仅一个连接

(2)为什么不能像链路层那样两次握手:防止接收方资源的浪费,如果发送方发了建立连接的请求,接收方回了ack,但ack丢了,那发送方就会认为接收方没收到,就会重传,但是接收方已经为连接预留了资源,第二个建立连接的请求发来时,以为是另一个连接建立请求,那么上一个请求预留的资源就会空着没人用,就浪费掉了。问题:那为什么不能编序号呢,接收方看到同样的序号不就知道是同一个请求了吗?

 3.连接的释放

(1)无法保证双方同时释放连接

(2)为了保证数据的不丢失,所以可以让收发双方分别断开单方向连接,断开后将不在发送,但可以接收,所以一共需要四次挥手,有时可以简化为三次

(3)最后一个ack丢失解决方法:假设A率先发起断开连接请求,B同意了,也决定断开连接,恢复了DR,A收到了DR但是回给B的ack丢失,那么B由于发送过DR了,所以长期没收到就会自动断开连接释放资源。

(4)B的DR丢了解决方法:A重发断开连接请求就好了

 (5)还是B的DR丢了,但是A一直重传都不成功,一般是A这边网络出问题了:那对于A,是设定的N次不成功就释放,对于B是发送过DR后,双方长时间没有互发消息,所以就自动断了

(6)第一个DR就丢了:老师说需要一个新的机制,就是如果双方长时间没有收到对方的消息,就会自动断开。但我认为没有必要。首先A不会有问题,因为A会因为N次不成功然后释放,那么B不知道A释放了,他会继续发包或者自己主动要求断开,如果继续发包,没有收到ACK,就会一直发消息,最后发现不对劲,就断开连接。如果收到ACK那么就会持续发直到B要求断开。那么如果B要求断开,他会等A的ack,如果能收到,就成功断开连接,如果收不到,那B就会重传,然后N次不成功就自动断开。

那么这样分析下来,是否加入这个新机制的关键在于,如果加入,需要时不时的发送哑段,如果不加入,每次出现这个问题B就会多重传N次,所以要不要加入这个新机制在于这两种结果的损失。

4.流控差控

(1)使用滑动窗口选择重传,ARQ校验

(2)与链路层区别:传输层的滑动窗口会很大,原因我猜测是因为会有多个端口同时通信,但共用一个transmission信道,所以收发双方都会有很多不同端口的包在滑动窗口的缓存里。其次,由于链路层收发双方处理frame的效率是可预测且固定的,所以链路层的窗口是固定的,但传输层由于通信子网会变化,所以选择用动态变化的发送窗口,分配给每个进程的窗口大小由接收方提供。

5.拥塞控制

(1)从宏观上来看,可以用最大最小公平性

(2)但显然整个网络中的流量对于局部来说不可见,只能采用别的拥塞控制算法

 增加和降低发送速率时采用AIMD(加法增乘法减)的策略。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值