1.哪四层协议:
1.1数据链路层: 实现数据包在物理链路上的传输,最直观的就是通过网卡发送出去数据包;
1.2网络层:实现数据包选路(网络中很多路由器 选择走哪些路由器)和转发(转发给被选定的下一台路由器)
1.3传输层:实现端到端的传输(端口 到 端口的, 不同端口对应不同上层服务 如默认http 80端口)
14.应用层:实现真正的业务逻辑; (大部分的应用层服务程序)
2.数据链路层:
目前常用网络类型是 以太网、令牌环网、802.11无线网络; 以以太网最常用,以太网使用mac地址唯一标识一台设备;
在链路层传输的数据包叫做帧;
2.1以太网帧格式
目的mac地址(6字节) + 源mac地址(6字节) + 类型(2字节) +上传数据(46-1500字节)+ CRC校验值(4字节)
类型:表示网络层协议, 如0x8006表示arp协议, 0x835表示rarp协议, 0x8000表示ip协议;
CRC校验: 保证数据包没被修改, 对整个以太网帧加密, 接收方也对整个包加密,对比是否相同;
数据:MTU(帧最大传输单元)=1500,表示最大一次传输1500个字节的上传数据包,如果要传输大于1500的数据包,就得分多次传输(IP分片);
2.2数据链路层常用协议:
ARP : 实现网络地址对应物理地址的转换;(以太网是 IP地址对应mac地址)
格式:
硬件类型(2字节) + 协议类型(2字节) + 硬件地址长度(1字节) + 协议地址长度(1字节) + 操作(2字节) +
发送端mac地址(6字节) + 发送端ip地址(4字节) +
目的端mac地址(6字节) + 目的端ip地址(4字节)
硬件类型:1表示mac地址
协议类型: 0x800表示ip协议
硬件地址长度:mac地址长度6
协议地址长度:ip地址4
操作:1表示ARP请求 2表示ARP应答 3表示RARP请求 4表示RARP应答
若ARP请求,目的mac地址为空; ARP应答时,将本机mac地址填入目的mac地址,再交换发送端和目的端 ipmac地址 返回;
注意:此格式为上传数据(46-1500字节)中内容,实际发送时 还需要加上以太网帧头部数据
RARP: 实现物理地址到网络地址的转换;(同上)
2.3 apr命令
查看arp高速缓存:arp -a
3. 网络层
网络层有IP ICMP协议,主要IP协议;
IP协议是 无状态(每次请求之间没关系,无上下文关系) 无连接(不需要预先双方建立连接) 不可靠的服务(没确认超时重传机制);
IP数据包会分片重组,但不会重新排序(由TCP模块解决乱序问题)
3.1 格式
版本号(4位) + 首部长度(4位) + 服务类型(8位) + IP总长度(16位) +
标识(16位) + 标志(3位) + 片偏移(13位) +
TTL(8位) + 协议类型(8位) + CRC校验(16位)
源IP地址(32位) + 目的IP地址(32位) +
选项(最多40位)
版本号: 4: IPv4 6:IPv6 或其他如SIP协议 PIP协议等
首部长度: 表示4字节数据的个数; 4位 最大=15; 15*4=60 最大IP首部60个字节
服务类型: 3位无用 + 4位(最小延迟 | 最大吞吐 | 高可用性 | 最小费用) + 1位保留位
IP总长度: 最大=65525
标识:唯一表示一条IP数据包
标志:1位保留 + 1位分片标志(MF) + 1位禁止分片
片偏移:n,实际偏移值为n*8, 所以除了最后一个分片外数据包大小为8的倍数;
第一个分片包含 IP首部 +上层协议首部 +数据+...
其他分片包含 IP首部 + 数据+...
TTL:数据包生存周期,一般为64,每经过一个路由器,则-1;
协议类型: 上层协议类型 1:ICMP 6:TCP 7:UDP
选项: 记录路由(记录经过的所有路由器IP地址)、记录时间戳、
松散源路由选择(数据包发送过程中,必须经过所有的路由器)
严格的路由选择(数据包只能经过这些路由器)