网络编程 前篇--计算机网络知识

OSI模型把网络通信分成七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,对于开发网络应用人员来说,一般把网络分成五层,这样比较容易理解。这五层为:物理层、数据链路层、网络层、传输层和应用层(最顶层)

1 物理层协议

物理层是五层模型中的最底层,物理层为计算机之间的数据通信提供了传输媒体和互连设备,为数据传输提供了可靠的环境,媒体包括电缆、光纤、无线信道等,互连设备指是计算机和调制解调器之间的互连设备,如各种插头、插座等。该层的作用是透明的传输比特流(即二进制流),为数据链路层提供一个传输原始比特流的物理连接

2 数据链路层

数据链路层是模型中的第2层,该层对接受到物理层传输过来的比特流进行分组,一组电信号构成的数据包,就叫做"帧",数据链链路层就是来传输以"帧"为单位的数据包,把数据传递给上一层(网络层),帧数据由两部分组成:帧头和帧数据,帧头包括接受方物理地址(就是网卡的地址)和其他的网络信息,帧数据就是要传输的数据体。数据帧的最长为1500字节,如果数据很长,就必须分割成多个帧进行发送。

3 网络层
提供IP寻址和路由 网络上的数据可以通过多条线路达到目的地 网络层负责找出最佳的传输路径

该层通过寻址(寻址地址)来建立两个节点之间的连接,大家都知道我们的电脑连接上网络后都一个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数据包放进数据帧中的数据部分进行传输。
4 传输层

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

传输层的功能就是建立端口到端口的通信,网络层就是建立主机与主机的通信,这样如果我们确定了主机和端口,这样就可以实现程序之间的通信了。我们所说的Socket编程就是通过代码来实现传输层之间的通信。因为初始化Socket类对象要指定IP地址和端口号。

在传输层有两个非常重要的协议:UDP 协议和TCP协议

采用UDP协议话传输的就是UDP数据包,同样UDP数据包也由头和数据两部分组成,头部分主要标识了发送端口和接受端口,数据部分就是具体的内容信息。同样UDP数据包是放入IP数据包中的"数据"部分,IP数据包再放入数据帧中在网络上传输。

由于UDP协议的可靠性差(数据发送后无法确定对方是否收到),所以又定义了一个可靠性高的协议——TCP协议,TCP协议采取了握手的方式要确保对方收到了数据。
TCP:面向连接可靠性传输协议 首先通过三步握手 确定双方连接 然后具有数据确认和数据重传的机制 确保数据一定能到达通信的对方
UDP:是无连接 不可靠的传输协议 才用UDP的时候 不需要建立连接 直接向一个IP地址发送数据包  虽然UDP有很多缺点 但是实时性比较高 对于一些实时性比较高的场合 应该使用UDP

5 应用层

应用层是模型中的最顶层,是用户与网络的接口,该层通过应用程序来完成网络用户的应用需求。该层的数据放在TCP数据包的数据部分,该层定义了一个很重要的协议——Http协议,我们一般的Web开发都是基于应用层的开发, 所以后面专题将会和大家介绍下Http协议。理解Http协议可以帮助我们理解Asp.net的请求响应模型以及帮助我们自定义发出请求和自定义服务器。
除了Http协议(超文本传输协议) 还有远程登录协议Telnet  文件传输协议FTP 域名服务DNS 简单邮箱传输协议SMTP  邮局协议POP3
简单的说 上网页就是用Http协议 从网络上下载文件用FTP协议 解析域名 是有DNS 发送邮件使用SMTP 接受邮件使用POP3协议 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值