网络层
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等
网络层的核心是IP协议
IP协议
简单来讲IP协议是在复杂的网络中用来确定一个合适的路径,相当于物流公司
地址管理:通过一个整数来表示一个地址,使用点分十进制来表示IP地址(198.128.1.0)
IPV4,一个IP地址就是一个32位的整数

其中32位分别为:4位版本号,4位首部长度,8位服务类型(TOS),16位总长度(字节数)
IP地址不够用的问题
(1)动态分配:IP某个主机上网就分配IP,不上网就不分配
(2)NAT机制:很多主机共同用一个ip地址,路由器(NAT设备根据端口号来进一步区分数据交给哪个主机)
(3)IPV6能彻底解决问题
网段划分
IP地址分为两个部分, 网络号和主机号
网段划分是为了组建不同的局域网,路由器来连接不同的局域网,同一个局域网中的若干设备,网络号相同,但是主机号不同
两个相邻的局域网网络号一定不相同
- 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4
- 4位头部长度(header length): IP头部的长度是多少个32bit, 也就是 length * 4 的字节数. 4bit表示最大的
- 数字是15, 因此IP头部最大长度是60字节
- 8位服务类型(Type Of Service): 3位优先权字段(已经弃用), 4位TOS字段, 和1位保留字段(必须置为0).4位TOS分别表示: 最小延时, 最大吞吐量, 最高可靠性, 最小成本. 这四者相互冲突, 只能选择一个. 对于ssh/telnet这样的应用程序, 最小延时比较重要; 对于ftp这样的程序, 最大吞吐量比较重要
- 16位总长度(total length): IP数据报整体占多少个字节
- 网络号: 保证相互连接的两个网段具有不同的标识;
- 主机号: 同一网段内, 主机之间具有相同的网络号, 但是必须有不同的主机号;

其中192.168.128.10是一个IP地址,192.168.128是网络号,10是主机号,/24是子网掩码,子网掩码是一个32位的整数,前半部分1,后半部分255.255.255.0
子网掩码按位与上IP地址就是网络号
IP地址分类:

A类 0.0.0.0到127.255.255.255 B类 128.0.0.0到191.255.255.255 C类 192.0.0.0到223.255.255.255 D类 224.0.0.0到239.255.255.255 E类 240.0.0.0到247.255.255.255
特殊的IP地址
ICMP协议
ICMP(Internet Control Message Protocol)Internet控制报文协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息
ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。
ICMP 是个非常有用的协议﹐尤其是当我们要对网路连接状况进行判断的时候
作用:由于IP协议的两个缺陷:没有差错控制和查询机制,因此产生了ICMP。ICMP主要是为了提高IP数据报成功交付的机会,在IP数据报传输的过程中进行差错报告和查询,比如目的主机或网络不可到达,报文被丢弃,路由阻塞,查询目的网络是否可以到达等等
ICMP有两种报文类型:差错报告报文和询问报文
ICMP协议,它作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去。
ARP协议
ARP协议是“AddressResolutionProtocol”(地址解析协议)的缩写
在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址,这个MAC地址就是通过地址解析协议获得的
“地址解析”:就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行
内核(如驱动)必须知道目的端的硬件地址才能发送数据。当然,点对点的连接是不需要ARP协议的。
ARP协议的所有操作都是内核自动完成的,同其他的应用程序没有任何关系。同时需要注意的是,ARP协议只使用于本网络。
有了地址解析协议,那么就有逆地址解析协议 RARP, 将MAC---->IP地址
- 将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网
- 将IP地址中的主机地址全部设为1, 就成为了广播地址, 用于给同一个链路中相互连接的所有主机发送数据包;
- 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
数据链路层
认识以太网
"以太网" 不是一种具体的网络, 而是一种技术标准; 既包含了数据链路层的内容, 也包含了一些物理层的内容. 例如: 规定了网络拓扑结构, 访问控制方式, 传输速率等 以太网是当前应用最广泛的局域网技术; 和以太网并列的还有令牌环网, 无线LAN
认识MAC地址
- MAC地址用来识别数据链路层中相连的节点;
- 长度为48位, 及6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)
- 在网卡出厂时就确定了, 不能修改. mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址, 可能会冲突; 也有些网卡支持用户配置mac地址).
对比理解IP地址和MAC地址
IP地址描述的是路途总体的 起点 和 终点; MAC地址描述的是路途上的每一个区间的起点和终点
认识MTU
MTU:一个数据链路层的数据帧所搭载的数据最大长度,不同的数据链路层标准的MTU是不同的;
以太网的MTU 1500个字节
MTU对IP协议的影响:会导致IP数据报产生分包
MTU相当于发快递时对包裹尺寸的限制. 这个限制是不同的数据链路对应的物理层, 产生的限制
帧是数据链路层的传送单位
数据链路层主要有两个功能 :帧编码和误差纠正控制
(1)点对点协议(Point-to-Point Protocol);
(2)以太网(Ethernet);
(3)高级数据链路协议(High-Level Data Link Protocol);
(4) 帧中继(Frame Relay);
(5) 异步传输模式(Asynchronous Transfer Mode);
数据链路层更靠近底层,与程序猿更接近
|