internetprotocal ---IP
ARP:地址解析协议
逻辑地址---->物理地址
已知逻辑地址的情况下,获取对应该逻辑地址的物理地址
如何解析:
1.每个参与网络功能的设备中,都有一个ARP库:
2.ARP缓存:通过ARP协议进行广播,指定的目标主机进行回应,本机缓存对应的结果信息。
RARP:反向地址解析协议
物理地址--->逻辑地址
已知本机的物理地址,获取合法的逻辑地址
用于无盘工作站
面向无连接:
1.无需在通信之前建立通信连接,也无需维护连接的稳定,通信结束也无需拆除连接
2.无序数据传输
3.无数据恢复和数据可靠性保证
平面编址和分层编址:
平面编址:将所需管理的资源从头到尾按照固定大小分为若干个cell,每个cell进行独立编址
特点:编址容易,寻址需要遍历,效率低
分层编址:将所需管理的资源进行各种分类,按照对应的类别进行编址
特点:编址复杂,但是寻址高效
IP地址由两部分组成:
网络部分:用来描述指定主机所在的网络范围
主机部分:用来描述指定主机在特定的网络范围中的具体位置
IP地址:是由IPv4协议定义的,
整个地址是由32位二进制构成
网络位+主机位 = 32
IP地址的分类:
A类:第一个二进制位必须为0,并且网络位8位
B类:前两个二进制位必须为10,并且网络位16位
C类:前三个二进制位必须为110,并且网络位24位
D类:前四个二进制位必须为1110,并且网络位32位,D类通常用于组播通信
E类:前四个二进制位必须为1111,保留用于科学研究
IP地址的点分十进制表示法:
1.将32位的IP地址位,以8位为一组,共划分为四组
2.每一组之间使用.符号进行分割
3.将每个8位组转换为十进制表示
使用点分十进制表示法表示的各类IP地址范围:
A类:0.0.0.0 ~ 127.255.255.255
00000000.00000000.00000000.00000000
01111111.11111111.11111111.11111111
规定:第一个八位组全为0是无效IP,因为其表示整个IP地址栈
第一个八位组中除了第一位以外全为1,称为环回地址
有效A类的IP地址:1.0.0.0 ~126.255.255.255
B类:128.0.0.0 ~ 191.255.255.255
10000000.00000000.00000000.00000000
10111111.11111111.11111111.11111111
C类:192.0.0.0 ~ 223.255.255.255
11000000.00000000.00000000.00000000
11011111.11111111.11111111.11111111
D类:224.0.0.0 ~239.255.255.255
11100000.00000000.00000000.00000000
11101111.11111111.11111111.11111111
E类:240.0.0.0 ~ 255.255.255.255
11110000.00000000.00000000.00000000
11111111.11111111.11111111.11111111
IP地址2:
保留地址:不能选择被其他主机配置使用的IP地址
0.0.0.0 ~ 255.255.255
127.0.0.0 ~ 127.255.255.255
自动分配地址段:
169.254.0.0 ~ 169.254.255.255
网络地址:主机位全为0的地址
1.0.0.0:表示一个范围的名称 16777736
广播地址:主机位全为1的地址:
1.255.255.255:作为目的地址代表整个网段中的所有IP地址
定向广播地址:
255.255.255.255:作为目的地址代表整个IP地址栈中的所有IP地址
IPv4的地址总数:2*32=42亿9400万
去除的IP地址:
D类和E类:5亿多
0和127网段的地址:3500万
169.245网段地址:65536
网络地址:126+16384+209万
广播地址:126+16384+209万
可以分配给主机使用的大概有36亿
为了解决IP地址枯竭问题:
增加IP地址的复用次数:
私有IP地址:可以重复使用互联网无法为其路由
A:10.0.0.0 ~ 10.255.255.255
B:172.16.0.0 ~ 172.31.255.255
C:192.168.0.0 ~ 192.168.255.255
共有IP地址:可以在互联网中使用,但必须为一
NAT:
SNAT:源地址转换,使用公有IP地址替换数据包中的私有IP地址
DNAT:目的地址转换,使用私有IP地址替换数据包中的公有IP地址
研究更加庞大的地址栈:
IPv6:128Bit,2^128=3.4×10^38,10^80
冒号分十六进制
IPv4和IPv6共存:
1.地址转换
2.IPv6地址包含IPv4地址:IPv6地址最右侧的32位就是IPv4地址
IP首部的格式:
version:4bits,协议版本信息:ipv4 0100 ipv6 0110
IHL:4bits,IP首部的长度,15行
20Byte ~ 60Byte,必须为4的整数倍
服务类型:
4bits:服务类型
0000,0001,0010,0100,1000
最大带宽,最小延迟,最大吞吐量,最高可靠性
1bit:保留位
3bits:优先级
000,001,010,011,100,101,110,111
数据包长度:16bits,65536byts 包括首部,64KB
标识:16bits标识数据的来源,标识指定的数据是由哪个源数据分片得到的。
标志:3bits,
第一位:是保留的
第二位:是否分片
第三位:是否有更多分片,表示数据是否为最后一个分片
000,010,011
片偏移:13bits,IP协议在对数据包进行分片之后的序号,
生存时间(time to live,TTL):8bits,计数器
每一个数据包都会获得一个初始化的TTL值,在每次经过路由器设备之后,都会自减1,0表示为该数据包为不可用设备,下一次路由设备将其获得后,会直接丢弃,可以有效防止数据包的死循环传输
通常的TTL的初始值可以是:256,128,64
协议号:8bits,互联网层和传输层直接的通信接口,根据协议号指定的内容,正确接受数据后,向上交给传输层的那一个协议进行进一步解封处理
TCP:6
UCP:17
OSPF:89
EIGRP:88
首部校验和:16bits,进行首部的可靠性校验
源地址:32bits,发送方地址
目的地址:32bits,接收方地址
计算机如何使用IP地址:
源IPv4地址:发送数据的主机上配置的IP地址
源IPv4的配置方式:
手动配置:直接向网卡的配置文件中添加我们认为合法的IPv4的地址
特点:地址分配精确,同时容易发生手误导致主机无法接入网络,管理员的重复工作量很大
自动配置:没有IP地址的计算机通过某种特定的协议向其他能够提供IP地址的计算机进行通信,并获得IPv4地址。
协议:
BOOTP:
启动协议
利用RARP协议向全网广播获取IP地址的需求,BOOTP服务器会从其地址池中选择一个IPv4地址,永久归这台主机使用
DHCP:
Dynamic Host Configuration Protocol动态主机配置协议,地址租借规划
每个地址都有对应的租约期限
续租的规则:
当租约期限过去一半的时候就开始联系服务器进行地址续租,如果续租不成功,客户端会连续尝试三次,当租约期限过去87.5%时,客户端会放弃IP地址,重新广播是否有其他服务器能够让其继续使用之前的IP地址。
一直等到租约到期,客户端IP地址彻底被释放,客户端将试图从其他服务器上获得其他的IP地址以连接网络。
DHCP客户端的地址租借过程---四线会话
1.客户端发送DHCP Discover消息,以确定网络中是否有DHCP服务器能为本机提供IP地址。
2.服务器收到了 Discover消息后会检查自己的地址池,如果任然有可用的IP地址,就从中选择一个IP地址,向客户端广播发送DHCP Offer消息。
3.客户端将接受到的第一个DHCP offer消息中的IP地址作为可选择IP地址,向网络中广播DHCP Request消息,通知服务器,选定这个IP地址作为本次通信的IP地址。
4.提供IP地址的服务器收到DHCP Request消息后,将IP地址和对应的主机的物理地址临时绑定,并且开始租约计时,给客户端发送DHCP ACK消息
不是提供该IP地址的服务器收到DHCP Request,将刚刚提供的IP地址重新放入地址池中,并给客户端发送DHCP NAK消息
目的IP地址如何给出:
手动指定:
直接在地址栏中手动书写目的主机的IP地址
自动解析:
DNS协议:Domain Name System
在DNS服务器上保存着特定的域名和IP地址的映射关系,可以完成地址解析的任务。
地址解析:
正向地址解析:
通过域名获得其对应的IP地址的过程
反向地址解析:
通过IP地址反解其域名的过程
TCP/IP协议栈的分层结构:
应用层
传输层
互联网层
网络访问层(物理层,数据链路层)
传输层:
OSI的第四层:端到端的链接
TCP/IP第三层:
TCP协议:传输控制协议
UDP协议:用户数据报协议
UDP协议的首部的格式:
端口:也称为逻辑端口,协议端口,它是应用层和传输层之间的通信接口
端口是由16bits二进制构成的数字标识,其范围是0~65535
其中:
0:表示全部端口号,不能单独使用
1~1023:保留端口号
1024~64511:动态分配端口
64512~65535:注册端口
ssh:TCP/22
http:TCP/80
https:TCP/443
SMTP:TCP/25
POP3:TCP/110
IMAP:TCP/143
telnet:TCP/22
ftp:TCP/22
DHCP:UDP/67(server 服务器) UDP/68(clinent 客户端)
DNS:UDP/53 TCP/53
Windows系统中:C:/Windows/system32/dirvers/etc/services
linux类的操作系统中:/etc/services
这类文件中,保存了应用层协议和传输层协议之间默认的通信接口映射关系
源端口:16bits,发送方在封装数据的时候选择的端口号,一般来讲,客户端发送的数据的源端口号是随机选择的空闲端口
目的端口:16bits,此次数据通信的接收方在传输层向应用层进行数据传递时所必须使用的端口号,一般来讲,数据的目的端口是固定的
注意:
1.一般来讲,一次往返通信过程中,两组数据的端口号会互换
2.在使用端口时,更加在意目标端口的准确性,如果因为目标端口不明确而导致接收方无法使用正确的应用程序来处理数据,则该数据会直接被传输层协议丢弃
数据长度:16bits,整个UDP数据报的报文长度,包括首部
数据校验和:16bits,整个UDP数据报的校验和,一定程度上保证了数据的完整性。
传输层协议:
TCP协议:
TCP特点:
TCP/IP 协议栈的传输层
为应用程序访问的网络层
面向连接的协议
全双工模式运行
错误检查
数据包序列化
接收确认
数据恢复功能
源端口号:16bits
目的端口号:16bits
序列号:32bits,1-2^32-2
第一个数据段的序列号为随机选择
第二个数据段的序列号,前一个数据段的序列号加上前一个数据段数据部分的大小加1
确认号:32bits,确认号的范围:2~2^32-1
接受数据方用来对已经接收到的数据进行确认,要求发送方继续传输后续数据段的标识。一般来讲确认号是发送方要发送的下一个数据段的序列号
首部长度:4bits,24字节~60字节
保留标志位:3bits,暂时没有被使用
认证加密标志位:3bits
TCP特性标志位:
urg:紧急指针标志位,如果该标志位置1,该数据的转发优先级将会被提高,以使得这样的数据被优先转发,如果多个数据的urg标志位同时置1,则后面16位的紧急指针越大的,优先级越高。
ack:与连接管理有关的确认标志位,用来相应主动发起连接的建立请求,或拆除请求的那一方
psh:推进位,如果该标志位置1,则在接收方可以将该数据不加入缓存队列,直接交给应用程序进程进行处理。
rst:重置连接标志位,在TCP连接耗尽或者出现故障的时候,重新构建TCP连接的标志位
syn:同步标准位,用于在建立TCP连接的过程中主动发送连接建立请求的那一方发起连接的信号
fin:结束连接标志位,如果该标志位置1,则另一方知道此次TCP连接将被拆除,予以确认即可。
窗口大小:主要实现流量协商及控制,可以防止网络拥塞,
滑动窗口
拥塞窗口
紧急窗口
窗口的大小意味着我们一次可以传输的数据段的数量
数据段校验和:16bits,保证数据完整性的校验信息。
紧急指针:16bits,在urg标志位都置1的时候,用于区分其优先级。
选项:数据段分段的时间戳。
TCP协议的面向连接的特性:
1.连接建立,三次握手
1)由发送方生成一个TCP首部数据,在首部中源、目的端口的应用层协议给出,序列号为随机选择,确认号为0,标志位syn置1
2)接收方收到由发送方发来的syn请求数据后,判断自身能否完成对方所要求的数据通信,如果可以,则返回一个由其生成的TCP首部数据,源、目的端口与之前的数据正好相反,序列号随机,确认号为对方下一个数据的序列号,syn和ack两个标志位同时置1
3)发送方在接收对方的响应数据之后,检查其ack标志位是否置1,如果为1,再看syn标志位是否置1,如果也是1就予以确认,随机生成第二个TCP首部数据,序列号为前一个数据的序列号+1,确认号为接收方下一个数据的序列号:ack标志位置1
2.拆除连接,四次握手
1)当所有的数据传输结束后,由一方主动向另一方发送一个fin标志位置1的TCP首部数据
2)另一方收到这样的fin置1的数据之后,回应一个ack标志置1的确认数据
3)另一方主动发出一个fin标志位置1的TCP首部数据,请求拆除链接
4)主动结束方予以确认,发送ack标志位置1的TCP首部数据
TCP协议的流量控制特性:
被动流量控制:拥塞窗口
由于收发双方的网络资源不均衡或不对等造成的网络拥塞,导致接收方数据缓冲区溢出,使得大量的数据丢失,由接收方发送一个窗口大小为0的确认数据段给发送方,以暂停发送方的发送。
主动流量控制:滑动窗口
每一次双方互相通信时,都会协商窗口的大小,以最小窗口为标准,发送方安装这样的窗口的大小进行数据发送
TCP协议的确认特性:
1.在发送方尚未接收到来自于接收方的确认信息之前,不会继续发送后续数据
2.如果在一定的超时时间之内,发送方没有收到接收方发送的确认信息,发送方会重新传输之前发送过的数据
通过确认特性,能够保证数据的可靠性传输