例:
UDP:计算机请求解析域名时,传输层用UDP协议、QQ聊天也是UDP协议、屏幕广播,多播(不建立会话,也不保证可靠传输)
TCP:QQ传文件用的是TCP协议
netstat -n:查看会话
netstat -nb:查看会话是那个进程建立的
通过端口加TCP/UDP
HTTP=TCP+80
HTTPS=TCP+443
SQL=TCP+1433
服务使用TCP或UDP的端口侦听客户端的请求
客户端使用IP定位目标服务器,使用目标端口,定位服务
可能够在网卡上设置,接收的数据包里,什么样的目标端口能进来(放行端口)
为了网络安全,只开放必要的端口或服务
黑客就是通过扫描端口工具来判断开启了什么服务,然后通过服务的漏洞来进行攻击
比如如果你开了远程桌面3389的端口,那么攻击者就可以试密码了
迷惑入侵者 是系统更安全
防火墙
开放端口
传输层协议和网络层协议的区别
传输层的端口 协议号、端口号
端口用一个16位端口号进行标志
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口没有联系
本地应用访问外部服务器服务时的原端口是由应用程序动态产生的一个高端口
程序开发者需要进程注册
作为应用程序的源端口
计算UDP检验和的例子
如何是实现可靠传输、流量控制、避免网络拥塞
文件进行切割放入TCP缓存和TCP缓存把数据组成数据包没有联系(分割选取的字节大小无联系)
每一条TCP连接有两个端点,端点就是端口号加IP地址,构成的端点就叫套接字
超时传输
等待的时间比往返时间长一点
确认丢失和确认迟到
使用确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信
这种可靠传输协议通常被称为自动重传请求ARQ(Automatic Repeat reQuest)
ARQ表明重传请求时自动进行的
停止等待协议的优点就是简单,但缺点就是信道利用率太低
信道利用率U = Td/(Td+RTT+Ta)
提高Td,U就增加了
发送方可连续发送多个分组,不必每发完一个分组就停顿下来等待对方的确认
由于信道上一直有数据不断的传送,这种传输方式可以获得很高的信道利用率
当窗口内的数据收到了确认消息,则被移出窗口,窗口也移向新数据(滑动窗口)
接收方一般采用累积确认的方式
优点:容易实现,信道利用率高
缺点:不能向发送方反映出接受方已经正确收到的所有分组的信息
连续确认ARQ
此时接收到4,但没有三,则确认1、2
SYN攻击:xp系统会受到恶意的建立会话的攻击(攻击者请求与目标机建立会话,但是源地址不是攻击者的地址,是随机的地址,这个时候xp会浪费大量的系统CPU资源)
Land攻击:攻击者发送的请求的源地址和目标地址都是目标机器(自己和自己及案例会话)
首先A的发送窗口由B的接收窗口决定
数据无丢失:
发送端收到接收端的确认接收数据包后,移动窗口,删除已经接收到的数据包
接收端发送了确认接收的消息后,移动接收窗口,窗口外的消息被应用层程序读取
数据丢失:
接收端发送的确认号是连续数据块的最后一位
此时选择性确认SACK,会告诉发送端哪一段缺失了,发送端就只发丢失的部分
TCP每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到了但还没收到确认,就重传这一报文段
新的RTTs=(1-a)(旧的RTTs)+a(新的RTT样本)
超时重传时间应略大于上面得出的加权平均往返是啊金RTTs
RFC2988推荐的a值为1/8(a的值越小说明越依赖于旧的值,a的值越大修正的就更及时(最佳的a值需要由实际网络的波动决定))
解决通信两端处理速度不一样的问题
双方建立会话时先确定发送窗口和接收窗口
在数据传输过程中,通过接收端告诉发送端接收窗口的大小实现流量控制,当接收端把接收窗口设置为0时,发送端的发送窗口为0:停止发送,为了避免接收端从停止接收(接收窗口为0)到开始接收(接收窗口不为0)的数据包在途中丢失,导致的会话卡死,因此发送端会定时询问接收端的接收窗口大小
网络堵塞是局域网内所有计算机都有关,一旦出现拥堵现象,所有计算机积极控制,主动降低发送速度
出现质量拥塞的条件:对资源需求的总和>可用资源
拥塞控制:是一个全局的过程,涉及所有主机、所有路由器,以及降低网络性能的所有因素
流量控制:处理的是接收端接收不过来的情况
发送方维持拥塞窗口cwnd
发送控制拥塞窗口的原则:
开始慢,逐渐变快
强调:“拥塞避免”并非完全的避免拥拥塞,利用以上措施要完全避免网络拥塞是不可能的。
“拥塞避免”是说再拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络不容易出现拥塞
发送窗口的上限值 = Min[rwnd,cwnd]
一开始使用拥塞窗口逐渐增大,但是最终不超过接收窗口上限值
传输连接有三个阶段,即:连接建立、数据传送和连接释放
TCP连接的建立都是客户端发起的(client和server)
第三次确认的含义:确认服务器的确认(使服务器确认到客户机也时通的)
TCP三次握手的状态:(netstat -n 查看会话)
等待2MSL(最大报文寿命MSL,默认是两分钟,这里就是4分钟):防止客户机最后的同意建立连接信息丢包了,如果不等待则服务器永远无法关闭连接了