2022年C#网络编程系列专题一:网络协议简介 .pdf

上传人:C****o 文档编号:39895523 上传时间:2022-09-08 格式:PDF 页数:5 大小:276.86KB
返回 下载 相关 举报
2022年C#网络编程系列专题一:网络协议简介 .pdf_第1页
第1页 / 共5页
2022年C#网络编程系列专题一:网络协议简介 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年C#网络编程系列专题一:网络协议简介 .pdf》由会员分享,可在线阅读,更多相关《2022年C#网络编程系列专题一:网络协议简介 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、因为这段时间都在研究C#网络编程的一些知识,所以在这里把我学习到的在这里和大家分享下的,这样既可以达到分享的目的也可以让大家监督我,如果有什么地方理解错了,还请大家不吝赐教的。很多人写网络编程这快都没有怎么讲网络中的协议,然而我觉得既然是网络编程肯定要介绍下网络编程中一些协议的,这样可以让更好的梳理网络编程的知识的,所以我在这系列中会用两个专题去讲协议,第一个专题简单介绍网络分层以及各层之间如何通信的只是,第二专题将会介绍下应用层协议Http协议,了解这个不仅对网络编程有个理论基础,也可以帮助更好地理解Web(A)的开发。一、网络分层网络上的计算机之所以可以互相通信,是因为它们之间都遵守互相都

2、可以“认识”的互联网协议(就如同人交流一样,两个人能够交流,互相必须知道对象的语言),互联网上的计算机互相通信又归根于网络中层与层之间的通信,OSI 模型把网络通信分成七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,对于开发网络应用人员来说,http:/一般把网络分成五层,这样比较容易理解。这五层为:物理层、数据链路层、网络层、传输层和应用层(最顶层),下面是一张网络分层的图片(来源于网络):二、各层的协议网络中的计算机互相通信就是实现了层与层之间的通信,要实现层与层之间的通信,则各层都要遵守规则,这样才能完成更好的通信,我们就把它们之间遵守名师资料总结-精品资料欢迎下载-名

3、师精心整理-第 1 页,共 5 页 -的规则就叫个“协议”,然而网络上的五层之间遵守的协议不一样,每层都有各自的协议。下面就由下至上的讲述每层的协议2.1 物理层协议物理层是五层模型中的最底层,物理层为计算机之间的数据通信提供了传输媒体和互连设备,为数据传输提供了可靠的环境,媒体包括电缆、光纤、无线信道等,互连设备指是计算机和调制解调器之间的互连设备,如各种插头、插座等。该层的作用是透明的传输比特流(即二进制流),为数据链路层提供一个传输原始比特流的物理连接2.2 数据链路层数据链路层是模型中的第2 层,该层对接受到物理层传输过来的比特流进行分组,一组电信号构成的数据包,就叫做帧,数据链链路层

4、就是来传输以帧为单位的数据包,把数据传递给上一层(网络层),帧数据由两部分组成:帧头和帧数据,帧头包括接受方 物理地址(就是网卡的地址)和其他的网络信息,帧数据就是要传输的数据体。数据帧的最长为 1500 字节,如果数据很长,就必须分割成多个帧进行发送。2.3 网络层该层通过寻址(寻址地址)来建立两个节点之间的连接,大家都知道我们的电脑连接上网络后都一个IP 地址,我们可以通过IP 地址来确定不同的计算机是否在同一个子网路。如果我们的电脑连接上网络后就有两种地址:物理地址和网络地址(IP 地址),网络上的计算机要通信,http:/必须要知道通信的计算机“在哪里”,首先通过网络地址来判断是否处于

5、同一个子网络,然后再对物理地址(MAC)地址进行处理,从而准确确定要通信计算机的位置。在网络层中有我们熟悉的IP 协议(即规定网络地址的协议),目前广泛采用的是IP 协议第四版(IPv4),这个版本规定,网络地址由32 位二进制位组成。我们可以自己配置 IP 地址也可以自动获得的方式得到IP 地址,Ip 地址分成两部分,前 24 位代表网络,后 8 位代表主机号,如 192.168.254.1和 192.168.254.2就处于同一个子网络里,因为这两个IP 地址的前 24 位相同。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -网络层中以IP 数据包的形式来传递数据,

6、IP 数据包也包括两部分:头(Head)和数据(Data),IP 数据包放进数据帧中的数据部分进行传输。2.4 传输层通过 MAC 和 IP 地址,我们可以找到互联网上任意两台主机来建立通信。然而这里有一个问题,找到主机后,主机上有很多程序都需要用到网络,比如说你在一边听歌和好用 QQ 聊天,当网络上发送来一个数据包时,是怎么知道它是表示聊天的内容还是歌曲的内容的,这时候就需要一个参数来表示这个数据包是发送给那个程序(进程)来使用的,这个参数我们就叫做端口号,主机上用端口号来标识不同的程序(进程),端口是 0 到 65535之间的一个整数,0 到 1023的端口被系统占用,用户只能选择大于10

