
目录
1.基础概述 ...................................................................................................................................................................... 5
1.1.网络协议层次模型 ..................................................................................................................................... 5
1.1.1.OSI 七层模型 .................................................................................................................................. 5
1.1.2.TCP/IP 四层模型 ........................................................................................................................... 7
1.1.3.TCP/IP 通信模型示例 .................................................................................................................. 9
1.1.4.IP,ICMP, ARP 和 MAC 地址的概述 ....................................................................................... 11
1.1.5.常见网络设备工作的层次....................................................................................................... 11
1.2.TCP 协议概述 ............................................................................................................................................. 12
1.2.1.TCP 协议头部结构 ...................................................................................................................... 12
1.2.2.TCP 协议实现传输可靠性方式-分段传输 .......................................................................... 13
1.2.3.TCP 协议实现传输可靠性方式-滑动窗口 .......................................................................... 14
1.2.4.TCP 协议实现传输可靠性方式-三次握手 .......................................................................... 15
1.2.5.TCP 协议实现传输可靠性方式-四次挥手 .......................................................................... 16
1.2.6.SYN 洪泛攻击 ............................................................................................................................... 18
1.2.7.TCB 概述 ........................................................................................................................................ 18
1.3.UDP 协议 ...................................................................................................................................................... 20
1.3.1.UDP 协议头部结构 ...................................................................................................................... 21
1.3.2.UDP 协议和 TCP 协议的优缺点分析 ..................................................................................... 21
1.4.SCTP 协议 .................................................................................................................................................... 22
1.4.1.常见因特网应用协议 ................................................................................................................ 23
1.5.网络名词概述............................................................................................................................................ 24
1.5.1. 互联网的地址-IP 地址 .......................................................................................................... 24
1.5.2.子网掩码 ....................................................................................................................................... 25
1.5.3.路由表 ............................................................................................................................................ 26
1.4.4.网关 ................................................................................................................................................ 26
1.5.5.端口号 ............................................................................................................................................ 27
1.5.6.网络字节序和主机字节序....................................................................................................... 27
1.5.7.套接字 ............................................................................................................................................ 27
2.TCP 通信和 UDP 通信编程 ................................................................................................................................... 28

2.1TCP 通信流程 ............................................................................................................................................... 28
2.2UDP 通信流程 ............................................................................................................................................... 29
2.3 创建套接字函数 socket ......................................................................................................................... 30
2.4.网络地址结构体 sockaddr ................................................................................................................... 33
2.5.点分式 IP 地址转 in_addr ................................................................................................................... 34
2.5.1.点分式 ip 转换成 in_addr 类型(inet_aton) ................................................................. 34
2.5.2.点分式 ip 转换 in_addr_t 类型(inet_addr) ................................................................. 34
2.5.3.点分式 ip 转换 in_addr_t 类型(inet_network)........................................................... 35
2.5.4.适用与 IPV6 协议的 ip 转换(inet_pton) ........................................................................ 35
2.6.网络 IP 转点分式 ..................................................................................................................................... 36
2.6.1. in_addr 结构体类型 ip 转点分式(inet_ntoa) ............................................................ 36
2.6.2.适用与 IPV6 协议的 ip 转换(inet_pton) ........................................................................ 36
2.7.inet_makeaddr()函数,inet_lnaof()函数和 inet_netof()函数 ......................................... 37
2.7.1.inet_makeaddr 函数 ................................................................................................................. 37
2.7.2.主机地址提取函数 inet_lnaof ............................................................................................ 37
2.7.3.网络地址提取函数 inet_netof ............................................................................................ 38
2.8.主机字节序和网络字节序之间的转换 API ..................................................................................... 38
2.8.1.32 位主机字节序转网络字节序(htonl) ............................................................................ 39
2.8.2.16 位主机字节序转网络字节序(htons) ............................................................................ 39
2.8.3.32 位网络字节序转主机字节序(ntohl) ............................................................................ 40
2.8.4.16 位网络字节序转主机字节序(ntohs) ............................................................................ 40
2.9.服务器绑定(bind) .................................................................................................................................. 40
2.10.服务器监听函数(listen) .................................................................................................................. 41
2.10.等待客户连接函数(accept) ............................................................................................................. 42
2.11.请求服务器连接函数(connect)....................................................................................................... 42
2.12.网络消息发送 API ................................................................................................................................. 43
2.12.1.使用 write 发送 ....................................................................................................................... 43
2.12.2.使用 writev 发送 .................................................................................................................... 44
2.12.3.使用 send 发送 ......................................................................................................................... 45
2.12.4.使用 sendto 发送 .................................................................................................................... 45

2.12.5.使用 sendmsg 发送 .................................................................................................................. 46
2.13.读取网络消息 API ................................................................................................................................. 47
2.13.1.使用 read 读取 ......................................................................................................................... 47
2.13.2.使用 readv 读取 ....................................................................................................................... 48
2.13.3.使用 recv 读取 ......................................................................................................................... 48
2.13.4.使用 recvfrom 读取 ................................................................................................................ 49
2.13.5.使用 recvmsg 读取 .................................................................................................................. 50
2.14.连接断开函数 shutdown...................................................................................................................... 51
2.15.TCP 通信程序简单实例 ........................................................................................................................ 51
2.16.UDP 通信程序简单实例 ........................................................................................................................ 56
3.UNIX 域协议(本地通信协议)............................................................................................................................. 59
3.1.概述 .............................................................................................................................................................. 59
3.2.UNIX 域协议之进程间通信方式一:socketpair 函数 ............................................................... 60
3.3.UNIX 域协议之进程间通信方式二:套接字通信方式 ................................................................ 62
4.套接字选项 .............................................................................................................................................................. 66
4.1.获取套接字的选项值(getsockopt) .................................................................................................. 66
4.2.获取套接字的选项值(setsockopt) .................................................................................................. 67
4.3.选项汇总 ..................................................................................................................................................... 68
4.3.1.套接字层次 .................................................................................................................................. 68
4.3.2.IP 层次 .......................................................................................................................................... 70
4.3.3.TCP 层次 ........................................................................................................................................ 70
5.广播 ............................................................................................................................................................................ 70
5.1.概述 .............................................................................................................................................................. 70
5.2.程序实例 ..................................................................................................................................................... 72
6.组播(又称多播) ..................................................................................................................................................... 75
6.1.概述 .............................................................................................................................................................. 75
6.2.程序实例 ..................................................................................................................................................... 77
7.获取套接字协议地址函数 .................................................................................................................................. 80
7.1.根据套接字获取本地协议地址(getsockname) ............................................................................. 80
7.2.获取与套接字关联的外地协议地址(getpeername) .................................................................... 82

8.NTP(Network Time Protocol 网络时间协议) ........................................................................................... 83
8.1.实例程序 ..................................................................................................................................................... 86
9.域名系统 DNS ........................................................................................................................................................... 87
9.1.DNS 概述 ...................................................................................................................................................... 87
9.2.因特网的域名结构 .................................................................................................................................. 88
9.3.DNS 协议 ...................................................................................................................................................... 89
9.3.1.首部格式 ....................................................................................................................................... 89
9.3.2.数据区域 ....................................................................................................................................... 91
9.3.DNS 客户端程序实例 ............................................................................................................................... 92
9.4.域名解析函数(gethostbyname) ....................................................................................................... 96
9.5.获取本地主机名(gethostname)........................................................................................................ 98
9.6.设置本地主机名(gethostname)........................................................................................................ 98