IP地址的分类:
网络位和主机位:
网络位相同,则在同一个泛红范围,网络位不同,则在不同的泛红范围
主机位用来区分和标定同一个泛红范围内的不同主机
子网掩码,使用连续的1和0表示,1代表网络位,0代表主机位
A类: 0------127 0xxx xxxx
B类: 128-----191 10xx xxxx
C类: 192-----223 110x xxxx
D类: 224-----239 1110 xxxx
E类: 240-----255 1111 xxxx
ABC----三类为单播地址,既可以作为源IP,也可以作为目标IP使用
- -----组播地址----只能作为目标ip
- -----保留地址
特殊ip地址:
- 127.0.0.1---127.255.255.254-----环回地址
- 255.255.255.255 -------受限广播地址(在不知道要请求的主机的ip/mac地址的情况)---->只能作为目标IP使用
- 主机位全一 ------(不同域内请求,不知道目标IP和MAC地址,但知道目标地址所在的广播域)---->只能作为目标IP使用
- 主机位全0 ------- 代表的是一个网段,网络号
- 0.0.0.0------- 1.可以代表没有地址 2.可以代表所有地址
169.254.0.0/16 ------- 自动私有地址
VLSM----可变长子网掩码-----子网划分
例子:192.168.1.0 00000000/25 范围:192.168.1.1----192.168.1.126
192.168.1.1 00000000/25 范围:192.168.1.129----192.168.1.254
CIDR----无类域间路由-----汇总
取相同,去不同
例题:192.168.1.0/24
192.168.0.0/24
192.168.2.0/24
192.168.3.0/24
192.168.000000 00.00000000/22(相同不变,不同去掉)
192.168.0.0/24-------超网
协议的分层:
TCP/IP协议簇:
TCP/IP四层模型---------TCP/IP标准模型
TCP/IP五层模型----------TCP/IP对等模型
OSI/RM-------开放式系统参考模型
OSI参考模型的核心思想: -----分层
属于同一层面得不同功能,其目的和作用相似或相近;不同层面的功能其目的和作用有明显的差异,每一层都在下面那层提供的服务的基础上再提供增值服务。
分层的作用:
- 更易于标准化
- 降低层次之间的关联性
- 便于学习或理解
层次功能:
应用层(数据报文):应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
表示层:将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。数据的表示、安全、压缩。
会话层:维持网络应用和应用服务器之间的会话连接。
传输层(数据段):实现端到端的传输(应用之间的传输)----端口号:由16位2进制构成(1---65535,其中1-1023:知名端口号
功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发 回确认,并且假如分组丢失,必须重新发送。
网络层(数据包):地址管理与路由选择, 在这一层,数据的单位称为数据包(packet)(路由器)。
一、处理来自传输层的分组发送请求,收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。
二、处理输入数据报:首先检查其合法性,然后进行寻径--假如该数据报已到达信宿机,则去掉报头,将剩下部分交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。
三、处理路径、流控、拥塞等问题。
数据链路层(数据帧):介质访问链路层(MAC) + 逻辑链路控制层(LLC){FCS----帧校验序列}{确保数据完整性-----CRC(循环冗余算法)}
物理层(比特流):以"0"、 "1"代表电压的高低,灯光的闪灭,在这一层,数据的单位称为比特(bit),(中继器、集线器、还有我们通常说的双绞线也工作在物理层)。
封装和解封装:---------每层通过相应的协议进行操作
应用层----http(超文本传输协议):80
ftp(文件传输协议):20/21
telnrt(远程登录协议):tcp:23
dhcp(动态主机配置协议):udp:67/68
dns(域名解析协议):udp/tcp:53
tftp(简单问价传输协议):udp:69
httpd(http+ssl)
表示层------ASCII;ASN.1;JPEG,MPEG;
会话层------NetBIOS;ZIP
传输层------端口号----TCP/UDP (理解:端口号,区分应用得编号)
网络层------IP地址----IP
数据链路层 ----MAC地址---以太网:早期局域网的解决方案,主要依赖MAC地址进行寻址。以太网主要工作在1,2层
物理层-------EIA/TIA RS-232 ;EIA/TIA RS449; V.35; RJ45
TCP与UDP
TCP与UDP的区别:(计时类偏UDP)
1.TCP:面向连接的协议,UDP是无法连接的协议(扔球游戏)
2.TCP的传输是可靠的,UDP的传输“尽力而为”
3.TCP可以分段,UDP不行
4.TCP可以实现流控制,UDP不行
5.TCP传输速度较慢,消耗资源较大;UDP传输速度快,资源消耗小;
面向连接是什么?
面向连接指的是设备在传输之前,先使用预备的协议建立点到点的连接,然后再传播数据
TCP与UDP的使用场景:
TCP适用于效率要求较低,但准确性要求较高的场景;
UDP适用于效率要求较高,但准确性要求较低的场景;
TCP与UDP的头部剖析:
TCP头部:
伪头部校验:校验网络层中12个字节的内容。32位源IP,32位目标IP,8位协议,16位总长度。
UDP头部:
0----------------------------------------------------------15 16-------------------------------------------------------31
16位源端口号 | 16位目的端口号 |
16位UDP长度 | 16位UDP校验和 |
数据..... |
TCP会话过程:
客户端 / 服务器状态:
URG ----紧急指针是否有效。为1,表示某一位需要被优先处理
ACK----- 确认号是否有效,一般置为1。
PSH----- 提示接收端应用程序立即从TCP缓冲区把数据读走。
RST------ 对方要求重新建立连接,复位。
SYN------ 请求建立连接,并在其序列号的字段进行序列号的初始值设定。建立连接,设置为1(SYN攻击:客户端发动攻击-------------在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直 至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。半连接状态)
FIN---------希望断开连接。
SET--------强制断开连接
建立连接(三次握手):
1. 第一次:浏览器首先发送SYN给服务器,请求和服务器建立连接。
2. 第二次:服务器接收到SYN码后,发送SYN+ACK码给浏览器,告诉浏览器已建立连接。
3. 第三次:浏览器接收ACK码,验证是否正确,若正确是建立数据连接,可以进行数据传输。
断开连接(四次挥手):
1. 第一次:浏览器发送FIN码给服务器,告诉服务器,数据传输完成。
2. 第二次:服务器接收到FIN码,然后发送ACK码给浏览器,告诉浏览器,你可以断开连接。
3. 第三次:服务器继续发送FIN+ACK码,告诉浏览器我的数据发送完毕。
4. 第四次:浏览器接收到FIN+ACK码之后,同样会发送ACK码给服务器,告诉服务器,我已接收到,你可以断开连接
TCP确保可靠性的机制:-------确认,重传,排序,流控(滑动窗口值--->数据包)
常见的协议号:
UDP:17
TCP:6
ICMP:1
TCP(传输层)的分段和IP(网络层)的分片:
分段发生在传输层(常发生在UDP传输层协议上),分片发生在网络层
MTU(Maximum Transmission Unit,MTU),最大传输单元:
原理:如果IP层有一个数据要传,且数据的长度比链路层的 MTU还大,那么IP层就要进行分片(fragmentation),把数据报分成若干片,这样每一个分片都小于MTU
最大传输字节(UDP组成的数据报文)----1500
MMS 最大数据分段-----1460(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)