linux网络编程-网络编程基础知识

 

1. 网络分层模型

linux网络编程-网络编程基础知识

linux网络编程-网络编程基础知识

 

2. 以太网帧格式(链路层)

linux网络编程-网络编程基础知识

linux网络编程-网络编程基础知识

 

3.IP数据报格式

linux网络编程-网络编程基础知识

4. UDP数据报格式

linux网络编程-网络编程基础知识

5.TCP数据报格式

linux网络编程-网络编程基础知识

 

注意点:

1>TCP/IP五层协议通常数据链路层+物理层也被合称为链路层/网络接口层

2>应用层数据传输过程中传输层、网络层、链路层对数据的封装不是在应用程序中完成,而是由操作系统完成的

3>ARP、RARP协议主要用于在链路层获取下一跳(下一个路由)mac地址

4>NAT映射:公网IP根据端口号不同映射多个内网IP

5>打洞机制主要用于私网IP对私网IP通信(p2p),因为路由本身为防止网络肆意攻击,对陌生IP访问有保护机制;所谓打洞就是打破这种保护机制

6>以太网最大传输协议单元1500(MTU)