Socket网络编程
重点概念介绍:
字节排序:分主机字节序(little-endian)和网络字节序(big-endian)。
窗口大小:接受端会对窗口大小进行调节,以指示接受端可以接受多少数据。
如果有大量数据涌入接收端,接收端就会将窗口大小设为0,为挂起的数据做好准备。
对发送端来说,这样会强制它在收到一个新的大于0的窗口大小之前,不得在发送数据。
协议服务提供程序分为两种类型: 基础提供程序和分层提供程序。
基础提供程序:位于传输协议的顶端,如TCP/IP,UDP/IP提供程序,RSVP(资源保留协议)提供程序,一般为MSAFD.dll和MSWSOCK.DLL组成。
分层提供程序: 位于WS2_32.dll之下,基础服务提供程序之上,能截获并操纵Winsock调用。
注:Windows NT传输协议没有类似于Winsock的接口,这使得应用程序无法使用Winsock接口同传输协议通信,以致编写了一个AFD.SYS驱动程序来模拟 Winsock套接字和Winsock接口,以便同传输协议通信。
Winsock系统体系结构图:
应用程序---->WS2_32.dll---->分层提供程序---->基础提供程序---->Windows套接字内核模式驱动程序(AFD.SYS)---->传输协议驱动程序(TCP/ATM)