欢迎来到天天文库
浏览记录
ID:18511467
大小:73.00 KB
页数:5页
时间:2018-09-19
《[c#网络编程系列]专题一:网络协议简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、因为这段时间都在研究C#网络编程的一些知识,所以在这里把我学习到的在这里和大家分享下的,这样既可以达到分享的目的也可以让大家监督我,如果有什么地方理解错了,还请大家不吝赐教的。很多人写网络编程这快都没有怎么讲网络中的协议,然而我觉得既然是网络编程肯定要介绍下网络编程中一些协议的,这样可以让更好的梳理网络编程的知识的,所以我在这系列中会用两个专题去讲协议,第一个专题简单介绍网络分层以及各层之间如何通信的只是,第二专题将会介绍下应用层协议——Http协议,了解这个不仅对网络编程有个理论基础,也可以帮助更好地理解Web(Asp.net)的开发。 一、网络分层 网络上的计算机之所以
2、可以互相通信,是因为它们之间都遵守互相都可以“认识”的互联网协议(就如同人交流一样,两个人能够交流,互相必须知道对象的语言),互联网上的计算机互相通信又归根于网络中层与层之间的通信,OSI模型把网络通信分成七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,对于开发网络应用人员来说,http://qianming.qqq23.com一般把网络分成五层,这样比较容易理解。这五层为:物理层、数据链路层、网络层、传输层和应用层(最顶层),下面是一张网络分层的图片(来源于网络): 二、各层的协议网络中的计算机互相通信就是实现了层与层之间的通信,要实现层与层之间的通信,
3、则各层都要遵守规则,这样才能完成更好的通信,我们就把它们之间遵守的规则就叫个“协议”,然而网络上的五层之间遵守的协议不一样,每层都有各自的协议。下面就由下至上的讲述每层的协议2.1物理层协议物理层是五层模型中的最底层,物理层为计算机之间的数据通信提供了传输媒体和互连设备,为数据传输提供了可靠的环境,媒体包括电缆、光纤、无线信道等,互连设备指是计算机和调制解调器之间的互连设备,如各种插头、插座等。该层的作用是透明的传输比特流(即二进制流),为数据链路层提供一个传输原始比特流的物理连接2.2数据链路层数据链路层是模型中的第2层,该层对接受到物理层传输过来的比特流进行分组,一组电
4、信号构成的数据包,就叫做"帧",数据链链路层就是来传输以"帧"为单位的数据包,把数据传递给上一层(网络层),帧数据由两部分组成:帧头和帧数据,帧头包括接受方物理地址(就是网卡的地址)和其他的网络信息,帧数据就是要传输的数据体。数据帧的最长为1500字节,如果数据很长,就必须分割成多个帧进行发送。 2.3网络层该层通过寻址(寻址地址)来建立两个节点之间的连接,大家都知道我们的电脑连接上网络后都一个IP地址,我们可以通过IP地址来确定不同的计算机是否在同一个子网路。如果我们的电脑连接上网络后就有两种地址:物理地址和网络地址(IP地址),网络上的计算机要通信,http://tx.
5、qqlove789.com必须要知道通信的计算机“在哪里”,首先通过网络地址来判断是否处于同一个子网络,然后再对物理地址(MAC)地址进行处理,从而准确确定要通信计算机的位置。在网络层中有我们熟悉的IP协议(即规定网络地址的协议),目前广泛采用的是IP协议第四版(IPv4),这个版本规定,网络地址由32位二进制位组成。我们可以自己配置IP地址也可以自动获得的方式得到IP地址,Ip地址分成两部分,前24位代表网络,后8位代表主机号,如192.168.254.1和192.168.254.2就处于同一个子网络里,因为这两个IP地址的前24位相同。网络层中以IP数据包的形式来传递数
6、据,IP数据包也包括两部分:头(Head)和数据(Data),IP数据包放进数据帧中的数据部分进行传输。2.4传输层通过MAC和IP地址,我们可以找到互联网上任意两台主机来建立通信。然而这里有一个问题,找到主机后,主机上有很多程序都需要用到网络,比如说你在一边听歌和好用QQ聊天,当网络上发送来一个数据包时,是怎么知道它是表示聊天的内容还是歌曲的内容的,这时候就需要一个参数来表示这个数据包是发送给那个程序(进程)来使用的,这个参数我们就叫做端口号,主机上用端口号来标识不同的程序(进程),端口是0到65535之间的一个整数,0到1023的端口被系统占用,用户只能选择大于1023
7、的端口。传输层的功能就是建立端口到端口的通信,网络层就是建立主机与主机的通信,这样如果我们确定了主机和端口,这样就可以实现程序之间的通信了。我们所说的Socket编程就是通过代码来实现传输层之间的通信。因为初始化Socket类对象要指定IP地址和端口号。在传输层有两个非常重要的协议:UDP协议和TCP协议采用UDP协议话传输的就是UDP数据包,同样UDP数据包也由头和数据两部分组成,头部分主要标识了发送端口和接受端口,数据部分就是具体的内容信息。同样UDP数据包是放入IP数据包中的"数据"部分,IP数据包再放入数据
此文档下载收益归作者所有