网络原理和协议(新手篇)


 协议的一些特性:
     1、 面向消息:网络之间传输的就是消息,通过消息进行通信
     2、 面向连接和无连接:
           a) 连接(TCP):必须先建立连接后才能进行通信,即上一条消息通信
          b) 无连接(UDP):不管三七二十一发消息发过去就好了,不关心客户端能否接到到发出的信息,发        邮件即使如此,网那个地址发就好了
    3、 可靠性和次序性:它与第二条关系密切,有怎么样的连接就有怎么样的可靠性
    4、 从容关闭:面向连接的特性,在结束发送是会想客户端发送结束发送标志
    5、 广播数据
    6、 多播数据:广播的扩展,指定广播的地址
    7、 服务质量(QOS)
    8、 部分消息:只用于面向连接的特性,这就是我们建立TCP连接时,接受数据长度过长,可以在下一次接      收中接收,协议会告诉我们还有信息没有接收完毕
    9、 路由选择的考虑:

 协议的类型:
    1、 IP
    2、 红外线套接字
    3、 IPX/SPX:互联网包交换,提供两个进程间的无连接通信,它是Novell公司为了适应网络的发展而开发的通信协议,具有很强的适应性,安装方便,同时还具有路由功能,可以实现多网段间的通信。其中,IPX协议负责数据包的传送;SPX负责数据包传输的完整性。在微软的NT操作系统中,一般使用NWLink IPX/SPX兼容协议和NWLink NetBIOX两种IPX/SPX的兼容协议,即NWLink协议,该兼容协议继承了IPX/SPX协议的优点,更适应Windows的网络环境。IPX/SPX协议一般可以应用于大型网络(比如Novell)和局域网游戏环境中(比如反恐精英、星际争霸)。不过,如果不是在Novell网络环境中,一般不使用IPX/SPX协议,而是使用IPX/SPX兼容协议,尤其是在Windows 9x/2000组成的对等网中
    4、 NetBIOS:在前面的上一骗NetBOIS中已详细说明
    5、 AppleTalk:AppleTalk 是由 Apple 公司推出的一种多层协议,支持网络路由选择、事务服务、数据流服务以及域名服务,并且通过 Apple 硬件中的 LocalTalk 接口全面实现 Apple 系统间的文件和打印共享服务。通过以太网网桥使用 LocalTalk 或者 Apple 机制提供以太网扩展板(add-in boards)等途径能够实现其它网络媒体(如以太网)与 AppleTalk 之间的连接。另外 AppleTalk 协议中包含很多第三方(third-party)应用程序。
    6、 ATM(Asynchronous Transfer Mode)异步传输模式):流媒体传输使用(语音,图象,文件传输)
 

Windows 环境下可以通过WSAEnumProtocols 获取协议支持的协议:
 int WSAEnumProtocols(
  LPINT lpiProtocols,
  LPWSAPROTOCOL_INFO lpProtocolBuffer,
  LPDWORD lpdwBufferLength
);
 WSAPROTOCOL_INFO返回的就是协议的信息:
 typedef struct _WSAPROTOCOL_INFO {
  DWORD dwServiceFlags1;
  DWORD dwServiceFlags2;
  DWORD dwServiceFlags3;
  DWORD dwServiceFlags4;
  DWORD dwProviderFlags;
  GUID ProviderId;
  DWORD dwCatalogEntryId;
  WSAPROTOCOLCHAIN ProtocolChain;
  int iVersion;
  int iAddressFamily;
  int iMaxSockAddr;
  int iMinSockAddr;
  int iSocketType;
  int iProtocol;
  int iProtocolMaxOffset;
  int iNetworkByteOrder;
  int iSecurityScheme;
  DWORD dwMessageSize;
  DWORD dwProviderReserved;
  TCHAR szProtocol[WSAPROTOCOL_LEN+1];
} WSAPROTOCOL_INFO, 
*LPWSAPROTOCOL_INFO;

主要的字段如下:
   1、 dwServiceFlags1,不同协议属性的一个位字段
   2、 iProtocol:定义该条目属于哪个协议
   3、 iSocketType:定义套间字类型
   4、 iAddressFamily:区分正确协议的定义结构

 WSADATA wd; 
 WSAStartup(MAKEWORD(2,2),&wd);

 LPWSAPROTOCOL_INFO lpInfo = new WSAPROTOCOL_INFO;
 //memset(&info, 0, sizeof(WSAPROTOCOL_INFO));

// must set MAX
   DWORD dwLength = 25600;
   int iRet = WSAEnumProtocols(NULL, lpInfo, &dwLength);
   if ( iRet != SOCKET_ERROR )
  {
  }

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值