基于winsock2网络编程学习入门
1 网络模型
OSI参考模型将计算机网络层次结构模型分为七层:
2 TCP/IP协议
其最早原型为美国军方的ARPANET,TCP/IP 协议实际上就是在物理网上的一组完整的网络协议,TCP为传输层协议,IP为网络层协议。TCP/IP 协议包括以下协议
IP :网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。 同时为 ICMP ,TCP, UDP 提供分组发送服务。用户进程通常不需要涉及这一层。
ARP: 地址解析协议(Address Resolution Protocol)此协议将网络地址映射到硬件地址。
RARP : 反向地址解析协议(Reverse Address Resolution Protocol)此协议将硬件地址映射到网络地址
TCP: 传送控制协议(Transmission Control Protocol)这是一种提供给用户进程的可靠的全双工字节流面向连接的协议。 它要为用户进程提供虚电路服务,并为数据可靠传输建立检查。 (注:大多数网络用户程序使用 TCP)
UDP: 用户数据报协议(User Datagram Protocol)这是提供给用户进程的无连接协议,用于传送数据而不执行正确性检查。
FTP : 文件传输协议(File Transfer Protocol)允许用户以文件操作的方式(文件的增、删、改、查、传送等)与另一主机相互通信。
TELNET:终端协议(Telnet Terminal Procotol)允许用户以虚终端方式访问远程主机
HTTP: 超文本传输协议(Hypertext Transfer Procotol)
OSI与TCP/IP的对应关系如图:
TCP/IP 协议的核心部分是传输层协议(TCP 、UDP),网络层协议(IP) 和物理接口层, 这三 层通常是在操作系统内核中实现。因此用户一般不涉及。编程时,编程界面有两种形式:一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函 数。前者为核内实现, 后者为核外实现。 用户服务要通过核外的应用程序才能实现, 所以要使用套接字(socket)来实现。TCP/IP 协议核心与应用程序关系如图