TCP/IP协议分层模型
硬件(物理层)
网络接口层
网络层(互联网层)
互联网层使用IP协议, 一般是由操作系统提供, 特别是路由器, 用来转发分组数据包
ICMP: IP数据包发送数据失败, 需要给发送端一个异常通知, 需要该协议
ARP: 从分组的数据包中, 解析出物理地址(MAC地址)
传输层
让主机的不同应用程序之间通讯, 不同程序有不同的端口号
TCP: 有连接的传输层协议
UDP:无连接的传输层协议
应用层
WWW: 浏览器与服务端HTTP
SMTP:电子邮件协议
FTP:文件传输协议, 建立2个TCP连接
SSH TELNET:远程登录协议
TCP/IP的包
数据包

每层都会在发送数据附加一个首部, 首部包含该层需要信息, 如目标地址协议相关信息
在下一层看, 上一层所有包均为本层数据
包首部就是协议的规范
分层中的单位
- 包: 每一层全部数据
- 帧: 数据链路层的中包的单位
- 数据报: 是IP和UDP网络层以上分层中包的单位
- 段: TCP数据流中的信息
- 消息: 应用层中数据单位
经过数据链路的包
数据链路层会用MAC地址
网络层会用IP
传输层会用端口号
同时每一层都还有一个识别位, 用来标识上一层的协议种类信息
TCP/IP分层通讯示列
邮箱发送各层处理图示
发送端
1. 应用程序处理
应用程序处理编码, 比如使用UTF-8, 点击发送后进入下一层(传输层).
2. TCP模块处理
TCP模块根据应用指示(应用程序调取操作系统API), 负责创建连接, 发送数据, 断开连接
TCP会在应用层添加首部
- 源端口号, 目标端口号: 用以识别对端主机上的应用
- 序号: 用于发送包是哪部分数据
- 校验和: 用以判断数据是否损坏
3. IP模块处理
添加上IP首部, 包含当前IP和对端IP, 然后根据IP地址, 会在路由器中, 根据路由算法进行数据接力
如果不知道MAC地址, 可以通过ARP(Address Resolution Protocol)查找
把IP, MAC传递给下一层(数据链路层), 由以太网进行驱动程序进行数据传输
4. 网络接口(以太网驱动)
以太网首部包含发送端MAC和接收端MAC地址, 开始在物理层进行二进制物理传输.

