OSI七层模式
MAC地址:(media access control address),媒体存取控制地址,也称局域网地址(LAN address),烧录在我们网卡中的物理地址,不能改变,唯一标识一台设备(全球唯一)
47 | 46 | 45-24(22bit) | 0-23(24bit) |
---|---|---|---|
I/G | G/L | 组织唯一标识符(OUI) (由IEEE分配) |
由厂家分配 |
版本(Version):这个4位字段定义了IP协议的版本,目前主流的版本是4;4 代表ipv4 、 6 代表ipv6(4bit)
首部长度HLEN(Header length):这个4位字段定义了数据报首部的长度,以4字节的字为单位。当首部没有选项时,首部长度为20字节;当这个字段值位最大值F时,首部长度最大为60字节。(4bit)
服务类型(Type of service): (3bit优先级+4bit TOS+1bit未用)TOS允许按照吞吐量、时延(8bit )
总长度(Total length):这个16位字段定义了数据报总长度,其以字节为单位。故IPv4数据报总长度上限值位65536字节。(16 bit)
标识(Identification):这个16位字段标志了从源主机发出的一个数据报,这样就确定了数据报的唯一性。这样使得数据报被分片后,在到达终点时终点能根据标识号将同一个数据报的分片重新组装成一个数据报。(16bit)
标志(Flags):
分片偏移(Fragment offset): 这个13位字段表示的是分片在整个数据报中的相对位置。这是数据在原始数据报中的偏移量,以8字节位单位。(13bit)
生存时间(Time to live): 这个8位字段用来控制数据报所经过的最大跳数(路由器),每经过一个路由器,这个字段数值都减1,减1后变位0时,路由器就丢弃这个数据报。 代表数据包最多能被多少台路由器转发(8bit)
协议(Protocol): 代表上层使用的哪种协议(8bit)
首部检验和(Header checksum): 根据ip头部(不包括data)计算的校验值码,保证报文的完整性和准确性(16 bit)
源ip地址(Source ip address): 代表这个数据包来哪里(32bit)
目的ip地址(Destination ip address): 代表这个数据包要到哪里去(32bit)
可选项(Options): 用来支持排错、测量以及安全等措施(32bit)
主要特性:IP是一个无连接的、不可靠的、点对点的协议,只能尽力(Best Effort)传送数据,不能保证数据的到达。
IPV4和IPV6包头结构对比
比较项目 | IPV4 | IPV6 |
---|---|---|
报头字段 | 版本 | 相同字段,但是版本号不同 |
报头字段 | Internet报头长度 | 已从IPV6中删除,IPV6不包括报头长度字段,因为IPV6报头总是40字节的固定长度。每个扩展报头或者是固定长度或者标识了自己的长度 |
报头字段 | 服务类型 | 由IPV6的通信流类别字段取代 |
报头字段 | 总长度 | 由IPV6的有效负载长度字段取代,这个字段仅表示有效负载的长度 |
报头字段 | 标识符 | 已从IPV6中删除,片段信息并不包含在IPV6报头中,而是包括在片段扩展报头中 |
报头字段 | 标签 | 已从IPV6中删除,片段信息并不包含在IPV6报头中,而是包括在片段扩展报头中 |
报头字段 | 片段偏移 | 已从IPV6中删除,片段信息并不包含在IPV6报头中,而是包括在片段扩展报头中 |
报头字段 | 生存时间 | 由IPV6的跳限制字段取代 |
报头字段 | 协议 | 由IPV6的下一个报头字段取代 |
报头字段 | 首部检验和 | 已从IPV6中删除,链路层有对整个IPV6数据包做比特层面的错误检测的校验和 |
报头字段 | 源IP地址 | 保持不变,除了IPV6的地址是128比特长 |
报头字段 | 目的IP地址 | 保持不变,除了IPV6的地址是128比特长 |
报头字段 | 可选项 | 已从IPV6中删除,IPV6扩展报头取代了IPV4选项 |
比较项目 | IPV4 | IPV6 |
---|---|---|
报头字段数目 | 12(包括选项) | 8 |
必须由中间路由器处理的字段数目 | 6 | 4 |
报头选项的处理 | IPV4报头包括了所有的选项,因此,每个中间路由器都必须检查他们是否存在,如果存在,则进行处理,这会降低IPV4数据包转发过程的效率 | IPV6中,发送和转发选项被移至扩展报头中,中间路由器必须处理的唯一一个扩展报头就是逐跳选项扩展报头,这加快了IPV6报头的处理速度并提高了转发效率 |
片段字段 | 片段标签组合了片段标签和片段偏移字段后得到的16位中的高3位 | 用于片段标签的是组合了片段标签和片段偏移字段后得到的16位中的低3位 |
片段字段 | 标识字段是16位长 | 标识字段是32位长,没有不要拆分(DF)的标签,因为IPV6路由器绝不执行拆分操作 |
类型 | 代码 | 描述 | 查询 | 差错 |
---|---|---|---|---|
0 | 0 | Echo Reply——回显应答(Ping应答) | ✔ | |
3 | 目的不可达 | |||
0 | Network Unreachable——网络不可达 | ✔ | ||
1 | Host Unreachable——主机不可达 | ✔ | ||
2 | Protocol Unreachable——协议不可达 | ✔ | ||
3 | Port Unreachable——端口不可达 | ✔ | ||
4 | Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特 | ✔ | ||
5 | Source routing failed——源站选路失败 | ✔ | ||
6 | Destination network unknown——目的网络未知 | ✔ | ||
7 | Destination host unknown——目的主机未知 | ✔ | ||
8 | Source host isolated (obsolete)——源主机被隔离(作废不用) | ✔ | ||
9 | Destination network administratively prohibited——目的网络被强制禁止 | ✔ | ||
10 | Destination host administratively prohibited——目的主机被强制禁止 | ✔ | ||
11 | Network unreachable for TOS——由于服务类型TOS,网络不可达 | ✔ | ||
12 | Host unreachable for TOS——由于服务类型TOS,主机不可达 | ✔ | ||
13 | Communication administratively prohibited by filtering——由于过滤,通信被强制禁止 | ✔ | ||
14 | Host precedence violation——主机越权 | ✔ | ||
15 | Precedence cutoff in effect——优先中止生效 | ✔ | ||
4 | 0 | Source quench——源端被关闭(基本流控制) | ✔ | |
5 | 重定向 | ✔ | ||
0 | Redirect for network——对网络重定向 | ✔ | ||
1 | Redirect for host——对主机重定向 | ✔ | ||
2 | Redirect for TOS and network——对服务类型和网络重定向 | ✔ | ||
3 | Redirect for TOS and host——对服务类型和主机重定向 | ✔ | ||
8 | 0 | Echo request——回显请求(Ping请求) | ✔ | |
9 | 0 | Router advertisement——路由器通告 | ✔ | |
10 | 0 | Route solicitation——路由器请求 | ✔ | |
11 | 短时 | |||
0 | TTL equals 0 during transit——传输期间生存时间为0 | ✔ | ||
1 | TTL equals 0 during reassembly——在数据报组装期间生存时间为0 | ✔ | ||
12 | 参数问题 | |||
0 | IP header bad (catchall error)——坏的IP首部(包括各种差错) | ✔ | ||
1 | Required options missing——缺少必需的选项 | ✔ | ||
13 | 0 | Timestamp request (obsolete)——时间戳请求(作废不用) | ✔ | |
14 | 0 | Timestamp reply (obsolete)——时间戳应答(作废不用) | ✔ | |
15 | 0 | Information request (obsolete)——信息请求(作废不用) | ✔ | |
16 | 0 | Information reply (obsolete)——信息应答(作废不用) | ✔ | |
17 | 0 | Address mask request——地址掩码请求 | ✔ | |
18 | 0 | Address mask reply——地址掩码应答 | ✔ |
定义:DHCP协议(Dynamic host configuration protocol)动态主机配置协议(应用层)
功能:动态的配置主机的ip地址,掩码,网关,dns服务器,租期
原理:dhcp报文:都是广播的(255.255.255.255)
DHCP报文类型 | 描述 |
---|---|
DHCP Discover(0x01) | DHCP客户端在请求IP地址时并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送Discover请求报文,以发现网络中的DHCP服务器。所有收到Discover报文的DHCP服务器都会发送应答报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置 |
DHCP Offer(0x02) | DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息(如网关、DNS服务器等),构造一个Offer报文,发送给DHCP客户端,告知用户本服务器可以为其提供IP地址。但这个报文只是告诉DHCP客户端可以提供IP地址,最终还需要客户端通过ARP来检测该IP地址是否重复 |
DHCP Request(0x03) | DHCP客户端可能会收到很多Offer请求报文,所以必须在这些应答中选择一个。通常是选择第一个Offer应答报文的服务器作为自己的目标服务器,并向该服务器发送一个广播的Request请求报文,通告选择的服务器,希望获得所分配的IP地址。另外,DHCP客户端在成功获取IP地址后,在地址使用租期达到50%时,会向DHCP服务器发送单播Request请求报文请求续延租约,如果没有收到ACK报文,在租期达到87.5%时,会再次发送广播的Request请求报文以请求续延租约 |
DHCP ACK(0x05) | DHCP服务器收到Request请求报文后,根据Request报文中携带的用户MAC来查找有没有相应的租约记录,如果有则发送ACK应答报文,通知用户可以使用分配的IP地址 |
DHCP NAK(0x06) | 如果DHCP服务器收到Request请求报文后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则向DHCP客户端发送NAK应答报文,通知用户无法分配合适的IP地址 |
DHCP Release(0x07) | 当DHCP客户端不再需要使用分配IP地址时(一般出现在客户端关机、下线等状况)就会主动向DHCP服务器发送RELEASE请求报文,告知服务器用户不再需要分配IP地址,请求DHCP服务器释放对应的IP地址 |
DHCP Decline(0x04) | DHCP客户端收到DHCP服务器ACK应答报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则会向DHCP服务器发送Decline请求报文,通知服务器所分配的IP地址不可用,以期获得新的IP地址 |
DHCP Inform(0x08) | DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则向DHCP服务器发送Inform请求报文;DHCP服务器在收到该报文后,将根据租约进行查找到相应的配置信息后,向DHCP客户端发送ACK应答报文。目前基本上不用了 |
代码 | 长度(字节) | 说明 |
---|---|---|
1 | 4 | 子网掩码 |
3 | 长度可变,必须是4字节的倍数 | 默认网关(可以是一个路由器IP地址列表) |
6 | 长度可变,必须是4字节的倍数 | DNS服务器(可以是一个DNS服务器IP地址列表) |
15 | 长度可变 | 域名称(主DNS服务器名称) |
42 | 长度可变,必须是4字节的倍数 | NTP服务器(可以是一个NTP服务器IP地址列表) |
44 | 长度可变,必须是4字节的倍数 | WINS服务器(可以是一个WINS服务器IP地址列表) |
51 | 4 | 有效租约期(以秒为单位) |
53 | 1 | 报文类型(1 ~ 8)分别表示:Discover,Offer,Request,Decline,ACK,NAK,Release,Inform |
58 | 4 | 续约时间 |
60 | 长度可变 | Authentication for DHCP Message,用来完成基于标准DHCP协议,以在客户端输入用户名和密码的方式进行地址鉴权主要用在按用户认证收费场合,与之对应的是pppoe认证计费 |
255 | 0 | 标记options结束 |
头部部分(Header)
Flags | 说明 |
---|---|
QR(1bit) | 查询/响应标志,0为查询,1为响应 |
opcode(4bit) | 0表示标准查询,1表示反向查询,2表示服务器状态请求 |
AA(1bit) | 表示授权回答 |
TC(1bit) | 表示可截断的 |
RD(1bit) | 表示期望递归 |
RA(1bit) | 表示可用递归 |
rcode(4bit) | 表示返回码,0表示没有差错,3表示名字差错,2表示服务器错误(Server Failure) |
正文部分
查询名(Name):长度不固定,且不使用填充字节,一般该字段表示的就是需要查询的域名(如果是反向查询,则为IP,反向查询即由IP地址反查域名)
查询类型(Type):
类型 | 助记符 | 说明 |
---|---|---|
1 | A | 由域名获得IPv4地址 |
2 | NS | 查询域名服务器 |
5 | CNAME | 查询规范名称 |
6 | SOA | 开始授权 |
11 | WKS | 熟知服务 |
12 | PTR | 把IP地址转换成域名 |
13 | HINFO | 主机信息 |
15 | MX | 邮件交换 |
28 | AAAA | 由域名获得IPv6地址 |
252 | AXFR | 传送整个区的请求 |
255 | ANY | 对所有记录的请求 |
查询类(Class):通常为1,表明是Internet数据
回答区域(Answers)
授权区域(Authoritative nameservers)
附加区域(Additional recoreds)
定义:SSH协议(Secure Shell)安全外壳协议,是一种通用的、功能强大的、基于软件的网络安全解决方案(应用层)
SSH协议簇
传输层协议 [SSH-TRANS]:提供服务器验证、完整性和保密性功能,建立在传统的TCP/IP协议之上
验证协议 [SSH-USERAUTH]:向服务器验证客户端用户,有基于用户名密码和公钥两种验证方式,建立在传输层协议 [SSH-TRANS]之上
连接协议 [SSH-CONNECT] :将加密隧道复用为若干逻辑信道。它建立在验证协议之上
TCP/IP | 协议 |
---|---|
应用层 | TELNET、SSH、HTTP、SMTP、POP、SSL/TLS、FTP、MIME、HTML、SNMP、MIB、BIP、RTP |
传输层 | TCP、UDP、UDP-Lite、SCTP、SCCP |
网络层 | ARP、IPV4、IPV6、ICMP、IPsec |
网络接入层 | Ethernet、无线LAN、PPP |
OSI | 协议 |
---|---|
应用层 | DHCP、DNS、FTP、Gopher、HTTP、IMAP4、IRC、NNTP、XMPP、POP3、SIP、SMTP、SNMP、SSH、TELNET、RPC、RTCP、RTP、RTSP、SDP、SOAP、GTP、STUN、NTP、SSDP |
表示层 | HTTP/HTML、FTP、TELNET、ASN.1 |
会话层 | ADSP、ASP、H.245、ISO-SP、iSNS、NetBIOS、PAP、RPC、RTCP、SMPP、SCP、SSH、ZIP、SDP |
**PS:**其实在应用层、表示层、会话层这三层,协议可以共用;
应用层
**超文本传输协议HTTP:**这是一种最基本的客户机/服务器的访问协议;浏览器向服务器发送请求,而服务器回应相应的网页
文件传送协议FTP:提供交互式的访问,基于客户服务器模式,面向连接 使用TCP可靠的运输服务;主要功能:减少/消除不同操作系统下文件的不兼容性
**远程登录协议TELNET:**客户服务器模式,能适应许多计算机和操作系统的差异,网络虚拟终端NVT的意义
简单邮件传送协议SMTP:Client/Server模式,面向连接
基本功能:写信、传送、报告传送情况、显示信件、接收方处理信件
**简单文件传送协议TFTP:**客户服务器模式,使用UDP数据报,只支持文件传输,不支持交互,TFTP代码占内存小
简单网络管理协议SNMP: SNMP模型的4个组件:被管理结点、管理站、管理信息、管理协议
SNMP代理:运行SNMP管理进程的被管理结点
对象:描述设备的变量
管理信息库(MIB):保存所有对象的数据结构
动态主机配置协议DHCP: 发现协议中的引导文件名、空终止符、属名或者空,DHCP供应协议中的受限目录路径名 Options –可选参数字段,参考定义选择列表中的选择文件
传输层
**传输控制协议TCP:**传输控制协议,传输效率低,可靠性强
网络层
网络接入层
TCP协议状态机及三次握手四次挥手过程
loopback网卡功能
数据包封装解封装过程
端口号的作用及常用的协议端口号
IP模块
基础路由和交换技术