Redis预习资料

什么是网络

1. OSI七层网络模型协议

OSI七层网络模型协议

网络模型说明
应用层与用户交互的,或独立在后台运行、对外提供服务的软件,如浏览器,tomcat,应用软件
表示层协议、语义、段落的划分、字符串的表示、加密
会话层传输的控制、session、会话的保持
传输控制层如何建立连接,如何传输,状态是确认还是失败的控制->TCP\UDP
网络层设备当中的路由、如果找.到节点、如何通讯、数据包怎么发
链路层点与点之间的通讯的协议->P2P\以太网
物理层WI-FI、4G、光纤

2. TCP/IP协议

TCP/IP协议

2.1 应用层(HTTP协议、TCP协议、SSH协议)

第一步:建立socket连接,得到IO
第二步:传输数据(http协议:规范标准)
浏览器只需要把http协议的请求准备好,往下调用传输控制层(建立socket,得到IO,传输数据),最终得到请求返回的数据,浏览器再进行解析渲染。
在这里插入图片描述

cd /proc/$$/fd

proc:操作系统进程
$$:程序的进程ID号
fd:文件描述符
0:输入、1:输出、2:报错

在这里插入图片描述

exec 8<> /dev/tcp/www.baidu.com/80

8<>:创建一个文件描述符8,输入输出两个方向的IO,都指向/dev/tcp/www.baidu.com/80这个磁盘目录,
8最终指向一个socket套接字通信,/dev/tcp/www.baidu.com/80这个磁盘目录,在内核中被转换成一个socket套接字,已经和百度建立了握手,创建了tcp通信,才可以用应用层的协议来传输协议规范,即http协议来通讯获取百度主页在这里插入图片描述

echo -e 'GET / HTTP/1.0\n' >&8
cat 0<& 8

echo:发送请求,通过重定向打印到文件描述符8的socket里,通过socket将Http请求头‘GET / HTTP/1.0\n’发送给百度
cat:读取返回文件,能从标准输入读文件
-e:将\n转义
>&:>表示命令重定向,会将‘GET / HTTP/1.0\n’命令输出到文件描述符8,&符号代表8不是文件,而是文件描述符
0<& 8:来自于文件描述符8

2.2 传输控制层(TCP协议、UDP协议)

  1. TCP协议:面向连接的,可靠的传输方式(三次握手->数据传输->四次分手,为最小粒度,不可被分割)
    1.1 三次握手:ACK确认,开辟线程、对象、资源,描述符、建立连接,此时没有传输应用层的数据,只有建立连接之后,才开始传输数据,后续通讯无需再握手确认
    1.2 四次分手:因为最多65535个端口,所以连接完了之后必须要进行分手。两端都必须发送分手包和收到对方的分手确认包,才能断开连接
  2. UDP协议:不用连接的,不可靠的传输方式

传输控制层只创建握手包,需要调用网络层进行网络梳理、再到链路层知道下一步去哪、最终到物理层网卡,做二进制编码,才能把握手包发出去,再回来,再发送确认包(确认包中如果带着应用层的协议请求数据,就可以收到对方的响应回来的数据)
在这里插入图片描述

netstat -natp

n:显示IP地址,不用逻辑名称显示,a:所有,t:TCP,p:PID,进程ID号
socket即为两端的ip:port进行连接
本地地址192.168.150.14:22同时被多个外部来源地址192.168.150.1连接,但他们的连接端口号各不相同,是各自独立的连接,可以进行各自的IO传输,互不影响
tcp抓包查看三次握手及四次分手

2.3 网络层(路由表)

网络层只负责在路由表做路由判断,找到下一跳地址。

2.3.1网卡信息文件

在这里插入图片描述

cat /etc/sysconfig/network-scripts/ifcfg-eth0

cat:读取一个文件,读取网卡信息文件
ifcfg:接口配置,if:interface
eth0:第一块以太网
四个维度:IP地址(网络号+主机号,点分字节,一个字节有8个二进制位,即0~255)、掩码(IP和掩码做二进制按位与,可得到网络号)、网关、DNS域名解析

2.3.2 路由表路由表
route -n
2.3.3 下一跳机制

每一个互联网的设备,内存不需要存全网的IP地址,只需要存它周边一步之内的IP地址。根据路由表判定,找到它的下一个IP地址。
在这里插入图片描述
百度的域名转换为目标地址61.135.169.121,拿百度的IP地址到路由表的每一行条目做路由判定,与子网掩码做按位与运算之后,可得到下一跳地址。与子网掩码为0.0.0.0进行按位与运算,结果为0.0.0.0,与目标匹配,得到下一跳地址,即默认网关地址192.168.150.2。
网关为0.0.0.0表示与目标地址在同一局域网,不需要进行下一跳。

2.4 链路层(arp协议)

在这里插入图片描述

arp -a

arp协议:DNS会解析IP地址与全网域名之间的映射,arp会解析IP地址与网卡硬件地址的映射,arp是同一局域网内的,受限于同一局域网,可以得到同一局域网内有哪些IP,这些IP在网卡的mac地址是多少。
链路层得到mac之后,会封装一个数据包,包内有3个地址:最外层是链路层的mac地址,即下一跳地址,下一层是数据包的目标地址最终的IP地址,最里层是端口号,最终到服务器是哪个端口号对应的进程。这3个地址最终确定了数据从主机发出去之后,最终到达哪个设备的哪个端口号对应的进程。TCP/IP协议是基于下一跳机制,硬件mac地址是节点间的,每一次跳跃,都会变化,IP地址和端口号是端点到端点的,不会发生变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值