7、23 的端口。传输层的功能就是建立端口到端口的通信,网络层就是建立主机与主机的通信,这样如果我们确定了主机和端口,这样就可以实现程序之间的通信了。我们所说的 Socket编程就是通过代码来实现传输层之间的通信。因为初始化 Socket 类对象要指定 IP 地址和端口号。在传输层有两个非常重要的协议:UDP 协议和 TCP 协议采用 UDP 协议话传输的就是UDP 数据包,同样 UDP 数据包也由头和数据两部分组成,头部分主要标识了发送端口和接受端口,数据部分就是具体的内容信息。同样 UDP 数据包是放入 IP 数据包中的 数据 部分,IP 数据包再放入数据帧中在网络上传输。由于 UDP 协议的

8、可靠性差(数据发送后无法确定对方是否收到),所以又定义了一个可靠性高的协议 TCP 协议,TCP 协议采取了握手的方式要确保对方收到了数据。2.5 应用层应用层是模型中的最顶层,是用户与网络的接口,该层通过应用程序来完成网络用户的应用需求。该层的数据放在TCP 数据包的数据部分,该层定义了一个很重要的协议 Http 协议,我们一般的Web 开发都是基于应用层的开发,所以后面专题将会和大家介绍下Http协议。理解Http 协议可以帮助我们理解A的请求响应模型以及帮助我们自定义发出请求和自定义服务器。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -三、总结现在通过一个简单的

9、访问网页的例子来说明网络中的通信。当我们在浏览器中输入时,这意味着浏览器要向百度发送一个网页数据包,要发送数据包,需要知道对方的IP 地址,这里我们只知道网址为,却不知道 IP 地址,此时应用层协议DNS 协议会帮我们把网址解析为 IP 地址,此时会发送一个DNS 数据包给 DNS 服务器,DNS 服务器再做出响应来告诉我们百度的IP 地址为 220.181.111.147,这样我们就知道百度(我们需要通信的主机)的IP 地址。应用层:浏览网页采用的是HTTP 协议,HTTP 数据包会嵌入在TCP 数据包中,此时我们发送的 HTTP 数据包内容为:GET http:/ User-Agent:M

10、ozilla/4.0(compatible;MSIE 7.0;Windows NT 6.1;WOW64;Trident/5.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;.NET4.0C;.NET4.0E;Zune 4.7;InfoPath.3;MS-RTC LM 8)Accept-Encoding:gzip,deflate,peerdist Proxy-Connection:Keep-Alive Host: Cookie:BDSFRCVID=H1K_JgC2l434o0

11、a3SlYrhIyDwFLxPM7C3J;H_BDCLCKID_SF=tJAt_C8htDv5HTuRj63D5JcH-UnLqMkDWaOZ0h8-aI-5MbAx-jb6hhFXM-r80nblBTbT2C3nthF0HPonHj8Bej5L3J;BAIDUID=C0E879D1A40237E70E9FA559D40EE0AC:FG=1;BDUT=w5n3C0E879D1A40237E70E9FA559D40EE0AC13914a661370;BDUSS=FEQVdNdjllMTYyYlRxY3ZZbW1hM2htemdqZFVJcWRLWmFBaEtqd1FoTDNXeE5SQUFBQU

12、FBJCQAAAAAAAAAAAoqyysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEwLjI2LjE5Ny43NwAAAADAxFInAAAAAPcNJlD3DSZQYV;BDRCVFReYjbPwSqvSs=2g3v5sBI-NCpv4EILPoXi4WUvY;Hm_lvt_9f14aaa038bbba8b12ec2a4a3e51d254=1344671219756;Hm_lpvt_9f14aaa038bbba8b12ec2a4a3e51d254=1344671219756 X-P2P-PeerDist:Versi

13、on=1.0名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -传输层: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 数据包嵌

14、入到数据帧(以太网数据包)中,以太网数据包需要知道双方的MAC(物理地址),发送方为本机的网卡地址,接受方为网关192.168.1.1的 MAC 地址(通过 ARP 地址解析协议得到的)。这样数据帧由头部(MAC 地址)+IP 数据包组成。经过多个网关的转发到百度服务器220.181.111.147,服务器接受到发送过来的以太网数据包,然后再从以太网数据包中提取IP 数据包 TCP 数据包 HTTP数据包,最后服务器做出HTTP 响应,再用 TCP 协议发回给客户端(浏览器),浏览器同样的过程读取到HTTP 响应的内容(HTTP 响应数据包),然后浏览器对接受到的HTML页面进行解析,把网页显示出来呈现给用户,这样就完成了一次网络通信了。后面一个专题将对HTTP 协议进行详细的介绍。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