【网络编程】TCP/IP 工作原理
一、OSI参考模型
1.1 图示
1.2 OSI 七层模型各自的作用
- 应用层:为应用程序提供服务并规定应用程序中通信的相关细节,包括文件传输,电子邮件,远程登录等协议
- 表示层:将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。因为它主要负责数据格式的转换
- 会话层:负责建立和断开通信连接(数据流动的逻辑通路),以及数据的分割等数据传输相关的管理
- 传输层:起着可靠传输的作用。只在通信双方节点上进行处理,而无需在路由器上处理。会话层负责决定建立连接和断开连接的时机,而传输层进行实际的建立和断开处理
-
网络层:将数据传输到目标地址。目标地址可以是多个网络通过路由器连接而成的某个地址。因此这一层主要负责寻址和路由选择
-
数据链路层:负责物理层上的互联、节点之间的通信传输。例如与1个以太网相连的2个节点之间的通信。将0、1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收)。
-
物理层:负责0、1比特流(0、1序列)与电压的高低、光的闪灭之间的互换
1.3 七层通信的过程
二、IP 协议
2.1 IPv4首部
- 版本:表示 IP 协议的版本。
- 首部长度:首部的长度,单位是 4 字节。
- 区分服务:暂时无意义。
- 总长度:首部和数据之和的长度,单位为字节,当数据报的总长度超过数据链路层的最大传送单元时就必须进行分片处理。将一个 IP 数据报分成多个分片,每个分片都具有 IP 首部。
- 标识:对分片进行标识,同一个数据报的分片具有同样的标识。
- 标志:占 3 位。最低位记为 MF(More Fragment),MF = 1 表示后面“还有分片”,MF = 0 表示这是多个数据报片中的最后一个;中间一位记为DF(Don't Fragment),只有当 DF = 0 时才允许分片。
- 片偏移:表示该分片在原分组中的相对位置,片偏移以 8 个字节为偏移单位。
- 生存时间:TTL,表示该数据报在网络中可以被转发的次数,每经过一次转发,这个值减 1。
- 首部校验和:这个字段只检验数据报的首部,不检验数据部分。
- 源地址
- 目的地址
- 可变部分:可变部分中包括用于增加 IP 数据报功能的选项,这些选项一个一个拼起来,中间不需要分隔符,最后用 0 填充为 4 字节的整数倍。
相关文章