应用层:协议数据 产生数据
端口号:用来标识应用层协议
一共65536个端口 范围:0-65535 大小:16bit=2B
分类:知名端口:0-1023 为网络协议预留
注册端口:1024-49151 商用端口
随机端口:49152-65535 计算机随机产生
常见协议的端口号:
单元(PDU)
HTTP 超文本传输协议 TCP 80端口号
FTP 文件传输协议 TCP 20 21端口号
DNS 域名解析协议 (根据域名找到IP地址) TCP/UDP 53端口号
DHCP 动态主机配置协议 下发ip信息 UDP 67 68端口号
TeInet 远程登录 TCP 23端口号
SSH 安全的远程登录TCP 22端口号
SMTP 简单邮件传输协议 (传输) TCP 25端口号
POP3 邮局协议 (接收) TCP 110端口号
OICQ 腾讯QQ UDP 8000 TCP 443端口号
SNMP 简单网络组管理协议 UDP 161 162端口号
传输层:
作用:主机应用之间端到端的链接
传输层协议(TCP/UDP)
TCP:传输控制协议 (Transmission Control Protocol)------------可靠
保证可靠的机制:
一、三次握手-----建立链接
简单说明:PC向服务器发起请求想要建立链接,服务器收到之后确认同意建立链接 接着服务器给PC发送请 求建立链接,PC级收到后同意确认建立链接(注意:这里建立的链接是双线连接)
SYN:请求 ACK:确认
seq:序列号(标识身份)随机产生
ack:确认号 (序列号+1)
作用:确认收到的上一个报文,告诉对方接下来想要接收数据包的seq
确认机制保证可靠
注:每一次链接只有第一个seq号是随机的
主机A想要跟服务器建立链接,先发送一个SYN这里的seq=a,当服务器收到这个SYN后,会回复主机一个ACK(这个ACK里包含一个ACK和一个SYN,因为建立的是双线连接所以要发送一个SYN),其中数据包中seq=b ack=a+1,PC端收到这个数据包后,发现服务器同意和自己建立链接并发送了一个seq=b的请求,这时候PC收到的数据包里发现还包含一个SYN所以PC要给服务器回复一个ACK,这里的ACK数据包里seq=a+1,ack=b+1。(这里的seq并不是随机的,前边已经说过了每一次的链接只有第一个seq号是随机的)
二、丢包重传机制-------传输中
----------------------------- 500bytes
注意:数据发送时如果出现丢包的情况,从那个包开始丢就从那里开始重新传输
三、窗口控制大小--------传输中
PC一次性发送三个数据包,服务器有可能不支持多个处理,可能出现一个一个处理的方式,那么这时候其余的两个数据包就会放到缓存区里,但是缓存区会有一定的大小,没有办法存放过多的数据包,如果一直发送会出现占用带宽的现象,所有有了Window窗口大小字段,PC和服务器都会有自己的缓存区,他们会协商缓存区的大小,缓存区大小按照小的协商,避免出现过多冗余流量的发送
四、四次分手------断开链接
FIN:最后一个报文
当PC发送完数据之后,会发送一个FIN数据包,接着服务器回复ACK确认断开链接,服务器向PC机发送FIN,PC机回复ACK确认断开链接
注:这里的PC机向服务器发送的FIN,ACK(seq=a,ack=b)这里确认的是上一个数据包上一个数据包的序列号是b-1 这里用到了上面所说的序列号的作用:1、确认上一个报文2、告诉下面报文的序列号
为什么是四次?
这里有可能出现一段没有传递完数据,服务器可能还在发送数据,所以要一个一个断开。
TCP报文头部:
大小:20byte-60byte,其中20byte是固定长度多出来的40byte可选字段和padding字段(这里的Padding字段没有实际作用,就是填补空缺)
报文一共有5行,一行占32bit=4字节 2^32≈42.9亿多个取值 所以上面说的序列号的取值范围就只这个
Source Port:源端口
Destination Port:目的端口
Sequence Number:序列号
Acknowledge Number:确认号
Header length:头部长度
Resv.:保留字段
URG\ACK\PSH\RST\SYN\FIN:标志位
Window:窗口大小
Checksum:校验和
Urgent Pointer:紧急指针
Options:可选字段
Padding:填充字段
这里的Port的作用是标识上层协议
2^32个 随机
UDP:用户数据包协议(User Datagram Protocol)--------------不可靠
是一种面向无连接的传输协议,传输没有可靠性的保证,但是传输速率快
UDP报文:
大小:8bity 传输时没有可靠机制的保证
特点:不提供重传机制,占用资源小,处理效率高
应用场景:对延时敏感的流量,例如语音,视频等
网络层:
IP:Internet protocol
IPX ATM
作用:数据包分片 进行地址标识
------------------------------------------------------IP地址
IPv4:
地址格式:X.X.X.X
大小:32bit 2^32≈42.9亿
IP地址组成:
网络位+主机位=32
192.168.1.1
11000000.10101000.00000001.00000001
IP地址分类:
A类:0.0.0.0-126.255.255.255 私有地址范围:10.0.0.0-10.255.255.255
B类:128.0.0.0-191.255.255.255 172.16.0.0-172.31.255.255
C类:192.0.0.0-223.255.255.255 192.168.0.0-192.168.255.255
D类:224.0.0.0-239.255.255.255 特殊地址范围:127.0.0.0-127.255.255.255 环回地址
E类:240.0.0.0-255.255.255.255 0.0.0.0 所有IPv4地址的网络地址
255.255.255.255 所有IPv4地址的广播地址
网段:包含一部分连续的地址 从某一个地址到某一个地址
子网掩码:划分网段(区分网络位和主机位)
192.168.1.1/24
11000000.10101000.00000001.00000001
255.255.255.0
11111111.11111111.11111111.00000000
子网掩码为1的地方对应IP地址中的网络
子网掩码为0的地方对应IP地址中的主机位
注:当主机位全为0是网络地址 主机位全为1是广播地址
例:192.168.1.1/24
地址范围:192.168.1.0-192.168.1.255
网络地址:192.168.1.0(主机位全为0)
广播地址:192.168.1.255(主机位全为1)
可用地址范围:192.168.1.1-192.168.1.254
VLSM:可变长子网掩码
作用:缓解了使用默认掩码导致的地址浪费的问题
192.168.1.1/25
地址范围:192.168.1.0-192.168.1.127
网络地址:192.168.1.0
广播地址:192.168.1.127
地址范围:192.168.1.1-192.168.1.126
CIDR:无类域间路由(超网)
作用:将路由表中若干条路由汇聚为一条路由减少了路由表的规模,提高路由器的可扩展性
例:10.24.0.0/24 10.24.1.0/24 10.24.2.0/24 10.24.3.0/24
把这几个网段汇聚成:10.24.0.0/22
24.0.0/24
00001010.00011000.00000000.00000000
10.24.1.0/24
00001010.00011000.00000001.00000000
10.24.2.0/24
00001010.00011000.00000010.00000000
10.24.3.0/24
00001010.00011000.00000011.00000000
汇聚成10.24.0.0/22
00001010.00011000.000000 00.00000000
单播:一对一通信
组播:一对一组
广播:一对所有
IP报文:
IP报文头部大小:20B-60B 也是固定20
Version:版本
Header Length:头部长度
DS Field:拆分服务 表示数据包优先级
Total Length:总长度(IP头部长度+后边数据的长度)
Identfifation 标识字段:标识数据片是数据原来那个数据包的,保证数据分片后被重组
Flags:标志字段:标识数据片是否是最后一个
当数据片是最后一个的时候标志为0,如果不是0则不是最后一个分片
Fragment Offset:片偏移:标识数据片在原来的数据中的位置(偏移量)
Time to Live:生存时间(TTL):数据包每经过一台三层设备转发TTL值-1
当TTL为0时,设备会丢弃该数据包,默认的TTL值是255
Protocol:协议字段 标识上层(传输层TCP/UDP,或者其他)协议
如ICMP(Internet Control Message Protocol,因特网控制报文协议)字段为1
TCP:字段为0x06
UDP:字段为0x11 转换为16进制为0x17
数据链路层:
作用:根据底层链路不同,来保障传输
Ethernet:以太网 二层协议 0x0600 大于1536
IEEE:802.3 二层协议 0x05DC 小于15
---------------------------------------地址:MAC地址
每个网卡都有一个MAC地址,这个地址是全球唯一的
MAC地址为:48bit
二进制 1000 8
1001 9
1010 10 a
1011 11 b
1100 12 c
1101 13 d
1110 14 e
1111 15 f
10000 16 f0
10001 17 F1
十六进制数:0-9 a-f
一个十六进制数由4个二进制构成
MAC地址一共有12个十六进制数组成
书写方式:D8:81:D7:AB:B6:06 冒号分十六进制
前24bit是供应商代码(厂商ID)后24bit为序列号
为什么要有MAC地址:
因为要经过多条链路,每条链路有起点和终点
如果要用IP地址表示比较麻烦,目的IP和源IP是不变的
数据包在网络中传输,如果传输的不是以太网 就没有MAC地址
也就是说MAC地址是属于以太网中的
单播:从左往右数第8bit为0
组播:从左往右数第8bit为1
广播:12个十六进制数都是F
数据帧格式:
Ethernet-II
SMAC | DMAC | Type | Data | FCS |
Length>=1536(0x0600) 是以太网最常用的格式 有type字段 type表示上层协议
当Type字段为2048(0x0800)是IP协议
2054(0x0806)ARP协议
IEEE802.3
SMAC | DMAC | Length | LLC | SNAP | DATA | FCS |
Length/Type <= 1500 (0x05DC)
物理层:
数据帧<=========>比特流
当在网络中使用PING命令时,使用的是ICMP协议
ICMP:英特网控制信息协议
作用:测试连通性(ping)、差错控制、链路检测(tracert)
ICMP没有传输层
ARP:地址解析协议
ARP广播请求消息
ARP单播回复消息
直接封装在数据链路层之上,没有网络层没有传输层
广播
ARP缓存表:
存在时间为1200秒
用ARP -a来查看ARP缓存表
IP MAC
-------------------
X.X.X.X xx.xx.xx.xx.xx.xx