arp协议工作原理
主机向自己所在的网络广播一个ARP请求,该请求包含目标机器的网络地址。此网络上的其他机器都将收到这个请求,但只有被请求的目标机器会相应一个ARP应答。
DNS工作原理
将机器的域名转换成IP地址,需要使用DNS域名查询服务。
linux 中使用 /etc/resolv.conf 来存放DNS服务器的IP地址。
host 命令使用 dns: host -t A www.baidu.com
IP协议详解
ip协议是tcp/ip协议族的动力,它为上层提供无状态、无连接、不可靠的服务。
TCP服务的特点
TCP模块发送出的TCP报文段的个数和应用程序执行的写操作次数之间没有固定的数量关系。
tcp固定头部结构
- 16位源端口号
- 16位目标端口号
- 32位序号seq
- 32位确认号ack
- 4位头部长度 head size
- 6位标示位 URG ACK PSH PST SYN FIN
- 16位窗口大小 Windows size
- 16位校验和 TCP checksum
- 16位紧急指针 urgent pointer
- 选项 options ,最多包含40字节
Linux 网络编程基础API
通用 socket 地址
struct sockaddr;
struct sockaddr_storage;
专用 socket 地址
struct sockaddr_un;
struct sockaddr_in;
struct sockaddr_in6;
ip地址转换函数
#include <arpa/inet.h>
in_addr_t inet_addr( const char * strptr );
int inet_aton( const * cp, struct in_addr * ip );
char * inet_aton( struct in_addr in );
int inet_pton( int af, const char * src, void * dst );
const char * inet_ntop( int af, const void * src, char * dst, socklen_t cnt );