php特级课---5、网络数据转发原理

一、总结

一句话总结:

OSI七层模型 路由器 交换机 ARP 代理ARP

1、OSI7层模型?

电缆 MAC地址 ip 端口 应用

1层 通信电缆

2层 原MAC地址和要到达的MAC地址

3层 原ip和目的ip:同ip可能有多台电脑,对应多个MAC地址,所以需要找到真正需要的那个

4层 原端口号目的端口号

567层 人与应用软件完成(比如qq)

两台电脑通讯时,一台电脑通过7层模型组装数据,另一个通过7层模型解析数据

osi(Open System Interconnection Reference Model)

osi7层模型,分别是
第7层 应用层(Application Layer)
提供为应用软件而设的界面,以设置与另一应用软件之间的通信。例如:HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。
 
第6层 表示层(Presentation Layer)
把数据转换为能与接收者的系统格式兼容并适合传输的格式。
 
第5层 会话层(Session Layer)
负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接
 
第4层 传输层(Transport Layer)
把传输表头(TH)加至数据以形成数据报。传输表头包含了所使用的协议等发送信息。例如:传输控制协议义(TCP)等
 
第3层 网络层(Network Layer)
决定数据的路径选择和转寄,它网络表头(NH)加至数据报,以形成数据包。网络表头包含了网络数据。例如:互联网协议(IP)等,网关,多口网关(路由器)
 
第2层 数据链路层(Data link Layer)
负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成了帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线兼容认证券市场(Wi-Fi)和通用分组无线服务(GPRS)等。
 
第1层 物理层(Physical Layer)
在局部局域网络上传送帧,它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等。
 
TCP/IP协议分为4层,由上至下为应用层、传输层、网络层和网络接口层。
应用层:定义上层应用可以直接使用的高级协议,如http、ftp等。
传输层:定义控制数据传输的协议,用以保证数据的可靠性和顺序到达性等,如tcp、udp协议。
网络层:定义不同网络类型间通信的协议,如IP协议用于实现网际路由,ICMP协议用于检测网络的畅通性,ARP协议用于获取设备MAC地址等。
网络接口层:定义网络介质上的传输协议,和电气相关,如Ethernet协议、802.3协议等,主要由操作系统的网卡驱动程序实现。

2、交换机工作原理?

学习 查找 广播

如上图所示,假设电脑的MAC地址分别为11、22、33、44

当主机11给主机33发送一个数据帧,目的地址33,源地址11,各个设备间工作如图所示:

提示:当在交换机的MAC地址表能找到对应设备的 MAC地址与端口关系,则单播发送至对应设备;如果不能找到,则进行广播,查找目标地址与端口。

3、路由器工作原理?

网段 查询路由表 传递数据

1、路由器接收来自它连接的某个网站的数据。

2、路由器将数据向上传递,并且(必要时)重新组合IP数据报。

3、路由器检查IP头部中的目的地址,如果目的地址位于发出数据的那个网络,那么路由器就放下被认为已经达到目的地的数据,因为数据是在目的计算机所在网络上传输。

4、如果数据要送往另一个网络,那么路由器就查询路由表,以确定数据要转发到的目的地。

5、路由器确定哪个适配器负责接收数据后,就通过相应的软件传递数据,以便通过网络来传送数据。

工作原理示例:

(1)工作站A将工作站B的地址12.0.0.5连同数据信息以数据包的形式发送给路由器1。

(2)路由器1收到工作站A的数据包后,先从包头中取出地址12.0.0.5,并根据路径表计算出发往工作站B的最佳路径:R1->R2->R5->B;并将数据包发往路由器2。

(3)路由器2重复路由器1的工作,并将数据包转发给路由器5。

(4)路由器5同样取出目的地址,发现12.0.0.5就在该路由器所连接的网段上,于是将该数据包直接交给工作站B。

(5)工作站B收到工作站A的数据包,一次通信过程宣告结束。

4、ARP协议工作原理?

地址 ARP 广播 回复 存储

5、如何查询电脑的ARP缓存?

arp -a

6、路由器能传递广播么?

不能
一个网段 穿越 交换机

不能

广播只能在一个网段里面传播,所以广播可以穿越交换机,但是广播没方法穿越路由器

7、代理ARP工作原理?

arp广播 不能 路由器 网关 转发

因为arp广播不能穿越路由器,但是路由器比较好,所以用arp广播把源数据给网关的MAC地址,路由器帮忙转发

8、路由器和交换机的对比?

路由 网络层 外网 ip
交换机 数据链路层 内网 MAC地址

路由工作在网络层
Ø根据“路由表”转发数据
Ø路由表中含有网段和接口
交换工作在数据链路层
Ø根据“mac地址表”转发数据
Ømac地址表中含有mac地址和接口

