4. Linux 高性能服务器编程 --- TCP/IP 通信

Linux 下设置代理:
export "http_proxy=http://[user]:[pass]@host:port/" 

4.2.1 HTTP 代理服务器的工作原理



4.3 使用 tcpdump 抓取传输数据包



4.4 访问 DNS 服务器

tcpdump -i enp0s3 -s 2000 -nt '((src 192.168.0.105) or (dst 192.168.0.105) or arp ) and port !22'



1.squid 通过 /etc/resolv.conf 获取 dns 服务器 ip

2.将控制器交给内核的 udp 模块,udp 模块将 dns 查询报文封装成 udp 数据包,
  同时将源端口和目标端口写入 udp 数据包头部, 然后 udp 调用 ip 模块

3.ip 模块将 udp 数据包封装成 ip 数据报,同时把源端 ip(192.168.1.108) 和 
  dns 服务器的 ip 地址加入 ip 数据报头部。

4.ip 模块查询路由表决定如何发送该 ip 数据报

5.如果 apr 中没有相应地址,还要发起 arp 广播

注意:
	源ip, 目标ip( dns 服务器的 ip) 是不变的. 但 源 mac 地址和 目标 mac 地址一直在变.

4.5 本地名称查询



4.6 HTTP 通信





猜你喜欢

转载自blog.csdn.net/enlyhua/article/details/80964120