怎样使一台电脑做服务器,与其他多台电脑共享

怎样使一台电脑做服务器,与其他多台电脑共享,第1张

前言:在局域网中搭建FTP可以非常有效的实现信息和文件共享,同时可针对不同用户设置不同的权限,有力的保证了信息的安全。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。下面系统之家小编就Win7系统搭建局域网FTP的过程进行详述。

1.打开 "控制面板",选择"程序" ->"打开或关闭Windows资源",在弹出的窗体里找到 “Internet信息服务”,展开后选择“Ftp服务器",然后点击"确定",此时Windows开始更新功能资源列表。

2.更新完成后,进入"控制面板" ->"系统和安全" ->"管理工具" ,双击 "Internet 信息服务(IIS)管理器"

3.在弹出的窗体中右键点击你的计算机名称,选择添加FTP站点。在弹出的对话框中输入Ftp站点的名称、物理路径,点击 "确定"

4.设置防火墙,以便其它用户通过局域网中其它计算机访问本计算机中的Ftp资源。进入"控制面板" ->"系统和安全" - >"允许程序通过防火墙" ->钩上FTP及后面两个框选上;

5.在IE地址栏中输入"ftp :// 192.168.1.100 "(这个地址根据个人电脑实际情况是不同的),在弹出的身份认证对话框中输入用户名和密码,点击登陆即可访问ftp资源;

主要特点:面向连接、面向字节流、全双工通信、通信可靠。

优缺点:

应用场景:要求通信数据可靠时,即 数据要准确无误地传递给对方。如:传输文件:HTTP、HTTPS、FTP等协议;传输邮件:POP、SMTP等协议

ps:首部的前 20 个字节固定,后面有 4n 字节根据需要增加。故 TCP首部最小长度 = 20字节(最大60个字节)。

TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。

重要字段:

客户端与服务器来回共发送三个TCP报文段来建立运输连接,三个TCP报文段分别为:

(1)客户端A向服务器B发送的TCP请求报段“SYN=1,seq=x”;

(2)服务器B向客户端A发送的TCP确认报文段“SYN=1,ACK=1,seq=y,ack=x+1”;

(3)客户端A向服务器B发送的TCP确认报文段“ACK=1,seq=x+1,ack=y+1”。

ps:在建立TCP连接之前,客户端和服务器都处于关闭状态(CLOSED),直到客户端主动打开连接,服务器才被动打开连接(处于监听状态 = LISTEN),等待客户端的请求。

TCP 协议是一个面向连接的、安全可靠的传输层协议,三次握手的机制是为了保证能建立一个安全可靠的连接。

通过上述三次握手, 双方确认自己与对方的发送与接收是正常的,就建立起一条TCP连接,即可传送应用层数据 。ps:因 TCP提供的是全双工通信,故通信双方的应用进程在任何时候都能发送数据;三次握手期间,任何1次未收到对面的回复,则都会重发。

为什么两次握手不行呢

结论:防止服务器接收了 早已经失效的连接请求报文 ,服务器同意连接,从而一直等待客户端请求, 最终导致形成死锁、浪费资源

ps:SYN洪泛攻击:(具体见下文)

为什么不需要四次握手呢

SYN 同步序列编号(Synchronize Sequence Numbers) 是 TCP/IP 建立连接时使用的握手信号。在客户机和服务器之间建立正常的 TCP 网络连接时,客户机首先发出一个 SYN 消息,服务器使用 SYN-ACK 应答表示接收到了这个消息,最后客户机再以 ACK确认序号标志消息响应。这样在客户机和服务器之间才能建立起可靠的 TCP 连接,数据才可以在客户机和服务器之间传递。

如何来解决半连接攻击?

如何来解决全连接攻击?

请注意 ,现在 TCP 连接还没有释放掉。必须经过 时间等待计时器 设置的时间 2MSL(MSL:最长报文段寿命)后,客户端才能进入到 CLOSED 状态,然后撤销传输控制块,结束这次 TCP 连接。当然如果服务器一收到 客户端的确认就进入 CLOSED 状态,然后撤销传输控制块。所以在释放连接时,服务器结束 TCP 连接的时间要早于客户端。

TCP是全双工的连接,必须两端同时关闭连接,连接才算真正关闭。 简言之,客户端发送了 FIN 连接释放报文之后,服务器收到了这个报文,就进入了 CLOSE-WAIT 状态。这个状态是为了让服务器端发送还未传送完毕的数据,传送完毕之后,服务器才会发送 FIN 连接释放报文,对方确认后就完全关闭了TCP连接。