二、内容在总结中

 

php特级课---5、网络数据转发原理的更多相关文章

  1. H3C 无线交换机的数据转发原理

  2. TCP的三次握手和四次挥手与路由器(三层)转发原理

    传输层是国际标准化组织提出的开放系统互连(OSI)参考模型中的第四层.该层协议为网络端点主机上的进程之间提供了可靠.有效的报文传送服务.其功能紧密地依赖于网络层的虚拟电路或数据报服务.传输层定义了主机 ...

  3. LINUX下的远端主机登入 校园网络注册 网络数据包转发和捕获

    第一部分:LINUX 下的远端主机登入和校园网注册 校园网内目的主机远程管理登入程序 本程序为校园网内远程登入,管理功能,该程序分服务器端和客户端两部分:服务器端为remote_server_udp. ...

  4. php特级课---2、网站大数据如何存储

    php特级课---2.网站大数据如何存储 一.总结 一句话总结: mysql主从,分库分表,mysql分区,mysql集群,Nosql 1.mysql主从服务器各自的功能是什么? 增删改,主服务器 查 ...

  5. 配置Linux数据转发(给其他接口转发一个接口的internet网络)

    配置Linux数据转发 [主机]第一步开启转发net.ipv4.ip_forward = 1echo "1" > /proc/sys/net/ipv4/ip_forward第 ...

  6. php特级课---1、网站大访问量如何解决

    php特级课---1.网站大访问量如何解决 一.总结 一句话总结: 负载均衡和冗余技术 1.负载均衡和冗余技术是一回事么? 并不是:负载均衡是用户分流:冗余技术是避免出现单点故障 负载均衡:将不同的用 ...

  7. Android利用Fiddler进行网络数据抓包,手机抓包工具汇总

    Fiddler抓包工具 Fiddler抓包工具很好用的,它可以干嘛用呢,举个简单例子,当你浏览网页时,网页中有段视频非常好,但网站又不提供下载,用迅雷下载你又找不到下载地址,这个时候,Fiddler抓 ...

  8. ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理

    分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...

  9. 中间人攻击(MITM)之数据截获原理

    中间人攻击(MITM)之数据截获原理 - The data interception principle of the man in the middle attack (MITM) 交换式局域网中截 ...

随机推荐

  1. 【巷子】---vue路由懒加载---【vue】

    一.懒加载 也叫延迟加载或者按需加载,即在需要的时候进行加载,   二.为什么要使用懒加载 像vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要 ...

  2. zabbix添加简单的监控

    本文讲述给zabbix添加zabbix自带模板和自定义添加模板:安装zabbix请参考本文 1.1. 给主机添加zabbix自带监控模板 第一步: 第二步: 如果添加模板,但是模板并没有监控项,下面的 ...

  3. Oracle数据类型number

    oracle数值类型只有number number(变长) 1.number可以存放整数,可以存放小数: 2.number(p,s) 说明: p表示有效位,s为小数位:范围p[1,38],s[-84, ...

  4. poj1952 BUY LOW, BUY LOWER【线性DP】【输出方案数】

    BUY LOW, BUY LOWER Time Limit: 1000MS   Memory Limit: 30000K Total Submissions:11148   Accepted: 392 ...

  5. IIS与ASP.NET中的线程池

    1. W3 Thread Pool(W3TP) 当处于内核模式的http.sys接收到来自用户的请求之后,会将请求放入队列中.那处于用户模式的w3wp进程如何从内核模式的队列中取出请求呢?I/O完成端 ...

  6. Android NDK 导出独立工具链

    传统方式调试 NDK 开发的程序比较麻烦,先要编译成 JNI,又要导出 java接口,还要再写一个 java 工程,改一个地方又要连续改几处,这样效率是很低的.最频繁使用的关键工作路径(编译/调试环节 ...

  7. Tfs 2015 代理池配置笔记

    Tfs的构建代理池其实是在代理服务器上开启一个TFSBuild的代理服务,配好相关的Tfs地址后,就能在Tfs管理界面看到了. 如果是Tfs服务和发布代理是同一台服务器,具体操作详见: 安装TFS20 ...

  8. make linux test main attempt to index a nil value

    Lua: getting started http://www.lua.org/start.html#learning Building from source Lua is very easy to ...

  9. No module named pip.req

    https://stackoverflow.com/questions/25192794/no-module-named-pip-req#

  10. Qt:QPushButton 单击、双击响应区分

    开发环境:win10+vs2015+qt5.9.1 背景:QPushButton的双击事件虽然一直有,但是在双击完成之前,总会响应到单击的事件处理或者连接槽,使用很不方便.自己子类化了一个QPushB ...