.net网络编程(OSI 7层模型和协议)

 
一.OSI 7层模型
应用(Application)层为用户应用程序定义了一个到网络的编程接口。
表示(Presentation)层负责对来自应用层的数据进行编码,准备通过网络来传输,反之亦然。表示层将数据按照应用程序的需求进行格式化,在这层中会发生加密、解密和压缩之类的操作。
会话(Session)层在应用程序之间创建一个虚拟连接。会话层为应用程序定义服务,会话代表应用程序之间的一个虚拟(逻辑)连接。会话层连接独立于传输层上的底层物理连接。
传输(Transport)层提供了可靠的数据通信。传输层通过终端来标识应用程序。对于TCP协议,终端是通过端口号和IP地址的组合给出的。传输层区分网络通信的方式是将他们分成面向连接和无连接,对于面向连接的通信,必须先建立一个连接,然后才能够发送或者接收消息(TCP协议),对于无连接通信,不必建立单个的连接,并且消息的发送是即时的(UDP协议)。
网络(Network)层使得能够利用逻辑寻址来访问LAN中的节点。当访问WAN中的节点时,我们必须使用第三层的寻址。ICMP、IP、IGMP都是这层的协议。路由器工作在这层,用于在网络之间传送通信量。
数据链路(Data Link)层用物理地址访问物理网络。MAC地址就是这层的,LAN上的节点利用IP地址相互发送消息,这些地址必须由数据链路层来转换成相应的MAC地址。
Address Resolution Protocol(地址解析协议,简写ARP)将IP地址转换成MAC地址。网络交换机工作在数据链路层,它依照接收方的MAC地址筛选消息。MAC只能在
LAN中使用。
物理(Physical)层包括连接器、电缆等。
在发送方发送数据后,每到一层都会添加一个报头,只有物理层不进行添加。之后在接受方在逐次去掉相对应的报头,最后转换成数据给接受方。
HTTP、FTP、SMTP、RIP、DNS这些协议都在应用、表示、会话这三层上。
二.网络协议
IP(Internet Protocol  网际协议)连接两个节点。每个节点都由一个32位地址来标识。当发送消息时,IP协议从较高级的协议(TCP或UDP)接受消息,并添加包含有关目标主机信息的IP报头。
TCP(传输控制协议),TCP要求在发送数据之前必须打开连接。服务器应用程序必须执行一个称作被动打开(passive open)的操作,以利用一个已知的端口号创建一个连接,这时,服务器并不是对网络进行呼叫,而是侦听并等待引入的请求。客户应用程序必须执行一个主动打开(active open),为此,它向服务器应用程序发送一个同步序列号(SYN)以标识连接。客户应用程序可以将动态端口号作为本地的端口使用。服务器必须向客户发送一个确认(ACK)以及服务器的序列号(SYN),随后,客户恢复一个ACK,这样就建立连接了。如果在收到ACK之前发送方已经超时,则消息将被放到重发队列中以再次发送。
UDP(用户数据报协议),UDP是一个速度很快的协议,因为它仅仅指定了数据传输所需要的最低机制,它的缺点,消息接收顺序不确定,第一个发送的消息可能最后一个被接到。消息可能丢失,也可能同时接收到2个相同的消息。在发送多播和广播时,我们通常不希望从每个节点都返回一个确认,这样将使服务器超负荷,并且网络负荷变大,所以在这个情况下使用UDP协议是很好的选择。
ICMP(Internet控制消息协议)是一个控制协议,IP设备用来向其他的IP设备通知网络中的活动和错误。如果没有TCP协议,则IP并不是一个可靠的协议,并且没有确认,没有数据的错误控制功能(只有一个报头校验和),也不能重新传输。ICMP消息在IP报头的内部发送,ICMP消息来发送的类型:响应和响应回复,目标不可达和重定向,超时。在用PING命令时会发送4个ICMP消息。
IGMP(Internet组管理协议)是IP协议的一个扩充,必须由IP模块来实现。多播应用程序使用IGMP,利用IGMP消息发送对某个多播地址的一组成员请求,这样就能够注册某条多播消息,也可以使用IGMP取消成员的关系。
FTP(File Transfer Protocol 文件传输协议)用于将文件复制到服务器,反之亦然。他还能列举服务器上的文件和目录。他是一个基于TCP的应用层协议,FTP命令封装在TCP消息的TCP数据块中。
HTTP(Hypertext Transfer Protocol 超文本传输协议)HTTP是一个可靠的协议,这通过使用TCP来实现,HTTP具有:缓存、客户应用程序身份识别、支持各种MIME格式的不同附件等。
HTTPS(SSL上的HTTP)如果需要与WEB服务器交换机密数据,则可以使用HTTPS,SSL(Secure Socket Layer 安全套接字层),SSL在TCP之上,他使用一个公钥/私钥原理来交换保密的对称密钥,用一个对称密钥来加密消息。想要支持HTTPS,WEB服务器必须安装一个证书,HTTPS默认端口是443。
SMTP(Simple Mail Transfer Protocol 简单邮件传输协议)是一个用于发送和接受邮件消息的协议。SMTP不允许我们从邮件服务器读取消息,为此需要使用POP3或者IMAP协议。
POP3(Post Office Protocol 邮局协议)是为断开环境设计的。利用POP3,客户可以访问服务器,并获取服务器为其所保留的消息。
IMAP(Internet Message Access Protocol Internet消息访问协议)用来访问邮件服务器上的邮件,IMAP客户可以有脱机模式,这时可以在本地机器上对邮件进行操作。IMAP使客户能够对远程邮箱进行操作,就像是本地操作邮箱一样。
NNTP(Network News Transfer Protocol 网络新闻传输协议)是一个用于提交,中继和获取消息的应用层协议,该协议提供了能够访问新闻服务器并且从中获取选定消息的客户应用程序,并且还支持服务器到服务器的消息传输。
SNMP(Simple Network Management Protocol 简单网络管理协议)可以对网络上的设备进行管理。SNMP的目的在于利用性能问题和故障触发的警报来有效的管理设备,并且允许对设备进行配置。与网络设备相关联的SNMP代理将有一个MIB(Management Information Base 管理信息库)数据库,它将面向对象的方式包含了该设备的可管理信息。SNMP客户通过发送SNMP GET 请求来访问数据库中的信息,用SNMP SET 请求配置MIB数据库。
Telnet协议,该协议使我们能够利用用户身份验证连接到一个远程系统,然后从一个控制台环境远程调用命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值