举个例子:A 和 B 打电话,通话即将结束后,A 说“我没啥要说的了”,B回答“我知道了”,但是 B 可能还会有要说的话,A 不能要求 B 跟着自己的节奏结束通话,于是 B 可能又巴拉巴拉说了一通,最后 B 说“我说完了”,A 回答“知道了”,这样通话才算结束。

ps:设想这样一个情景: 客户端已主动与服务器建立了 TCP 连接。但后来客户端的主机突然发生故障。 显然,服务器以后就不能再收到客户端发来的数据。因此,应当有措施使服务器不要再白白等待下去。这就需要使用 TCP的保活计时器 。基本原理:

tcp11种状态及变迁其实基本包含在正常的三次握手和四次挥手中,除开CLOSING。

正常的三次握手包括4中状态变迁:

服务器打开监听(LISTEN)->客户端先发起SYN主动连接标识->服务器回复SYN及ACK确认->客户端再确认即三次握手TCP连接成功。这里边涉及四种状态及变迁:

正常的四次握手包含6种tcp状态变迁,如主动发起关闭方为客户端:

客户端发送FIN进入FIN_WAIT1 ->服务器发送ACK确认并进入CLOSE_WAIT(被动关闭)状态->客户端收到ACK确认后进入FIN_WAIT2状态 ->服务器再发送FIN进入LAST_ACK状态 ->客户端收到服务器的FIN后发送ACK确认进入TIME_WAIT状态 ->服务器收到ACK确认后进入CLOSED状态断开连接 ->客户端在等待2MSL的时间如果期间没有收到服务器的相关包,则进入CLOSED状态断开连接。

CLOSING状态 :连接断开期间,一般是客户端发送一个FIN,然后服务器回复一个ACK,然后服务器发送完数据后再回复一个FIN,当客户端和服务器同时接受到FIN时,客户端和服务器处于CLOSING状态,也就是此时双方都正在关闭同一个连接。

在进入CLOSING状态后,只要收到了对方对自己发送的FIN的ACK,收到FIN的ACK确认就进入TIME_WAIT状态,因此,如果RTT(Round Trip Time TCP包的往返延时)处在一个可接受的范围内,发出的FIN会很快被ACK从而进入到TIME_WAIT状态,CLOSING状态持续的时间就特别短,因此很难看到这种状态。

我们知道网络层,可以实现两个主机之间的通信。但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在交换数据。IP协议虽然能把数据报文送到目的主机, 但是并没有交付给主机的具体应用进程 。而 端到端的通信才应该是应用进程之间的通信

应用场景 :UDP协议比TCP协议的效率更高,TCP协议比UDP协议更加安全可靠。

下面主要对 数据传输出现错误/无应答/堵塞/超时/重复 等问题。

注意:TCP丢包:TCP是基于不可靠的网路实现可靠传输,肯定会存在丢包问题。如果在通信过程中,发现缺少数据或者丢包,那边么 最大的可能性是程序发送过程或者接受过程中出现问题。

总结:为了满足TCP协议不丢包,即保证可靠传输,规定如下:

注意:TCP丢包有三方面的原因,一是网络的传输质量不好,二是安全策略,三是服务器性能瓶颈

先理解2个基础概念:发送窗口、接收窗口

工作原理:

注意点:

关于滑动窗口的知识点:

滑动窗口中的数据类型:

ARQ解决的问题:出现差错时,让发送方重传差错数据:即 出错重传

类型:

流量控制和拥塞控制解决的问题:当接收方来不及接收收到的数据时,可通知发送方降低发送数据的效率:即 速度匹配

流量控制

注意:

拥塞控制

慢开始与拥塞避免

快重传和快恢复

补充:流量控制和拥塞控制的区别

什么情况造成TCP粘包和拆包?

解决TCP粘包和拆包的方法:

传输层无法保证数据的可靠传输 ,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。

最简单的方式是在应用层模仿传输层TCP的可靠性传输。 下面不考虑拥塞处理,可靠UDP的简单设计。

https://www.jianshu.com/p/65605622234b

http://www.open-open.com/lib/view/open1517213611158.html

https://blog.csdn.net/dangzhangjing97/article/details/81008836

https://blog.csdn.net/qq_30108237/article/details/107057946

https://www.jianshu.com/p/6c73a4585eba


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/152705.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-21
下一篇2023-03-21

发表评论

登录后才能评论

评论列表(0条)

    保存