传输层
2015-10-21 21:08
197 查看
应用进程的通信
面向连接——TCP——TCP报文段
面向无连接——UDP——UDP报文或用户数据报
端口:
计算机中进程是用进程标识符标志
在网络中不同计算机操作系统不同——引入端口号
UDP
TCP
面向连接的、可靠的传输协议
因为IP不能提供可靠协议,TCP可靠性完全由自己实现
1.端口:是传输层与应用层的服务接口
2.序号:TCP传输的数据流每一个字节都编上一个序号。序号字段的值指的是本报文所发送的第一个字节的序号。
3.确认号:期望下一个报文段的数据的第一个字节的序号。(确认号是N,则说明n-1为止的所有数据都已正确收到)
4.URG:为1时,紧急指针有效。表明此报文段中有紧急数据,应尽快传送。
5.ACK:只有为1时确认号字段才有效。
6.PSH:收到PSH=1的报文段,尽快交付应用进程,而不再等整个缓存都填满再向上交付。
7.RST:为1时,表明TCP链接中出现严重差错(主机崩溃或其他原因),必须释放链接,然后重新建立连接。
8.SYN:为1时表示这是一个连接请求或连接接收报文。
9.FIN:为1时数据传输完毕要求释放传输连接。
通信三个阶段:
1.建立连接:握手
2.数据传输:“窗口”流量控制
3.连接关闭:向接收方发送关闭请求,但仍可接受数据,直到接收方发送了关闭连接请求的确认,才正式关闭。
连接
为什么要三次握手,同步窗口,序列号等等
2次可能的情况:
比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机;
于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。
传完东西后,断开。
结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上
释放
为什么A必须等待2MSL时间
1.保证A发送的最后一个ACK报文能够到达B。
2.防止已失效的连接请求报文出现在本连接中,
TCP可靠传输
对每个报文计时
TCP流量控制——滑动窗口机制
拥塞控制
因为拥塞是整个个网络的问题,所以单个节点只能流量控制,流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
拥塞窗口
发送窗口 = min [接收窗口,拥塞窗口]
快重传:接收到三个重复确认,发送方不必等超时现象的出现就重传报文段
快恢复:重传之后,进入拥塞避免阶段
接收到第三个重复的确认
ssthresh
= cwnd/2
重传报文段
cwnd
= ssthresh
+ 3 * segsize
2. 对每一个重复的确认
cwnd
= cwnd +
segsize
3.
如果收到对重传报文段的确认
cwnd
= ssthresh
面向连接——TCP——TCP报文段
面向无连接——UDP——UDP报文或用户数据报
端口:
计算机中进程是用进程标识符标志
在网络中不同计算机操作系统不同——引入端口号
UDP
TCP
面向连接的、可靠的传输协议
因为IP不能提供可靠协议,TCP可靠性完全由自己实现
1.端口:是传输层与应用层的服务接口
2.序号:TCP传输的数据流每一个字节都编上一个序号。序号字段的值指的是本报文所发送的第一个字节的序号。
3.确认号:期望下一个报文段的数据的第一个字节的序号。(确认号是N,则说明n-1为止的所有数据都已正确收到)
4.URG:为1时,紧急指针有效。表明此报文段中有紧急数据,应尽快传送。
5.ACK:只有为1时确认号字段才有效。
6.PSH:收到PSH=1的报文段,尽快交付应用进程,而不再等整个缓存都填满再向上交付。
7.RST:为1时,表明TCP链接中出现严重差错(主机崩溃或其他原因),必须释放链接,然后重新建立连接。
8.SYN:为1时表示这是一个连接请求或连接接收报文。
9.FIN:为1时数据传输完毕要求释放传输连接。
通信三个阶段:
1.建立连接:握手
2.数据传输:“窗口”流量控制
3.连接关闭:向接收方发送关闭请求,但仍可接受数据,直到接收方发送了关闭连接请求的确认,才正式关闭。
连接
为什么要三次握手,同步窗口,序列号等等
2次可能的情况:
比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机;
于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。
传完东西后,断开。
结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上
释放
为什么A必须等待2MSL时间
1.保证A发送的最后一个ACK报文能够到达B。
2.防止已失效的连接请求报文出现在本连接中,
TCP可靠传输
对每个报文计时
TCP流量控制——滑动窗口机制
拥塞控制
因为拥塞是整个个网络的问题,所以单个节点只能流量控制,流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
拥塞窗口
发送窗口 = min [接收窗口,拥塞窗口]
快重传:接收到三个重复确认,发送方不必等超时现象的出现就重传报文段
快恢复:重传之后,进入拥塞避免阶段
接收到第三个重复的确认
ssthresh
= cwnd/2
重传报文段
cwnd
= ssthresh
+ 3 * segsize
2. 对每一个重复的确认
cwnd
= cwnd +
segsize
3.
如果收到对重传报文段的确认
cwnd
= ssthresh
相关文章推荐
- OpenCV-Mat结构详解
- mahout
- 你不知道的JavaScript--Item16 for 循环和for...in 循环的那点事儿
- 开源中国 Maven 库使用帮助
- 自学QT之简易音乐播放器基于QT5.5
- 精益之美甚于帕斯雀(摘自《代码之道》第2章)
- 你不知道的JavaScript--Item16 for 循环和for...in 循环的那点事儿
- 1009. 说反话 (20)
- 大数模板
- 3333333333
- 22222222222
- linux学习笔记--centos 安装
- 青蛙的约会【数学算法总结】
- 程序中各种变量的存储位置和程序返回变量的问题
- 事件绑定
- 单点登录的实现
- 55555555555
- java.lang.RuntimeException: Can't create handler inside thread that has not
- matlab 和 numpy 矩阵乘法异同
- android小问题:如何在Listview中获取上下文菜单对应的item项