计算机网络原理 —— 传输层
1、传输层的作用:为它上面的应用层提供(端到端)的通信服务。
2、端口号(协议端口号)本质是上软件端口,是应用层的各种协议进程与运输实体进行层间交互的一种地址,是具有本地意义的一种表示方法。
作用:
3、TCP和UDP的比较
4、UDP首部分四个部分,共占8个字节,分别是源端口、目的端口、长度、校验和(首部和数据部分同时校验)
UDP报文格式:
TCP报文格式:
5、TCP面向字节流的概念:TCP把应用程序交下来的数据仅仅看成是一连串无结构的字节流,并不知道所传送的字节流的含义。不保证接收方应用程序所收到的数据块和发送方应用程序发出的数据块具有对应大小关系(但字节流的总量一定是一致的),同时在滑动窗口的设置中,也是以字节为基本单位设置的。
6、可靠传输的工作原理
7、滑动窗口机制:发送方A的发送窗口表示在没有收到接收方B的确认的情况下,A可以连续把窗口内的数据全部发送出去,已发送过的数据,在未收到确认之前必须要暂时保留,以备超时重传时使用。
8、超时重传时间=RTTS(加权平均往返时间)+4×RTTD(RTT的偏差的加权平均值)
9、选择确认:即接收方通过选择确认告诉发送方那些数据丢失,那些数据已经收到等,选择确认这种可靠传输方式也称为快速选择性重传。
由于TCP首部没有哪个字段能够提供不连续的字节块的边界信息(用来标识丢失部分),所以在使用确认SACK的时候要在建立TCP连接时,在TCP首部的选项中加入“允许SCAK”选项,而且双方必须事先商定好。这种做法会增加十分多的首部开销,所以在实际应用中并不常见。
10、TCP流量控制:让发送方的发送速率不要太快,要让接收方来得及接收。
11、拥塞:在某段时间内,若网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏,这种情况叫做拥塞。即:∑对资源的需求 > 可用资源。
拥塞控制就是防止过多的数据注入到网络中,这样可以使得网络中的路由器或者链路不至于过载。从大的方面上,可以分为开环控制和闭环控制两种,实际应用中大多数是闭环控制。
12、实际拥塞控制过程
慢开始以指数形式从1开始增长,到达ssthresh(慢开始门限)之后改为拥塞避免算法。
无论在何种状态(拥塞避免还是慢开始),一旦发生超时,拥塞窗口降为1,重新执行慢开始;ssthresh门限值改为超时时拥塞窗口值cwnd的一半。
一旦发生三次ACK,立即重传三次ACK确认的数据(快重传),并ssthresh门限值改为三次ACK时拥塞窗口值cwnd的一半,然后立刻执行拥塞避免算法(快恢复)。
13、TCP连接的建立
TCP连接的释放
为什么A最后必须等待2MSL?
2、端口号(协议端口号)本质是上软件端口,是应用层的各种协议进程与运输实体进行层间交互的一种地址,是具有本地意义的一种表示方法。
作用:
- (1)标识服务器上提供特定网络服务的进程。
- (2)由本机地址、本机端口号、目标机地址、目标机端口号、通信协议组成的五元组,用于唯一确定正在使用的网络链接。
3、TCP和UDP的比较
| UDP | TCP | |
| 建立连接 | 无连接 | 面向连接 |
| 交付 | 尽最大努力交付 | 可靠交付 |
| 通信 | 一对一、一对多、多对一、 多对多的交互式通信 | 只能是点对点 |
| 传送 | 面向报文 | 面向字节流 |
| 特性 | 没有拥塞控制 首部开销小 | 具有拥塞控制和流量控制 全双工通信 |
4、UDP首部分四个部分,共占8个字节,分别是源端口、目的端口、长度、校验和(首部和数据部分同时校验)
UDP报文格式:
TCP报文格式:
- (1)源端口和目的端口各占2B,分别写入源端口号和目的端口号
- (2)序号,占4B,每一个TCP连接中传送的字节流中的每一个字节都是按顺序编号的
- (3)确认号:占4B,期待收到对方的下一各报文段的第一个数据字节的序号
- (4)确认ACK:ACK=1表示有效,TCP连接建立后所有的报文段必须把ACK置1
- (5)同步SYN:SYN=1但ACK=0,表明这是一个请求报文段,若同意连接则将两者均置为1。
- (6)终止FIN:用来释放一个连接,FIN=1表示此报文段的发送方的数据已经发送完毕,要求释放运输连接。
5、TCP面向字节流的概念:TCP把应用程序交下来的数据仅仅看成是一连串无结构的字节流,并不知道所传送的字节流的含义。不保证接收方应用程序所收到的数据块和发送方应用程序发出的数据块具有对应大小关系(但字节流的总量一定是一致的),同时在滑动窗口的设置中,也是以字节为基本单位设置的。
6、可靠传输的工作原理
- (1)TCP采用三报文握手来建立TCP连接,四报文握手来释放TCP连接,从而保证建立的传输信道是可靠的。
- (2)TCP采用连续ARQ协议(回退N,Go-back-N;超时自动重传)来保证数据传输的正确性,使用滑动窗口协议来保证接收方能够解释处理所接收到的数据,进行流量控制。
- (3)TCP使用慢开始、拥塞避免、快重传和快恢复来进行拥塞控制,避免网络拥塞。
7、滑动窗口机制:发送方A的发送窗口表示在没有收到接收方B的确认的情况下,A可以连续把窗口内的数据全部发送出去,已发送过的数据,在未收到确认之前必须要暂时保留,以备超时重传时使用。
8、超时重传时间=RTTS(加权平均往返时间)+4×RTTD(RTT的偏差的加权平均值)
9、选择确认:即接收方通过选择确认告诉发送方那些数据丢失,那些数据已经收到等,选择确认这种可靠传输方式也称为快速选择性重传。
由于TCP首部没有哪个字段能够提供不连续的字节块的边界信息(用来标识丢失部分),所以在使用确认SACK的时候要在建立TCP连接时,在TCP首部的选项中加入“允许SCAK”选项,而且双方必须事先商定好。这种做法会增加十分多的首部开销,所以在实际应用中并不常见。
10、TCP流量控制:让发送方的发送速率不要太快,要让接收方来得及接收。
11、拥塞:在某段时间内,若网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏,这种情况叫做拥塞。即:∑对资源的需求 > 可用资源。
网络拥塞往往是由许多因素引起的,只任意的增加一些资源并不能解决拥塞问题,全局资源的同步提高才可能会有效。
拥塞控制就是防止过多的数据注入到网络中,这样可以使得网络中的路由器或者链路不至于过载。从大的方面上,可以分为开环控制和闭环控制两种,实际应用中大多数是闭环控制。
12、实际拥塞控制过程
慢开始以指数形式从1开始增长,到达ssthresh(慢开始门限)之后改为拥塞避免算法。
无论在何种状态(拥塞避免还是慢开始),一旦发生超时,拥塞窗口降为1,重新执行慢开始;ssthresh门限值改为超时时拥塞窗口值cwnd的一半。
一旦发生三次ACK,立即重传三次ACK确认的数据(快重传),并ssthresh门限值改为三次ACK时拥塞窗口值cwnd的一半,然后立刻执行拥塞避免算法(快恢复)。
13、TCP连接的建立
TCP连接的释放
为什么A最后必须等待2MSL?
- (1)保证A发送的最后一个ACK报文能够到达B
- (2)防止“已失效的连接请求报文段”出现在本连接中








没有评论:
感谢每一条善意的建言和理性的讨论!
特殊时期开启审核制度敬请谅解。
挑衅和引战会被删除并永久拉黑。