昨天上了C#的WinForms网络编程,感觉这次课老师讲的比前几次课好多了。。 经过昨天的一席课,让我对网络有了更深的了解。。 以下是些网络基础或网络技术原理,都是些比较浅的东西,从老师那获得来的并自己加以理解,如果哪里有错了,请高手指教。。。
网络通信:
网络之间的数据传送是一字节一字节传送的,因此每传一次就要与服务器建立一次连接,因此就会浪费资源, 为了节省资源,就设置了一个缓冲区,用来存储数据。缓冲区可以自定义大小,当传送的数据大小达到缓冲区大小时,就建立一次连接,将数据发送出去。 比如如果缓冲区设置为100Byte,则当传送的数据大小达到100Byte时,就将数据发送给请求端。 但是当传送的数据总大小为80Byte时(既小于100Byte),那数据岂不会一直保存在缓冲区中,不会发给请求端, 对于这个可以通过Flush来解决,用Flush可以清空缓冲区,将数据强制发送给请求端。
示例:在线视频直播常常出现“正在缓冲中”就是因为传送的数据没有达到缓冲区的大小,因此数据不会发送给请求端。 因此请求端就一直等待,直到达到了缓冲区大小,才会播放。 视频直播处于“正在缓冲中”,但是我们可以通过按播放来强制播放,这就是利用了Flush来强制发送数据了。。
端口:
网络中2台计算机之间要发送数据,必须知道对方的IP地址和端口号。IP地址谁都能理解,但对于端口号,恐怕很多人都不知道它的意思。 下面通过一个示例来解释:
寄信大家都知道把,需要在信封上写好收信人的地址和收信人的名字,这样信件才能安全的到达收信人手里,而在网络中发送数据,IP就是表示收信人的地址,端口号就表示收信人的姓名。 假如长沙有一台计算机为A,北京有一台计算机为B, 现在A要将一些数据发送给B。那么A就必须要知道B的地址(IP就是用来标识B的地址的),知道地址后,就要开通个端口来收数据,不然数据就会一直在外面等待,等待你开通个端口来接收。
黑客为什么能进入你的电脑,就是因为他利用了你系统默认开通的端口号并可以攻击你。因此我们可以关闭一些无用的端口号来提高安全性。
示例: QQ基本上大家天天都在用把,其实大家每登上一个QQ,藤迅的服务器就会开通一个端口专门用来和你的电脑进行数据通信,QQ发送的消息就是通过这个端口让藤迅的服务器接收的,然后在有藤迅的服务器将消息发送给好友, 我们本地也会开通一个端口,用来接受从藤迅的服务器发送来的数据(如好友发过来的消息)。。 一台服务器最多能开通5万个端口号,藤迅曾经有4.7亿用户同时在线, 因此估计藤迅有6千万台服务器分布在全国各地。。
常见端口号:HTTP使用的端口号是80, SMTP或电子邮件使用的端口号是25,FTP使用的端口号是21。。等等。
外挂修改网络通信数据原理(私服外挂):
等网络通信可传递任意字符,因此可以约定自己的通信协议命令。 如自定义的通信协议命令“Chat |”,当你循环通信的数据时,如果遇到了“Chat |”则把“Chat |”后面的通信数据作为聊天消息处理, 当然这个“Chat |”也可以是“CT *”等。通信协议命令一般都是 “命令 | 操作对象或内容”形式的。
示例:盛大的传奇也自定义了一组通信协议命令,用来处理客户端向服务器发送的传奇数据,外挂制作者就破解了这组通信协议命令,从而截取和修改这些通信数据。例如私服,何谓私服,就是私人的服务器, 他们就是截取了客户端向盛大服务器发送的传奇数据,并且对数据进行修改使客户端发送的数据传到了自己开的服务器(既私服)。
象聊天软件QQ,MSN都有自己的通信协议命令,而MSN的通信协议命令是公开的,QQ的不是,因此如果你有实力的话也可以去做个MSN私服。
P2P原理(电炉下载,流媒体播放):
P2P,即Peer-to-Peer的缩写,择为对等互联或点对点技术。P2P是一种用于在不同PC用户之间,不经过中继设备直接交换数据或服务的技术,它充许Internet用户直接使用对方的文件。网络中的任意用户都可以直接连接到其他用户的计算机,并进行文件的交换,而不需要连接到服务器上再进行浏览和下载,因此消除了中间环节,从而使网络上的沟通变得更容易和更直接。 如电炉,BT,PPStrem,PPLive都采用了这种技术
示例:电炉数据传送原理:当有一个用户A连接电炉下载某资源时,则在他连接时,会有一台总服务器将A用户的IP地址和开通的端口记录下来,然后再搜索在线用户,当发现在线用户B有A用户需要下载的资料时,就将A用户的下载请求转到B用户去(既B用户成为了服务器),A用户就从B用户那下载资料。 然后总服务器在搜索在线用户,当发现C用户有A用户需要下载的资料时,也将A用户的下载请求转到C用户去(既C用户成为了服务器),A用户就从C用户那下载资料。 然后总服务器再继续搜索。。。这样就可以利用连接用户的资源来传送数据,从而节省了自己成本的开销(如建立服务器等)。。
PPStream流媒体播放器:数据传送同电炉一样,A用户有视频数据,则B用户从A用户出下载视频数据。有一个疑问就是:A用户是在线观看,那其他用户怎么能从A用户处下载视频数据呢? 原因是PPStream是采用别下载别播放的模式,既A用户下载了视频数据并将数据保存在一个临时文件夹中,保存数据的大小是有限制的, 且这个临时文件夹是时时更新的。 B用户就是从A用户的这个临时保存的数据处下载数据的。。
为什么BLOG评论要加验证码:
原因就是防止恶意广告,有些商家请人作了些恶意程序,既批量回复(就是所有的帖子都被回复,由程序完成,程序通过固定的用户和密码登陆)回复的内容为广告或其他内容。 因此为了杜绝这个情况就加了验证码,回复必须要输入验证码才行,而验证码是随即产生的,因此恶意程序在批量回复时,因为不能判别输入什么验证码而不能回复,尽管输入了正确的用户名和密码。。
评论