osi七层模型
1 application <== 应用层
2 presentation<== 表示层
3 session <== 会话层
4 transport <== 传输层
5 network <== 网络层
6 data link <== 数据链路层
7 physical <== 物理层
ip
ip的包头一共有12个字段,选项部分用于测试,正常不会用,以下介绍12字段:
1 版本 ipv4 占4位bit
2 首部长度占4为 bit 表示最大十进制数值是15.这个字段表示的单位是32位字长(一个32位字长是4字节),首部长度限制60字节 有时候不够用。 最常用的首部字节就是 20字节(即首部长度为0101)这时候不使用任何选项。
3 区分服务 占8位 ,只有在使用区分服务时 这个字段才会起作用。
4 总长度 首部和数据之间的和长度,单位字节。字段为16位,数据报的最大长度位65535 0-65535 =65534.
5 标志 fkag 3位 目前只有位有意义
7 片偏移 占13位
ip地址 最突出的作用:可以表示网络设备所在的网络位置,就是说 此网络设备在网络中的什么位置,处于哪个网段。
[root@centos7 ~]#echo "ibase=2;11000000101010001111110110000101"|bc 《1
[root@centos7 ~]#ping 3232300421
PING 3232300421 (192.168.253.133) 56(84) bytes of data.
64 bytes from 192.168.253.133: icmp_seq=1 ttl=64 time=0.262 ms
## tcp udp 端口结构
一个端口对应一个16bit的数通常是一个固定的个端口
源端口 理解为客户端端口,代表发送端的app 随机生成的一个 大于 1023 的随机数。
目的端口:服务器端口 ,代表接收端的应用程序,通常是tcp ip 规范的服务,称为标转端口,
# tcp
1) 16位源端口号:16位的源端口号
2)16位目的端口号:指明了应用程序地址接口
3)32位序号:32位序号有接收端计算机使用,重新分段的报文成最初形式。
4) 32位确认序号:这由计算机接收端使用,
5)4位首部长度:4位包括tcp头大小,指示数据从何处开始。
6) 保留(6位: 6位值)为了将来定义新的用途而保留
7) 标志:6位标志域。:
URG:紧急标志。为1时有效
ACK:确认标志。表明确认编号栏有效。
PSH:推标志 置位时 接收端不讲数据进行排队处理,而是尽可能将数据转由应用处理。
RST:复位标志。复位相应的tcp链接 为1 表明有故障 重新传
SYN:同步标志 表明同步序列标号兰有效,该标志仅在三次握手时有效哦
FIN:结束标志 关闭tcp时
8)16位窗口大小:表示想收到的每个tcp数据段大小。tcp流量控制由链接的每一端通过声明的窗口大小来提供。大小为字节数,16字节字段,因而窗口大小最大为65535字节
9)16位校验和:16位tcp头。元季奇基于数据内容计算一个数值,目标和源数值完全一样。证明数据的有效 强制的字段,发送端计算和储存,接受端验证。
URG和psh的区别
urg=1,紧急指针指向包内数据段的某个字节(数据从第一字节到指针所指字节就是紧急数据,不进入接收缓冲就直接交给上层进程,余下的数据要进入接收缓冲的)psh=1就是是把接收缓冲中排好序的那一段数据交给上层
C/S client/Server B/S broswer
ssh c/s
> shell
已经规定的端口号
http tcp 80
https tcp 443
ssh tcp 22
ftp 21
QQ :udp 8000
dhcp 67,68
snmp 161
mysql tcp 3306
oracle tcp 1521
sql server 1433
kerberos 88/tcp
smtp 25
pop3 110
imap 143
smb 445
<>