1、网络层
定义:IP地址定义,连接不同的媒介类型,最佳路径选择数据包的转发。
封装数据:ip头部信息(源ip和目标ip)、其他信息数据包。
1.1 ip头部数据包含内容
version(版本):ipv4和ipv6
Header Length(首部长度):表示IP数据包头部长度,长度可变,变化数为20的倍数,一般情况下都是20字节。
total length:表示整个ip数据包长度。最大65535字节。
Identification(数据包的标识符):上层数据进行分片,会给分片数据进行编号,保证分片不会被错误的重组。
Flags(标志字段):数据可以分片或者数据包不能分片。如果不封分片的包,直接发出;如果是分片的包,确保分片包中最后一个分片已发出。
reserved bit:永远是0。
Don't fragment :是0直接发出,是1直接丢弃。
More fragment :是0表示整个数据包,是1表示是数据包的一部分。
Fragment Offset(段偏移量):包含的信息是指在一个分片的序列之中,如何把各个分片重新连接,每个分段数据与起点之间的位置。
——(分片的序列如何按照原有的序列重新连接起来,以及按照什么样的顺序连接)
——核心目的:保证数据完整性。
Protocol(协议字段):ip数据包在传输过程中使用的协议是什么。
Header Checksum(首部校验和):接收方和网管服务器(一般指路由器)用来校验数据是否被改动过。
1.2 网络层中的重要协议
ICMP协议:(网间控制报文协议):是网络层协议,即ping命令,作用是用来进行网络故障排查。
MTU:最大传输单元,一般默认1500字节。(释义不是指我发多少,而是指对方可以接收的数据包大小)
1.3 type、code、描述结果
type code 描述结果
0 0 reply响应
8 0 request请求
3 0 网络不可达
3 1 对方主机不可达
3 2 协议不可达——对方不支持你的协议
3 3 端口不可达——服务被关闭或者对方端口关闭了
11 0 超时
其中,端口即服务和程序。每个服务和程序都有它特定的端口。
1.4 发现ping www.baidu.com 不通。怎么解决?
1.回环地址:ping127.0.0.1 自我测试,测试自身的网络是否通畅,另外的作用调试和开发。
2.硬件问题:网线问题
网卡问题
双方地址是否正确
网关服务器(路由器)
交换机的问题
防火墙的问题
1.4 ARP协议
ARP协议(地址解析协议):把网络层的IP地址转换成数据链路层的mac地址。(在ARP表中,把IP地址和mac地址形成一个映衬关系)
arp协议的工作原理:
1.在局域网里面对所有设备进行广播
2.只有符合条件的设备会对广播进行响应,找到了ip地址对应的mac地址,其他设备不会响应。
3.会把这个ip地址和mac地址的映射关系保存到设备当中,会把双方的设备都保存到arp表中。
4.保存时间是180秒。
5.保存时间失效,后续在进行传输,又要arp广播。
2、传输层
2.1 传输层协议
定义:规定数据通信和交互的规则和约定。
作用:通信规范——数据的格式、传输方式、消息的结构、数据加密和编码的规则。
数据交换:数据在网络中的交换方式,数据包的组织方式,传输的顺序,错误检测,纠正错误—确保数据的正确传输和完整。
数据安全:安全保证保障。
设备互联:不同的设备和系统可以互相连接和通信。
网络管理:定义网络的管理以及监控的范畴。
2.2 传输层作用
1.数据分段和重组。
2.连接管理——建立、维护和终止源主机和目标主机之间的连接。(连接管理主要针对tcp、udp)
3.可靠性保证。(保证数据发送的可靠性)
4.流量控制。
2.3 TCP和UDP
tcp:面向连接,可靠的进程到进程的通信协议。tcp提供全双工服务。数据一定是双向传输的(双方可以自由的没有限制的传输消息)
每个tcp都有发送缓存和接收缓存,用来存储临时数据。
通信双方要传输数据必须先建立连接。
udp:无连接,又叫用户数据报协议,不保证可靠性的传输层协议。发送端发送数据不在乎发送的数据是否能够到达目标主机。数据出错也不管,收到数据的主机也不会告诉源主机是否接收到了数据。(例如:直播)
2.4 tcp报文
Source Port 源端口
Destination Port 目的端口
Sequence Number 序列号,传输以及接收到数据之后如何重组
Acknowledgment Number 接收方期望接收的下一个字节的序列。
Flags:标志位 控制位。tcp建立连接和断开连接,维护连接都靠这些控制位。
URG:紧急位
*ACK:确认位,只有当ACK=1,表示序列号字段有效,当ACK=0,表示字段是无效的。
Ack:Ack=10,表示接收方希望发送方的下一个字段的序列号的编号是10。作用是确认传输是否有问题。
SYN:同步位,连接位,建立连接时,SYN必须=1。
FIN:断开位,期望断开的一方,要发送FIN=1。
PSH: 急迫位,PSH=1,表示要把数据尽快的发送到应用层。
RST:重置位,RST=1,表示重新建立tcp连接。
SEQ:tcp报文序号。
WIN:接收数据缓冲区的空闲空间。