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

上传人:Che****ry 文档编号:34269896 上传时间:2022-08-15 格式:PDF 页数:5 大小:276.81KB
返回 下载 相关 举报
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 物理层协议物理层是五层模型中的最底层, 物理层为计算机之间的数据通信提供了传输媒体和互连设备, 为数据传输提供了可靠的环境, 媒体包括电缆、 光纤、无线信道等,互连设备指是计算机和调制解调器之间的互连设备,如各种插头、 插座等。该层的作用是透明的传输比特流 (即二进制流) ,为数据链

4、路层提供一个传输原始比特流的物理连接2.2 数据链路层数据链路层是模型中的第2 层,该层对接受到物理层传输过来的比特流进行分组,一组电信号构成的数据包,就叫做帧,数据链链路层就是来传输以帧为单位的数据包,把数据传递给上一层(网络层),帧数据由两部分组成:帧头和帧数据,帧头包括接受方 物理地址( 就是网卡的地址 )和其他的网络信息,帧数据就是要传输的数据体。 数据帧的最长为 1500 字节,如果数据很长, 就必须分割成多个帧进行发送。2.3 网络层该层通过寻址(寻址地址)来建立两个节点之间的连接,大家都知道我们的电脑连接上网络后都一个IP 地址,我们可以通过IP 地址来确定不同的计算机是否在同一

5、个子网路。如果我们的电脑连接上网络后就有两种地址:物理地址和网络地址(IP 地址),网络上的计算机要通信,http:/必须要知道通信的计算机“ 在哪里 ” ,首先通过网络地址来判断是否处于同一个子网络,然后再对物理地址 (MAC )地址进行处理,从而准确确定要通信计算机的位置。在网络层中有我们熟悉的IP 协议(即规定网络地址的协议),目前广泛采用的是IP 协议第四版( IPv4 ),这个版本规定,网络地址由32 位二进制位组成。我们可以自己配置 IP 地址也可以自动获得的方式得到IP 地址,Ip 地址分成两部分, 前 24 位代表网络,后 8 位代表主机号,如 192.168.254.1和 1

6、92.168.254.2就处于同一个子网络里,因为这两个IP 地址的前 24 位相同。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 网络层中以IP 数据包的形式来传递数据,IP 数据包也包括两部分:头(Head )和数据(Data),IP 数据包放进数据帧中的数据部分进行传输。2.4 传输层通过 MAC 和 IP 地址,我们可以找到互联网上任意两台主机来建立通信。然而这里有一个问题, 找到主机后, 主机上有很多程序都需要用到网

7、络,比如说你在一边听歌和好用 QQ 聊天, 当网络上发送来一个数据包时,是怎么知道它是表示聊天的内容还是歌曲的内容的,这时候就需要一个参数来表示这个数据包是发送给那个程序(进程)来使用的,这个参数我们就叫做端口号,主机上用端口号来标识不同的程序 (进程),端口是 0 到 65535之间的一个整数, 0 到 1023的端口被系统占用,用户只能选择大于1023 的端口。传输层的功能就是建立端口到端口的通信,网络层就是建立主机与主机的通信,这样如果我们确定了主机和端口,这样就可以实现程序之间的通信了。我们所说的 Socket编程就是通过代码来实现传输层之间的通信。因为初始化 Socket 类对象要指

8、定 IP 地址和端口号。在传输层有两个非常重要的协议:UDP 协议和 TCP 协议采用 UDP 协议话传输的就是UDP 数据包,同样 UDP 数据包也由头和数据两部分组成, 头部分主要标识了发送端口和接受端口,数据部分就是具体的内容信息。同样 UDP 数据包是放入 IP 数据包中的 数据 部分, IP 数据包再放入数据帧中在网络上传输。由于 UDP 协议的可靠性差(数据发送后无法确定对方是否收到),所以又定义了一个可靠性高的协议 TCP 协议, TCP 协议采取了握手的方式要确保对方收到了数据。2.5 应用层应用层是模型中的最顶层,是用户与网络的接口,该层通过应用程序来完成网络用户的应用需求。

9、该层的数据放在TCP 数据包的数据部分,该层定义了一个很重要的协议 Http 协议,我们一般的Web 开发都是基于应用层的开发,所以后面专题将会和大家介绍下Http协议。理解Http 协议可以帮助我们理解A的请求响应模型以及帮助我们自定义发出请求和自定义服务器。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 三、总结现在通过一个简单的访问网页的例子来说明网络中的通信。当我们在浏览器中输入时,这意味着浏览器要向百度发送一个网页数据

10、包,要发送数据包,需要知道对方的IP 地址,这里我们只知道网址为,却不知道 IP 地址,此时应用层协议DNS 协议会帮我们把网址解析为 IP 地址,此时会发送一个DNS 数据包给 DNS 服务器, DNS 服务器再做出响应来告诉我们百度的IP 地址为 220.181.111.147,这样我们就知道百度(我们需要通信的主机)的IP 地址。应用层:浏览网页采用的是HTTP 协议, HTTP 数据包会嵌入在TCP 数据包中,此时我们发送的 HTTP 数据包内容为:GET http:/ HTTP/1.1Accept: application/x-ms-application, image/jpeg,

11、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; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.3072

12、9; .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_JgC2l434o0a3SlYrhIyDwFLxPM7C3J; H_BDCLCKID_SF=tJAt_C8htDv5HTuRj63D5JcH-UnLqMkDWaOZ0h8-aI-5MbAx-jb6hhFXM

13、-r80nblBTbT2C3nthF0HPonHj8Bej5L3J; BAIDUID=C0E879D1A40237E70E9FA559D40EE0AC:FG=1; BDUT=w5n3C0E879D1A40237E70E9FA559D40EE0AC13914a661370; BDUSS=FEQVdNdjllMTYyYlRxY3ZZbW1hM2htemdqZFVJcWRLWmFBaEtqd1FoTDNXeE5SQUFBQUFBJCQAAAAAAAAAAAoqyysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEwLjI2LjE

14、5Ny43NwAAAADAxFInAAAAAPcNJlD3DSZQYV; BDRCVFReYjbPwSqvSs=2g3v5sBI-NCpv4EILPoXi4WUvY; Hm_lvt_9f14aaa038bbba8b12ec2a4a3e51d254=1344671219756; Hm_lpvt_9f14aaa038bbba8b12ec2a4a3e51d254=1344671219756 X-P2P-PeerDist: Version=1.0名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第

15、 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 数据包嵌入到数据帧(以太网

16、数据包)中,以太网数据包需要知道双方的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 淘文阁