在程序设计中,网络编程占据了很重要的位置,尤其是Windows平台上,Socket编程便是网络程序设计的首要选择。由于MS已经将Socket进行自定义封装,并定义在WS2_32.dll库中,因此在Windows平台上可以使用WinSock进行开发。
1、 网络模型
(1) OSI参考模型
OSI参考模型是由国际标准化组织(ISO,International Organization for Standardization)制定的,是一种理想化的模型。该模型主要由7层构成,包括:应用层、表示层、会话层、传输层、网络层、链路层、物理层。
(2) TCP/IP参考模型
TCP/IP参考模型是目前应用最为广泛的一种模型,主要包括:应用层、传输层、网络层、链路层、物理层。
2、 网络协议
(1) TCP协议
TCP协议又称传输控制协议,是一种提供可靠数据传输的通行协议,是TCP/IP体系结构中传输层上的协议。
Typedef struct HeadTCP{
WORD SourcePort; // 源端口号
WORD DePort; // 目的端口
DWORD SequenceNo; // 序号
DWORD ConfirmNo; // 确认序号
BYTE HeadLen;
BYTE Flag;
WORD WndSize; // 窗口大小
WORD CheckSum; // 校验和
WORD UrgPtr; // 紧急指针
}HEADTCP;
(2) UDP协议
UDP协议又称用户数据报协议,是一种面向无连接的不可靠协议。
Typedef struct HeadUDP{
WORD SourcePort; // 源端口
WORD DePort; // 目的端口
WORD Len; // UDP长度
WORD ChkSun; // UDP校验和
}HEADUDP;
(3) IP协议
IP协议又称网际协议,它工作在网络层,主要提供无连接的数据报传输。
Typedef struct HeadIP{
Unsigned char headerlen:4; // 首部长度
Unsigned char version:4; // 版本
Unsigned char servertype; // 服务类型
Unsigned short totallen; // 总长度
Unsigned short id; // 与idoff构成标识
Unsigned short idoff;
Unsigned char ttl; // 生存时间
Unsigned char proto; // 协议
Unsigned short checksum; // 首部检验和
Unsigned int s