没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
基于 Socket 的网络编程
Socket又称为套接字,是采用客户 /服务器模型设计的网络通信接口。 Socket接口最早使
用在 Unix 系统中, Windows 提供的 Socket通信称为 WinSock,目前存在 v1.1 版本(被封装
在 WinSock.dll 动态链接库文件中)和 v2.0 版本(被封装在 WS2_32.dll 动态链接库文件中)。
v1.1 版本是针对 Internet 而设计的,在 v2.0 版本中已经不再局限于 TCP/IP 协议,而是根据
Microsoft 提出的 Windows 开放系统架构( Windows Open System Architecture,WOSA)模型,
定义了一个标准服务提供接口( Standard Service Provider Interface,SPI)。通过 SPI 编程接
口,WinSock 的应用范围扩大到绝大部分的网络和协议。
.NET Framework 在 System.Net.Sockets名空间提供了对 WinSock 的托管封装,提供
Socket、TcpListener、TcpClient、UdpClient 以及 NetworkStream 等类来实现 Socket网络通信。
类 说明
Socket
对 WinSock 的封装和扩展
TcpListener
封装使用 TCP 协议进行网络侦听的 Socket
TcpClient
封装使用 TCP 协议进行网络通信的 Socket
UdpClient
封装使用 UDP 协议进行网络通信的 Socket
NetworkStream
使用流的概念封装网络通信的数据
在这些类中, Socket类为核心类,它提供了使用 WinSock 进行网络通信的基本功能。
一、网络编程概念
网络中主机间的通信是通过网络协议实现的。目前,存在两种网络通信协议模型:开放
系统互连( Open System Interconnection,OSI)参考模型和 TCP/IP 模型。
1、 OSI 参考模型
OSI 参考模型是一个多层通信协议模型,所谓开放是指允许任意两个具有不同基本体系
结构的系统进行通信的一套协议族。 OSI 参考模型最初是由国际化标准组织( International
Standard Organization,ISO)开发, 1983 年成为国际标准。
OSI 参考模型将网络划分成 7 层,从上之下分别是:应用层( Application Layer )、表示
层(Presentation Layer)、会话层( Session Layer)、传输层( Transport Layer)、网络层
(Network Layer)、数据链路层( Data Link Layer)和物理层( Physical Layer)。其中,每
一层只与其上下两层直接通信,高层协议偏重于处理用户服务和各种应用请求,底层协议注
重于处理实际的信息传输。分层的目的是在于将各种特定的功能分离,并使其实现对其他层
来说是透明且相互独立的。
下图描述了一个包含通信子网的 OSI 网络通信模型。
(1)物理层
物理层定义了与物理介质的连接机制,而不是物理介质本身。按照 OSI 模型,物理层在
物理介质之上,它提供以比特( Bit )为单位形成比特流来传送来自数据链路层的数据,而
不理会数据的格式和含义,同样,当接受数据(比特流)时也不加分析直接传送到数据链路
层。即对二进制数据(比特)进行编码(发送到物理介质上)和解码(从物理介质上接受)。
如:以太网的曼切斯特编码,光纤分布式接口( Fiber Distributed Data Interface,FDDI )的
4B5B 编码。
物理层也负责通知数据链路层何时访问介质,如以太网的载波监听功能。此外,在某种
程度上,物理层也包含连接策略,主要有:电路交换、报文交换和分组交换。
(2)数据链路层
数据链路层也称为链路 控制层( Data Link Control Layer ,DLC ),负责管理数据格式、
链路的管理、相 邻网络 节点的信息流动以及流 量控 制。
在数据链路层中,数据 常以帧(Frame)为单位进行传输, 帧通常是由包含 起始 标志的
报头或 报头位、 寻址信息、 循环冗余 码(Cyclic Redundancy Check,CRC)组成。 循环冗余
码用来 保证帧 在传输过程中的 完整性 ,将无错 的帧发送到网络层。
OSI 模型中的数据链路层与电 气与电子 工程师协会( Institute of Electrical and Electronic
Engineers,IEEE)定义的有所不同。 IEEE 定义的数据链路层包含 逻辑 链路控制(Logical
Link Control Layer ,LLC )和介质访问 控制(Media Access Control Layer,MAC )。MAC 层
基本对应 OSI 模型中的数据链路层, LLC 层主要提供 可靠 的面向 连接服务与 无连接的数据报
服务, ISO 在这之上提供了两种网络层服务,即 面向 连接的网络服务和 无连接的网络服务。
(3)网络层
网络层提供 跨越多个网络的路由和 寻址 功能,使两个 终端 系统能 够以最 佳路径进行互连,
并具有一定的 堵塞控 制和流 量控 制能 力。
在网络层中,通 常以数据包( Packet)为单位传输数据。在数据包中 可以包含一个 16 位
的校验 和,但这个校验 和可能只能 保证 网络层包 头的信息,而不能 保证数据包信息。如: IP
协议( Internet Protocol)。
网络层的 端到端寻址 独立于数据链路层,网络层的 寻址 由网络标 识附 加主机标 识组成。
主机标 识指明网络 或子网中的一个 节点; 网络标 识可 能是子网化的 IP,单 调的 IPX(Internet
Packet Exchange),也 可能是层 次化的 DECnet(Digital Equipment Corporation's net)。路由
信息协议( Routing Information Protocol,RIP), 或开放式最 短路径优先 (Open Shortest
Path First,OSPF)这些协议将有 关网络标 识的信息 广播到其他路由器,以 便可 以转发相应
的数据包。
在网络 维护 中,所使用的 Ping 指令是在应用层直接使用网络层的 ICMP 协议( Internet
Control Message Protocol)的服务指 令。
(4)传输层
传输层是一个过 渡性 层次,在其下 3 层主要处理网络通信,发送 方和接 收方之间的每个
节点都必须执 行下 3 层的协议, 确保 数据被准 确有效地 传输 ;在传输层及其上 3 层主要为用
户提供服务, 工作于发送 节点 和接受 节点之上, 确保 数据被 正确接受,并 答复发送 节点。
传输层在两个通信系统之间 建立一 条通信链路,允许其上 3 层不受实际网络结构的 约束
执行各自的任务,同时 依靠其下 3 层控制实际的网络 操作,监 督数据从 源节点 出发,最 终到
达目标 节点。
传输层 还处理一些由网络层 引起 的错误 ,如包 丢失、重 复包等等,同时 还可 以对包进行
重新排序 、分 段(用于传输大的报文)和重装,这有 助于在网络发 生拥塞 时降低 发送数据的
速率。此外,传输层 还包括多路 复用、连接管理等。
(5)会话层
会话层提供 命名服务,实现 逻辑 名到网络 地址 的映射; 允许不同主机上的应用程 序进行
会话或建 立虚连接;为丢失的连接 事件提供 检查。
会话层使用 逻辑名或别名 建立会话,通 常在会话 建立之 后在数据报中 嵌入会话标 志。不
同系列的协议 都提供查找 与地址 相关逻辑 名的 方法 ,如: TCP/IP 协议族使用 域名服务系统
(Domain Name System,DNS),IPX/SPX 采用 NetWare 服务 广播 协议( Service Advertising
Protocol,SAP)。
会话层协议 还包括 NetBIOS(Network Basic Input and Output Service)、远程过程 调用
(Remote Procedure Call,RPC)等。
剩余19页未读,继续阅读
资源评论
maodi_lzc
- 粉丝: 1
- 资源: 3万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功