计网6
计网6
传输层
传输服务
传输层的功能
传输层位应用层提供可靠和经济有效的服务,充分利用网络层提供的服务,完成这项工作的硬件和软件称为传输实体,传输实体在操作系统内核中,以一个链接库的形式绑定到网络应用中,或者以一个独立的用户进程运行,甚至可以实现在网络接口卡上。
传输层的意义
网络通信的本质是进程通信
网络层IP协议提供的服务是不可靠的
传输层位应用层提供面向连接的服务TCP 和无连接的服务UDP
传输层协议和网络层协议的主要区别:
- IP协议是提供了主机之间的逻辑通信
- TCP和UDP是提供了进程之间的逻辑通信
传输协议的要素
寻址
传输服务访问点TSAP
端口就是TSAP,端口的作用是
TCP连接时,同时将TCP连接的断点称为套接字,套接字socket 格式位:ip:poet
UDP
无连接的数据包,不提供可靠的服务,但效率高,UDP提供了端口协议,用来保证进程通信,传输的可靠性靠应用程序解决,但效率高.
应用:域名系统DNS、简单网络管理协议SNMP
UDP报文格式
UDP封装
UDP提供服务的应用:
远程过程调用RPC remote procedure call
RPC是程序员屏蔽了网络运作的细节,将网络中的请求-应答交互表示成过程调用形式。
实时传输协议RTP real-time transport protocol
传输层协议,但是在应用层实现,用于多媒体数据传输的协议
TCP
TCP服务是怎么样的:由发送方和接收方创建一种称为套接字的端点来获得,每个套接字都有一个套接字编号,由IP和端口组成。
一个套接字允许被多个连接同时使用,多个连接可同时连接到同一套接字上。
TCP提供的服务:
tcp格式
- 端口是传输层与应用层的服务接口,每个端口对应一个应用程序。
- 序号字段的值是本报文段所发送的数据的第一个字节的序号。
- 确认号:ACK,是期望收到对方下一个报文段的数据的第一个字节的序号。
- 传送的数据不能大于2^32
- TCP头长度:指出了TCP头部包含了多少给32bit(4bytes)的字
- CWR,ECE作为拥塞控制的信号
- URG,表示紧急指针,告诉系统此报文段有紧急数据,应该尽快传送
- ACK,确认比特,1有效
- PSH :推送比特,应尽快交付给接收应用进程
- RST:复位比特,1表示TCP连接种出现严重差错,当主机崩溃的时候必须复位
- SYN,同步比特,表示连接请求或连接接收报文
- FIN:表示释放连接,1表示发送端的数据已经发送完毕,并要求释放传输连接
- 窗口WIN:控制对方发送的数据量,TCP连接的一端根据设置的缓存大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。
- 校验和:检验的部分为首段和数据,检验时要在TCP报文段的前面加上12字节的伪首部。
- MSS:是TCP报文中数据字段的最大长度,数据字段加上TCP长度才等于整个TCP报文段。MSS告诉了对方可接收的报文段的数据字段最大长度为MSS个字节。
- 填充:保证整个首部长度是4字节
连接的三个阶段:建立连接。数据传送,连接释放
连接建立过程解决的三个问题
连接三次握手:
、
tcp滑动窗口
TCP使用与数据链路层不同的窗口协议来实现流量控制。
数据链路层:发送窗口的滑动依赖于接收端确认的到达。
TCP层:TCP的窗口大小是其缓冲区的尺寸,建立连接后双方都将分配一个缓冲区大小作为接收数据的存放空间,每次接收数据确认同时发布一个窗口公告,报告剩余窗口的大小。
零窗口公告:发送方收到一个零窗口公告时,必须停止发送,直到接受发重新发送一个非零窗口,但是有紧急数据,和
TCP拥塞控制
- 拥塞的概念:当大量的数据包进入通信子网,超出了网络的处理能力,就会引起网络局部或整体性能下降,这就是拥塞。
- 拥塞的原因:缓冲区容量有限,传输线路的带宽有限,结点的处理能力有限或网络中的某部分发生故障。
- 拥塞的危害:当严重拥塞的时候,数据包总数超过路由器的容量,路由器只能丢弃,又因为超时重传机制,如果拥塞不控制,就会导致大量的报文重传,然后又丢弃,导致拥塞崩溃。
- 拥塞怎么控制:对子网加以控制,规范主机和路由器行为。
- 流量控制和拥塞控制有什么区别:流量控制是发送发和接收方之间通信量的控制,流量控制要做的就是抑制发送端发送数据的速率,以便接收端来得及接收。而拥塞控制是全局性过程,涉及网络所有因素。
- 联系:流量控制控制了进入网络中的信息总量,可以在一定程度上减缓拥塞的作用。
- TCP连接需要两个变量:接收窗口rwnd 又称为通知窗口 和 拥塞窗口cwnd
- 接收窗口 receiver window :接收端根据目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制,放在tcp中的窗口字段。
- 拥塞窗口 congestion window:发送端根据自己估计的网络拥塞程度而设置的窗口之,是来自发送端的流量控制。
- 发送窗口的上限值 = min [rwnd ,cwnd]
rwnd < cwnd:接收端的接收能力限制发送窗口的最大值。
cwnd < rwnd:是网络拥塞限制发送窗口的最大值
拥塞控制和流量控制的区别(好好想想)
1、拥塞控制是一个全局性的问题,必须使整个网络的主 机、路由器、线路等资源或能力相匹配,目的是保障子网 能够正常地传输分组。
2、流量控制是一个一对一的问题,使发送端和接收端的能 力匹配,通过一定的机制保证发送端发送的速度不至于淹 没接收端
拥塞控制的算法
慢启动算法:
拥塞控制算法过程
超时后阈值变为当前拥塞窗口大小的一半
三个计时器:
- 保活计时器:一旦连接,双方都启动保活计时器,当连接长时间无数据传输,保活计时器超时,一方就会发送探测报文给对方,若无响应,则终止连接。
- 重传计时器:在发送一个数据时启动一个重传计时器,当超过重传计时器时间还没有确认,则需要重新传输数据。但初始值不能设定为固定大小。对于点对点的数据链路层,演示由数据传输延时和信号传播延时两部分组成,所以可以设定为大于估计的时间,对于端到端,要不断调整时间,使用jacobson算法,
- 持续计时器:用来解决死锁问题,当接收方来不及处理收到的数据会发送零窗口公告给发送方,然后发送方停止等待,当处理完毕之后接收方会发送一个新的窗口公告,若丢失则双方都会一直等待,这就是死锁。每当发送方发送一个零窗口公告,就会启动一个持续计时器,若持续计时器超时发送发则发送探测报文询问对方“你有空了吗”,接收方可以作出应答,从而避免相互等待。