负载均衡LVS01 - 网络协议原理

本节主要介绍OSI七层参考模型的应用层,传输控制层,网络层和链路层的相关内容

OSI 七层参考模型

OSI 七层参考模型的主要作用是:分层解耦,只要保证接口不变,开发人员可以分层进行开发(可以类比web开发中的mvc设计思想),其本质是节点间进行通信。

附:OSI 七层参考模型示意图


OSI 七层参考模型

我们把7层模型精简后,可以精简成4-5层的模型,如图所示,其中应用层属于CPU用户态,传输控制层至链路层隶属CPU内核态

精简的4-5层模型

应用层:

常用得应用层协议:

  1. http协议
  2. ssh协议 比如连接虚拟机
  3. smtp 比如发送邮件

演示http的发送过程:测试环境linux,连接工具xshell

第一步:
cd /proc/$$/fd   ##/proc/7497/fd  &&当前解释程序的进程ID号  fd文件描述符
ll    

显示信息:
Linux系统一切皆文件,我们的socket也可以用文件表示
lrwx------. 1 root root 64 6月 11 11:22 0 -> /dev/pts/0 #文件描述符0 ->>标准输入,类比Syetem.in
lrwx------. 1 root root 64 6月 11 11:22 1 -> /dev/pts/0 #文件描述符1 ->>标准输出,类比Syetem.out
lrwx------. 1 root root 64 6月 11 11:22 2 -> /dev/pts/0 #文件描述符2 ->>标准报错信息,类比Syetem.err
lrwx------. 1 root root 64 6月 11 11:28 255 -> /dev/pts/0

第二步:创建与baidu的连接
exec 8<> /dev/tcp/www.baidu.com/80   ##创建文件描述符8,可输入输出(<>),指向磁盘路径,和百度建立了连接

显示信息:
lrwx------. 1 root root 64 6月 11 11:22 0 -> /dev/pts/0 #文件描述符0 >->标准输入,类比Syetem.in
lrwx------. 1 root root 64 6月 11 11:22 1 -> /dev/pts/0 #文件描述符1 >->标准输出,类比Syetem.out
lrwx------. 1 root root 64 6月 11 11:22 2 -> /dev/pts/0 #文件描述符2 >->标准报错信息,类比Syetem.err
lrwx------. 1 root root 64 6月 11 11:28 255 -> /dev/pts/0
lrwx------. 1 root root 64 6月 11 11:31 8 -> socket:[68504] #创建了与>baidu的连接

第三步:发送http协议
echo -e 'GET / HTTP/1.0\n' >& 8   ##请求头最小的写法,模拟浏览器,-e是\n变成换行符  >&重定向到文件描述符 8
第四步:查看返回的内容
cat 0<& 8         ##查看返回内容
exec 8<& -        ##查看内容后,断开连接,关闭文件描述符8
查看返回的数据信息

传输控制层

发送http请求的前提是,已经在传输控制层建立了通讯,开辟了资源。
传输控制层的协议主要有:

  1. TCP协议,面向连接的可靠的传输方式
  2. UDP协议,非面向连接的不可靠的传输方式

在这里主要介绍TCP协议
建立一次TCP连接的过程是 3次握手 -> 数据传输 ->四次分手 ,这个过程是不可被分割的。

1.三次握手

三次握手是通讯双方建立连接的确认机制,三次握手结束后才开辟资源,比如说使用BIO创建一个web服务器,每次三次握手之后抛出线程创建一个连接。

三次握手的过程:
1.客户端发出sync信号(数据包),请求创建连接。
2.服务器端返回ack确认信号(数据包),表示收到了创建连接的请求,并且发出了sync新号(数据包),请求客户端的连接。
3.客户端给服务端回复ack确认信号(数据包),连接建立成功。最后一次确认信号一般是带着实际数据一起发送

三次握手示意图

为什么是三次握手:无论对于客户端还是服务端,IO都是双向的。也就是说对于客户端和服务端来说,发送出一个sync信号,同时都需要一个ack信号保持确认,如果是2次握手,则服务端发出的sync无法收到ack的确认信号。

2.四次分手

四次分手一定是必然,因为无论客户端还是服务端的资源都是有限的(比如端口号),在数据传输之后,需要释放资源,四次分手后再销毁资源


四次分手示意图

网络层

传输控制层封装的数据包,需要向下发送,经过网络层,我们来看一下网络层都有哪些维度的信息,和它是如何运行的。

netstat -natp ##查看服务器的连接状态

当前服务器的连接状态

其中第四条信息Local Address:192.168.10.31:22表示当前连接中本机的ip:port,Foreign Address:192.168.10.1:55301表示连接到本机的ip:port,这个连接就代表了windows上Xshell连接到了虚拟机的一个ssh协议的连接。

网络层主要解决的问题是:数据包应该发给谁,其核心机制->下一跳机制
网络层的四个维度:IP地址,掩码地址,网关地址,DNS地址

查看网络层配置
cat /etc/sysconfig/network-scripts/ifcfg-eth0

IPADDR=192.168.10.31               IP地址,点分字节
NETMASK=255.255.255.0              掩码地址
GATEWAY=192.168.10.2               网关地址
DNS1=114.114.114.114               解析域名和ip的映射
##IP、掩码按位与  网络号 :192.168.10.0 
route -n  ##路由表
##路由表信息来自于网络层配置文件
路由表信息
下一跳机制:只需要保存最近的路由信息,把数据包发送给离自己最近的路由器(不用存全网信息 只存周边一步得数据)
下一跳机制示意图
演示Ping www.baidu.com

Ping baidu的过程分析:

  1. ping www.baidu.com,根据DNS解析获取IP:220.181.38.150。
  2. 根据IP:220.181.38.150去路由表中匹配掩码,255.255.255.0可得网络号是:220.181.38.0,根据网络号可只,此IP不在自己的网络号中。
  3. 匹配下一条路由规则,Genmask:0.0.0.0,获得网络号0.0.0.0,该网络号与路由表中地址匹配,则发送给网关192.168.10.2。
  4. 至此这个数据包就可以发送给离我们最近的路由器,再由路由器根据像类似的规则发送给其他路由器,直到baidu。
  5. 如果我们的目标IP可以匹配网络号192.168.10.0,则表示目标地址在同一网段,则不需要通过路由转发,可直接通过局域网内交换机通信。

链路层:

当我们确定了需要把数据包发送给谁(某个路由器),则我们还需要知道通过谁(哪个网卡)发送出去,则需要Mac地址。

#网卡地址-MAC
arp -a
网卡地址-MAC

通过arp -a指令,我们可以看到我们网卡对应的物理地址,则通过这个物理地址把数据包发送出去。
需要了解的是,数据在不同路由转发的过程中,mac地址是不断变化的,一直指向下一个路由的mac地址,而目标点的ip:port是始终不变的,如图所示:


mac地址变化

结论:

TCP/IP协议:基于下一跳机制,ip是端点间,mac是节点间的
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341