文章目录
网络层
IP协议—网络的核心协议(可以理解为物流公司)
- 地址管理,通过一个整数来表示一个地址,IP地址。
IPv4 一个IP地址是一个32位的整数。
如何IP地址不够用的问题?
- a) 动态分配IP某个主机上网,就分配ip,不上网就不分配。
- b) NAT机制,很多主机共用一个IP地址,路由器(NAT设备根据端口号来进一步区分数据交给哪个主机)
- c) IPv6彻底解决问题。
使用点分十进制来表示ip地址。
192.168.1.100
网段划分:IP地址的前半部分划分为网络号,后半部分划分为主机号。
网段划分是为了组建不同的局域网,路由器来链接不同的局域网。
同一个局域网中的若干个设备,网络号相同,但主机号不相同,两个相邻的局域网,网络号一定不相同。
/24 表示子网掩码。
子网掩码也是一个32位的整数,前半部分都是1,后半部分都是0
255.255.255.0 => /24
子网掩码按位与上IP地址,就得到了网络号。
特殊的IP地址
- 将IP地址中的主机地址全部设为0, 就成为了网络号, 代表这个局域网; 将IP地址中的主机地址全部设为1, 就成为了广播地址,
- 用于给同一个链路中相互连接的所有主机发送数 据包;
- 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
私有IP地址和公网IP地址
- 10.*,前8位是网络号,共16,777,216个地址
- 172.16.到172.31.,前12位是网络号,共1,048,576个地址
- 192.168.*,前16位是网络号,共65,536个地址 包含在这个范围中的, 都成为私有IP, 其余的则称为全局IP(或公网IP)
- 路由选择
相当于地图软件的导航功能。
数据链路层
起点:西安
终点:北京
网络层的角度:规划出一条或几条路线
数据链路层角度:关注两个相邻点之间如何传输数据(这里指交通工具)
传输层角度:只关注起点和终点
认识以太网
“以太网”不是一种具体网络,而是一种技术标准;既包含了数据链路层的内容,也包含了物理层的内容。
例如:以太网中的网线必须使用双绞线。
以太网是当前应用最广泛的局域网技术。
认识MAC地址
MAC地址是用了来标识数据链路层中相连的节点。
MAC地址耗尽问题:
MAC地址像身份证号,是每台主机的物理地址,并且对于每台主机来说是唯一的,MAC地址是由6个字节组成的,自由组合的话有2的48次方,目前来说未来十年里是不会被耗尽的。
对比理解MAC地址和IP地址
IP地址描述的是路途总体的起点和终点。
MAC地址描述的是路途上每一个区间 的起点和终点。
ARP协议:IP地址->MAC地址之间的转换
认识MTU:最大传输单元
MTU 一个数据链路层的数据帧所搭载的数据最大长度,也就是最大的传输单元。
以太网的MTU 1500字节,ARP的数据包长度不够64字节,要在后面补充位。
如果一个数据包从以太网路由器到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片。
不同的数据链路层标准的MTU是不同的。
MTU对IP协议的影响
由于数据链路层MTU的限制,对于较大的IP数据包要进行分包。
- 将较大的IP包分成多个小包,并给每个小包打上标签。
- 一旦这些小包中任意一个小包丢失, 就会引起接收端的重组就会失败. 但是IP层不会负责重新传输数据;
MTU对UDP的影响
- 一旦UDP携带的数据超过IP首部,那么就会在网络层分成多个IP数据报;
- 这么多的IP数据报有任意一个丢失,都会引起接收端网络重组失败,那么就意味着,如果UDP数据包在网络层被分片,整个数据被丢失的概率就大大增加了。
MTU对TCP协议的影响
TCP的一个数据报不能无限大,也是受制于MTU的。
- TCP单个数据报的最大消息长度称为MSS(Max - Segment - Size)
- TCP在建立链接的过程中,通信的双方都会进行MSS协商。
- 理想的情况下,MSS值正好是在IP不会被分片处理的长度,
- 双方在发送SYN时,会在TCP头部写入自己能支持的MSS值
- 双方得知对方的MSS值后,选择较小的作为最终的MSS
ARP协议
ARP协议是一个介于数据链路层和网络层之间的协议。
ARP协议的作用:建立了主机IP地址和MAC地址的映射关系。
- 在网络通信的时候,源主机知道目标主机的端口号和IP地址,却不知道对方的MAC地址也就是硬件地址。
- 数据包首先是被网卡接收到,再去处理上层协议,如果接收到的数据包的硬件地址与本机不符合,直接丢弃。
- 因此在通讯前必须获得目的主机的硬件地址。
ARP协议的工作流程
源主机发出ARP请求,知道ip地址,问硬件地址是多少?讲这个请求广播到本地网段。
目的主机接收到广播的ARP请求,发现广播的IP地址与自己的IP地址一致。则发送一个ARP应答包给源主机,应答包里携带着自己的MAC地址。