仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 681|回复: 8
打印 上一主题 下一主题

[学习教程] 来一篇关于NET的C#收集编程系列一:收集协定简介

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:20:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。由于这段工夫都在研讨C#收集编程的一些常识,以是在这里把我进修到的在这里和人人分享下的,如许既能够到达分享的目标也能够让人人监视我,假如有甚么中央了解错了,还请人人不惜见教的。

良多人写收集编程这快都没有怎样讲收集中的协定,但是我以为既然是收集编程一定要先容下收集编程中一些协定的,如许可让更好的梳理收集编程的常识的,以是我在这系列中会用两个专题往讲协定,第一个专题复杂先容收集分层和各层之间怎样通讯的只是,第二专题将会先容下使用层协定——Http协定,懂得这个不但对收集编程有个实际基本,也能够匡助更好地舆解Web(Asp.net)的开辟。

1、收集分层


收集上的盘算机之以是能够相互通讯,是由于它们之间都恪守相互都能够“熟悉”的互联网协定(就好像人交换一样,两团体可以交换,相互必需晓得工具的言语),互联网上的盘算机相互通讯又回根于收集中层与层之间的通讯,OSI模子把收集通讯分红七层:物理层、数据链路层、收集层、传输层、会话层、暗示层和使用层,关于开辟收集使用职员来讲,一样平常把收集分红五层,如许对照简单了解。这五层为:物理层、数据链路层、收集层、传输层和使用层(最顶层),上面是一张收集分层的图片(来历于收集):


2、各层的协定


收集中的盘算机相互通讯就是完成了层与层之间的通讯,要完成层与层之间的通讯,则各层都要恪守划定规矩,如许才干完成更好的通讯,我们就把它们之间恪守的划定规矩就叫个“协定”,但是收集上的五层之间恪守的协定纷歧样,每层都有各自的协定。上面就由下至上的报告每层的协定

2.1物理层协定
物理层是五层模子中的最底层,物理层为盘算机之间的数据通讯供应了传输媒体和互连设备,为数据传输供应了牢靠的情况,媒体包含电缆、光纤、无线信道等,互连设备指是盘算机和调制解调器之间的互连设备,如各类插头、插座等。该层的感化是通明的传输比特流(即二进制流),为数据链路层供应一个传输原始比特流的物理毗连

2.2数据链路层
数据链路层是模子中的第2层,该层对承受到物理层传输过去的比特流举行分组,一组电旌旗灯号组成的数据包,就叫做"帧",数据链链路层就是来传输以"帧"为单元的数据包,把数据传送给上一层(收集层),帧数据由两部分构成:帧头和帧数据,帧头包含承受方物理地点(就是网卡的地点)和其他的收集信息,帧数据就是要传输的数据体。数据帧的最长为1500字节,假如数据很长,就必需支解成多个帧举行发送。

2.3收集层
该层经由过程寻址(寻址地点)来创建两个节点之间的毗连,人人都晓得我们的电脑毗连上彀络后都一个IP地点,我们能够经由过程IP地点来断定分歧的盘算机是不是在统一个子网路。假如我们的电脑毗连上彀络后就有两种地点:物理地点和收集地点(IP地点),收集上的盘算秘密通讯,必需要晓得通讯的盘算机“在那里”,起首经由过程收集地点来判别是不是处于统一个子收集,然后再对物理地点(MAC)地点举行处置,从而正确断定要通讯盘算机的地位。

在收集层中有我们熟习的IP协定(即划定收集地点的协定),今朝普遍接纳的是IP协定第四版(IPv4),这个版本划定,收集地点由32位二进制位构成。我们能够本人设置IP地点也能够主动取得的体例失掉IP地点,Ip地点分红两部分,前24位代表收集,后8位代表主机号,如192.168.254.1和192.168.254.2就处于统一个子收集里,由于这两个IP地点的前24位不异。

收集层中以IP数据包的情势来传送数据,IP数据包也包含两部分:头(Head)和数据(Data),IP数据包放进数据帧中的数据部分举行传输。

2.4传输层
经由过程MAC和IP地点,我们能够找到互联网上恣意两台主机来创建通讯。但是这里有一个成绩,找到主机后,主机上有良多程序都必要用到收集,好比说你在一边听歌亲睦用QQ谈天,当收集上发送来一个数据包时,是怎样晓得它是暗示谈天的内容仍是歌曲的内容的,这时候候就必要一个参数来暗示这个数据包是发送给谁人程序(历程)来利用的,这个参数我们就叫做端标语,主机上用端标语来标识分歧的程序(历程),端口是0到65535之间的一个整数,0到1023的端口被体系占用,用户只能选择年夜于1023的端口。

传输层的功效就是创建端口到端口的通讯,收集层就是创建主机与主机的通讯,如许假如我们断定了主机和端口,如许就能够完成程序之间的通讯了。我们所说的Socket编程就是经由过程代码来完成传输层之间的通讯。由于初始化Socket类工具要指定IP地点和端标语。

在传输层有两个十分主要的协定:UDP协定和TCP协定

接纳UDP协定话传输的就是UDP数据包,一样UDP数据包也由头和数据两部分构成,头部分次要标识了发送端口和承受端口,数据部分就是详细的内容信息。一样UDP数据包是放进IP数据包中的"数据"部分,IP数据包再放进数据帧中在收集上传输。

因为UDP协定的牢靠性差(数据发送后没法断定对方是不是收到),以是又界说了一个牢靠性高的协定——TCP协定,TCP协定接纳了握手的体例要确保对方收到了数据。

