运输层协议

运输层

UDP
  • UDP没有拥塞控制
  • UDP支持一对一、一对多、多对一和多对多的交互通信
  • UDP的首部开销小

UDP首部字段有8个字节,由四个字段组成
1.源端口:
2.目的端口:
3.长度:
4.检验和:检测UDP用户数据报在传输中是否有错。有错就丢失

TCP
  • 面向连接的运输层协议
  • 每一条TCP连接只能有两个端点
  • TCP提供可靠交付的服务
  • TCP提供全双工通信
  • TCP面向字节流

TCP首部最小长度是20字节
1.源端口和目的端口 各占2个字节
2.序号 4个字节
3.确认号 4个字节
4.数据偏移

socket

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

ARQ协议

发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。

TCP可靠传输的实现

在没有收到B的确认的情况下,A可以连续把窗口内的数据都发送出去。凡是已经发送过的数据,在未收到确认之前都必须暂时保留,以便在超时重传时使用。

1.以字节为单位的滑动窗口
2.超时重传时间的选择(TCP的自适应算法)
3.选择确认

利用滑动窗口实现流量限制

发送方的发送窗口不能超过接收方给出的接收窗口的数值

TCP的拥塞控制

1.慢开始和拥塞避免
2.快重传和快恢复

TCP三次握手

A向B发出建立连接的请求(SYN),B收到建立连接的包,发回确认可以建立的包(SYN+ACK),A收到B回传的(SYN+ACK),再发出确认建立连接的包(ACK)。
为什么A要发ACK包,主要是为了防止已失效的链接请求报文突然又传送到了B,但是A不需要建立连接,如果不采用三次握手,B会以为连接已经建立,并一直等待A发来的数据

TCP四次挥手

A发出结束连接的请求(FIN),B收到结束连接的包,发回确认收到结束连接的包(ACK),然后通知进程结束连接,此时A向B的连接就释放了。A不可以向B发送数据,但是B可以向A发送数据。如果B没有要向A发送数据,则通知TCP释放连接,这时B会发出一个释放连接的包(FIN+ACK),等待A的确认,A收到则会发出一个确认包(ACK),B关闭连接,A进入时间等待状态,过了一定时间后再关闭连接

为什么要等待呢。
1.为了保证A发送的最后一个ACK报文段能够到达B。
2.防止“已失效的连接请求报文段”出现在本连接中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值