传输层
各层使用协议:
-
应用层:http https ftp DNS SMTP PoP3 RDP
-
传输层:TCP UDP
-
网络层:IP(RIP OSPF BGP) ICMP IGMP ARP
传输层两个协议应用场景
TCP:需要分段,有流量控制功能,有编号,丢包可以重传,需要先建立会话(可靠传输) (QQ传文件) netstat -n
UDP:没有编号,一个数据包就能完成数据通信,不建立会话,多播(QQ聊天)
传输层和应用层的关系:
http=TCP+80(端口)
https=TCP+443
ftp=TCP+21
SMTP=TCP+25
PoP3=TCP+110
RDP=TCP+3389
共享文件夹=TCP+445
SQL=TCP+1433
DNS=UDP+53 or TCP+53
应用层协议和服务之间的关系:
服务运行后在TCP或UDP的某个端口侦听客户端请求
端口代表服务/应用
更改端口增加服务器安全
mstsc
windows防火墙的作用
用户数据报协议 UDP
UDP的首部格式
TCP面向流的概念
传输数据控制协议TCP概念
-
TCP是面向连接的传输层协议
-
每一条TCP连接只能有两个端点(endpoint),每一条TCP链接只能是点对点的(一对一)
-
TCP提供可靠交付的服务
-
TCP提供全双工通信(同时收和发)
-
面向字节流
TCP协议特点
- TCP如何实现可靠传输?
- TCP如何实现流量控制?
- TCP如何避免网络拥塞?
TCP的连接
TCP把连接作为最基本的抽象
每一条TCP连接有两个端点
TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口。TCP连接的端点交做套接字(socket)
端口号拼接到IP地址即构成了套接字
可靠传输的工作原理-----停止等待协议
确认丢失和确认迟到
可靠通信的实现
使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信
这种可开传输协议通常被称为自动重传请求ARQ(Automatic Repeat reQuest)
ARQ表明重传的请求是自动进行的。接收方不需要请求发送方重传某个出错的分组
信道利用率
停止等待协议的优点是简单,但缺点是信道利用率太低
流水线传输
发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认
由于信道上一直有数据不间断地传送,这种传输方式可获得很高的信道利用率
连续ARQ协议
发送窗口是5,发送5个以后暂停等待通知,当接收到第一个已经传输成功的消息,窗口移动,缓存中的1删除,开始发送6,以此类推…
累计确认
接收方一般采用累计确认的方式
优点:容易实现,信道利用率高
缺点是:不能像发送方反映出接收方已经正确收到的所有分组的信息
TCP报文段的首部格式
源端口:2个字节
目标端口:2个字节
序号:
某一段数据的第一个字节是整个文件的第几个字节
确认号:让发送方下一个数据包发送第几个开头的数据
数据偏移:TCP首部有多长。用来记录TCP报文段第几个字节以后开始是数据
首部抓包分析:
TCP如何让实现可靠传输
-
以字节为单位的滑动窗口技术
假定数据传输A发送数据,B给出确认。即发送方A的发送窗囗和接收方B的接收窗口。
A 发送了 11 个字节的数据
A 收到新的确认号,发送窗口向前滑动
A 的发送窗口内的序号都已用完,但还没有再收到确认,必须停止发送。
发送缓存
接收缓存
超时重传时间的选择:
TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确认,就要重传这一段报文
超时重传时间应略大于加权平均往返时间RTTs
TCP的拥塞控制机制
出现资源拥塞的条件:
对资源的需求总和 > 可用资源
拥塞控制是一个全局性的过程,涉及到所有的主机和路由器,以及与降低网络传输性能有关的所有因素
流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制,它说要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收
拥塞控制所起到的作用
慢开始和拥塞避免
发送方维持拥塞窗口
发送方控制拥塞窗口原则是:
- 只要网络没有出现拥塞,拥塞窗口就增大一些,以便把更多的分组发送出去
- 只要网络出现了拥塞,拥塞窗口就减小一些,以减少注入到网络中的分组数
慢开始的算法原理:
慢开始和拥塞避免算法举例:
注意:‘拥塞避免’并非指完全能够避免了拥塞。
TCP的传输连接管理
传输连接有三个阶段
- 连接建立
- 数据传送
- 连接释放
TCP连接的建立都是采用客户服务器方式
主动发起连接建立的应用进程叫客户(client)
被动等待连接建立的应用进程叫做服务器(server)
TCP的连接建立–三次握手
TCP连接的各状态
TCP的连接释放
TCP连接必须经过时间2MSL后才算真正释放掉
等待是为了防止客户发送给服务器的确认关闭消息没有收到