2.5使用层
使用层是模子中的最顶层,是用户与收集的接口,该层经由过程使用程序来完成收集用户的使用需求。该层的数据放在TCP数据包的数据部分,该层界说了一个很主要的协定——Http协定,我们一样平常的Web开辟都是基于使用层的开辟,以是前面专题将会和人人先容下Http协定。了解Http协定能够匡助我们了解Asp.net的哀求呼应模子和匡助我们自界说收回哀求和自界说服务器。

3、总结


如今经由过程一个复杂的会见网页的例子来讲明收集中的通讯。

当我们在扫瞄器中输出www.baidu.com时,这意味着扫瞄器要向百度发送一个网页数据包,要发送数据包,必要晓得对方的IP地点,这里我们只晓得网址为www.baidu.com,却不晓得IP地点,此时使用层协定DNS协定会帮我们把网址剖析为IP地点,此时会发送一个DNS数据包给DNS服务器,DNS服务器再做出呼应来告知我们百度的IP地点为220.181.111.147,如许我们就晓得百度(我们必要通讯的主机)的IP地点。

使用层:
扫瞄网页接纳的是HTTP协定,HTTP数据包会嵌进在TCP数据包中,此时我们发送的HTTP数据包内容为:
GEThttp://www.baidu.com/HTTP/1.1
Accept:Application/x-ms-Application,image/jpeg,Application/xaml+xml,image/gif,image/pjpeg,Application/x-ms-xbap,Application/vnd.ms-excel,Application/vnd.ms-powerpoint,Application/msword,*/*
Accept-Language:en-US
User-Agent:Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;WOW64;Trident/5.0;SLCC2;.NETCLR2.0.50727;.NETCLR3.5.30729;.NETCLR3.0.30729;MediaCenterPC6.0;.NET4.0C;.NET4.0E;Zune4.7;InfoPath.3;MS-RTCLM8)
Accept-Encoding:gzip,deflate,peerdist
Proxy-Connection:Keep-Alive
Host:www.baidu.com
Cookie:BDSFRCVID=H1K_JgC2l434o0a3SlYrhIyDwFLxPM7C3J;H_BDCLCKID_SF=tJAt_C8htDv5HTuRj63D5JcH-UnLqMkDWaOZ0h8-aI-5MbAx-jb6hhFXM-r80nblBTbT2C3nthF0HPonHj8Bej5L3J;BAIDUID=C0E879D1A40237E70E9FA559D40EE0AC:FG=1;BDUT=w5n3C0E879D1A40237E70E9FA559D40EE0AC13914a661370;BDUSS=FEQVdNdjllMTYyYlRxY3ZZbW1hM2htemdqZFVJcWRLWmFBaEtqd1FoTDNXeE5SQUFBQUFBJCQAAAAAAAAAAAoqyysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEwLjI2LjE5Ny43NwAAAADAxFInAAAAAPcNJlD3DSZQYV;BDRCVFR[eYjbPwSqvSs]=2g3v5sBI-NCpv4EILPoXi4WUvY;Hm_lvt_9f14aaa038bbba8b12ec2a4a3e51d254=1344671219756;Hm_lpvt_9f14aaa038bbba8b12ec2a4a3e51d254=1344671219756
X-P2P-PeerDist:Version=1.0

传输层:
TCP数据包必要设置端口,吸收方(百度)的Http端口默许是80,本机的端口是一个1024-65535之间的随机整数,这里假定为1025,如许TCP数据包由标头(标识着发方和吸收方的端口信息)+HTTP数据包,如许TCP数据包再嵌进IP数据包中在收集上传送

收集层:
IP数据包必要晓得两边的IP地点,本机IP地点假定为192.168.1.5,承受方IP地点为220.181.111.147(百度),如许IP数据包由头部(IP地点信息)+TCP数据包,

数据链路层:
IP数据包嵌进到数据帧(以太网数据包)中,以太网数据包必要晓得两边的MAC(物理地点),发送方为本机的网卡地点,承受方为网关192.168.1.1的MAC地点(经由过程ARP地点剖析协定失掉的)。如许数据帧由头部(MAC地点)+IP数据包构成。

经由多个网关的转发到百度服务器220.181.111.147,服务器承受到发送过去的以太网数据包,然后再从以太网数据包中提取IP数据包——>TCP数据包——>HTTP数据包,最初服务器做出"HTTP呼应",再用TCP协定发还给客户端(扫瞄器),扫瞄器一样的历程读取到HTTP呼应的内容(HTTP呼应数据包),然后扫瞄器对承受到的HTML页面举行剖析,把网页显现出来出现给用户,如许就完成了一次收集通讯了。

前面一个专题将对HTTP协定举行具体的先容。前几天同学问我学习方向的问题。有点想法,不知道对不对,怕误导同学,现在“开源一下”。注:括号内是我现在整理的时填加上的。
飘灵儿 该用户已被删除
沙发
发表于 2015-1-18 13:10:16 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
小女巫 该用户已被删除
板凳
发表于 2015-1-26 16:47:04 | 只看该作者
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
透明 该用户已被删除
地板
发表于 2015-2-4 20:42:58 | 只看该作者
ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。
萌萌妈妈 该用户已被删除
5#
 楼主| 发表于 2015-2-10 09:33:58 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
山那边是海 该用户已被删除
6#
发表于 2015-3-1 09:38:38 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
爱飞 该用户已被删除
7#
发表于 2015-3-10 16:51:44 | 只看该作者
ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-17 09:11:21 | 只看该作者
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSPParser)转换成Servlet代码,然后Servlet代码被Java编译器编译成.class字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(ScriptLanguage)版。
莫相离 该用户已被删除
9#
发表于 2015-3-24 05:47:03 | 只看该作者
那么,ASP.Net有哪些改进呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 22:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表