TCP/IP 网络模型有哪几层?
- 应用层(message消息或报文):工作在操作系统中的用户态,传输层及以下则工作在内核态
- 传输层(segment段):为应用层提供网络支持,如 TCP(Transmission Control Protocol 传输控制协议)、UDP(用户数据报协议 User Datagram Protocol)
- 网络层(packet包):网络层最常使用的是 IP 协议(Internet Protocol),IP 协议会将传输层的报文作为数据部分,再加上 IP 包头组装成 IP 报文,如果 IP 报文大小超过 MTU(以太网中一般为 1500 字节)就会再次进行分片,得到一个即将发送到网络的 IP 报文
- 网络接口层(frame帧):网络接口层主要为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标识网络上的设备。在 IP 头部的前面加上 MAC 头部,并封装成数据帧(Data frame)发送到网络上
IP 地址分成两种意义:
- 一个是网络号,负责标识该 IP 地址是属于哪个「子网」的;
- 一个是主机号,负责标识同一「子网」下的不同主机;
IP地址 & 子网掩码 = 网络号
IP地址 & 子网掩码取反 = 主机号
CIDR(Classless Inter-Domain Routing 无类别域间路由)是一种对IP地址进行分配和路由选择的标准方法。
OSI(Open System Interconnection Reference Model 开放式系统互联通信参考模型)
- 物理层(Physical Layer):负责传输原始的比特流,处理物理介质、电压等物理连接细节。
- 数据链路层(Data Link Layer):在直接连接的节点之间传输数据,处理帧(Frame)的发送和接收,提供可靠的数据传输。
- 网络层(Network Layer):负责在不同网络之间进行路径选择和数据包转发,处理数据包的路由和寻址。
- 传输层(Transport Layer):提供端到端的可靠数据传输,负责分段、流控制、差错检测和恢复等功能。
- 会话层(Session Layer):建立、管理和终止应用程序之间的会话,负责进行对话控制和同步。
- 表示层(Presentation Layer):处理数据的表示格式,负责数据的加密、压缩、解压缩以及数据格式的转换等。
- 应用层(Application Layer):提供直接面向用户的应用服务,包括各种应用程序和协议,如电子邮件、文件传输、远程登录等。
ARP(Address Resolution Protocol 地址解析协议)
ARP 是用于在局域网(LAN)中将IP地址解析为对应的物理MAC地址的协议。
在计算机网络中,数据包在传输过程中需要知道目标设备的物理地址(MAC地址),而通常应用程序使用的是目标设备的IP地址。ARP 协议(如果目标设备的 IP 地址和 MAC 地址映射在 ARP 缓存中不存在)通过在局域网内广播请求,询问某个IP地址对应的MAC地址,从而实现 IP 地址到 MAC 地址的解析。
ICMP(Internet Control Message Protocol Internet控制报文协议)
ICMP 是一种网络协议,用于在IP网络中传输控制和错误消息。
ICMP 协议的主要功能包括以下几个方面:
- 错误报告:当在网络通信中出现错误时,ICMP 可以生成和传输错误报文给源设备,以通知发送者发生的问题。例如,当目标主机不可达、数据报超时、端口不可达等情况发生时,ICMP 可以生成相应的错误报文。
- 回显请求和回显回答:ICMP 提供了回显请求(Ping)和回显回答的功能。通过发送一个回显请求消息到目标设备,可以测试目标设备是否可达和计算往返时间(RTT)。目标设备收到回显请求后,会发送一个回显回答消息作为响应。
- 传输状况报告:ICMP 可以传输有关网络状况的信息。例如,当路由器转发数据报时,可以使用 ICMP 来发送传输状况报告,如 TTL(生存时间)过期报文等。
- 网络重定向:当路由器发现数据包正在沿着非最佳路径传输时,它可以使用 ICMP 报文发送网络重定向消息,告知发送者采用更佳的路径。
ICMP 协议通常工作在网络层(第3层),它直接封装在 IP 数据报中传输。它在网络通信中起到控制和诊断的作用,帮助网络管理员监控和排除网络问题,并提供了一些基本的网络工具和命令,如 Ping 和 Traceroute。
TCP报文
