传输层两个协议应用场景:
TCP,分段,编号 ,流量控制,建立会话,用netstat -n 可以看到,是可靠
UDP ,一个数据包就能完成数据通信,不建立会话。用于多播。
传输层和应用层之间的关系:
应用层协议和服务之间的关系:
服务运行后在TCP或UDP的某个端口侦听客户端的请求。(只有对外的服务才侦听端口)
用端口来区分服务其实就增加了服务器的安全
查看自己计算机侦听端口netstat -an
更改端口增加服务器安全,另外在Windows server上还可以通过设置IP设置->高级->TCP筛选,只打开特定的端口和服务。
windows防火墙的作用
把所有的端口都关掉了,别人访问不了你的任何端口,但你可以上网,访问别的网站。
别人进的进不了,但主动出去的不管
木马程序正是利用防火墙这个特点,主动向外连服务器。
运输层为相互通信的应用进程提供了逻辑通信
向上应用层提供通信服务,属于面向通信部分的最高层,同时也是用户功能中的最低层。
运输层协议和网络层协议的主要区别:
运输层还要对收到的报文进行差错检测,提供面向连接和无连接的服务。
UDP报文格式:
UDP主要特点:
UDP校验和:
TCP:主要特点:
TCP连接:
把连接作为最基本的抽象
每一条连接有两个端点:
TCP连接的端点不是主机,不是主机的IP地址,不是应用进程,也不是传输层的协议端口,连接的端点叫套接字(socket)
端口号拼接到IP地址即构成套接字。
如何实现可靠传输--停止等待协议
这样就可以在不可靠的传输网络上实现可靠的通信。
这种可靠传输协议常称为自动重传请求ARQ(Automatic Repeat reQuest).
ARQ表明重传的请求是自动进行的,接收方不需要请求发送方重传某个出错 的分组。
流水线传输:
连续ARQ协议:发送方维持发送窗口(滑动窗口)
窗口里面的数据都是可以发送的,并且不可以删。
接收方一般采用累积确认的方式,但不能向发送方反映出接收方已经正确收到的所有分组的信息。
TCP协议实现流量控制:
TCP报文段的首部格式:
确认号是让发送者知道下一个该发第几个数据包了。
数据偏移:告诉从第几个字节开始就是数据,有4个位,1个数字代表15个字节,最多可以是60个字节。减去固字20个字节,所以选项部分最多是40个字节。
保留:URG:告诉是一个比较着急的数据,要优先传。能插队。
ACK:如果是0确认号是无效的,序号是1确认号才有效。
SYN:同步的时候才用到。
PSH:代表接收端,要优先处理的数据。
RST:有严重的错误,需要重启会话。
FIN:释放连接。
窗口字段:通信双方的缓存大小。
检验和两个字节,是首部和数据两部分。
紧急指针指明了需要紧急处理的数据的尾部(URG为1)时有效。
详细的可靠传输过程:两台计算机传数据
1、以字节为单位的滑动窗口技术
发送端的发送窗口是由接收端的接收窗口决定的。
超时重传时间选择:
RFC2988推荐a的值为1/8。
TCP的拥塞控制:指全部的计算机如何把网堵死。
产生条件:
对资源需求的总和>可用资源
拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素
流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制,它所要做的就是抑制发送端发送数据的速率以便使接收端来得及接收。
实现:慢开始和拥塞避免
慢开始算法原理:
不可能 完全避免拥塞,拥塞避免是说在拥塞避免阶段把拥塞窗口控制为按线性增长,而不是再按指数增长,使网络比较不容易出现拥塞。
快重传和快恢复
连续收到三个重复的确认号就进入快恢复(拥塞避免)
发送窗口实际上限值:应该取接收方窗口和拥塞窗口两个变量中较小的一个。
TCP的传输连接管理:
三个阶段:建立连接,数据传送和释放连接
TCP连接建立都采用客户服务器方式
三次握手:
为什么需要第三个数据包来进行确认?
若客户端发了两次请求,其中一次延时,服务器就要等客户机的回应。
为了防止服务器端的等待,造成资源浪费,这样服务器只要收到第三次确认就开始传数据。
连接释放:状态
完结