理论
网关
网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
线上包、线下包、release包、debug包
- 线上包:最终给用户的
- 线下包:QA包
- release包:发行版给用户
- debug包:开发版
[七层协议]
物理层
作用:定义一些电器,机械,过程和规范,如集线器;
PDU(协议数据单元):bit/比特
设备:集线器HUB;
注意:没有寻址的概念;
==========================================
数据链路层
作用:定义如何格式化数据,支持错误检测;
典型协议:以太网,帧中继(古董级VPN)
PDU:frame(帧)设备:以太网交换机;
备注:交换机通过MAC地址转发数据,逻辑链路控制;
===========================================
网络层
作用:定义一个逻辑的寻址,选择最佳路径传输,路由数据包;
典型协议:IP,IPX,ICMP,ARP(IP->MAC),IARP;
PDU:packet/数据包;
设备:路由器
备注:实现寻址
============================================
传输层:
作用:提供可靠和尽力而为的传输;
典型协议:TCP,UDP,SPX,port(65535个端口),EIGRP,OSPF,
PDU:fragment 段;
无典型设备;
备注:负责网络传输和会话建立;
=============================================
会话层:
作用:控制会话,建立管理终止应用程序会话;
典型协议:NFS, SQL, ASP, PHP, JSP, RSVP(资源源预留协议), windows,
备注:负责会话建立;
==============================================
表示层:
作用:格式化数据;
典型协议:ASCII, JPEG. PNG, MP3. WAV, AVI,
备注:可以提供加密服务;
===============================================
应用层:
作用:控制应用程序;
典型协议:telnet, ssh, http, ftp, smtp, rip, BGP, (未完待续)
备注:为应用程序提供网络服务;
================================================
Q:什么时候有PDU?
A:当需要跟别人通信时候才有。
对于互联网来说也就是数据根据相应的规则在跑来跑去。(这些规则就是协议)。就像早上你开车到公司,路上遵守交通规则。然后安全抵达公司。就相当于完成了一次信息发送。废话多啦,开始正题!
楼上说的OSI模型是一种接近完美的理论,注意这种模型只出现在教课书里,这种模型是在TCP/IP协议已经成熟之后提出的,可以理解为升级版。但是并没有流行出来,主要有以下几个原因!
1、出现时间较晚。
2、参杂了太多政策的考量,并没有单单从技术角度出发。
3、…………还有几点给忘啦,反正就是没流行起来。
所以网络数据传输是TCP/IP的天下。
TCP/IP协议是一大堆协议的集合,TCP/IP协议分为四层(也就是数据传输一次主要经历以下4个步骤),分别是从上到下为:应用层,传输层,Internet,物理层。
假如你给你的基友发一个消息,数据开始传输,这时数据就要遵循TCP/IP协议啦,你的电脑会做出以下动作,这些动作你是看不到的。
1、应用层先把你的消息进行格式转换,你的消息是文字还是图片,还是成人视频并进行加密等操作交给传输层。(这时的数据单元(单位)是信息)
2、传输层将数据切割成一段一段的,便与传输并往里加上一些标记,比如当前应用的端口号等,交给Internet。(这时的数据单元(单位)是数据流)
3、Internet开始在将数据进行分组,分组头部包含目标地址的IP及一些相关信息交给物理层。(这时的数据单元(单位)是分组)
4、物理层将数据转换为比特流开始查找主机真实物理地址进行校验等操作,校验通过,开始嗖嗖嗖~的住目的地跑。(这时的数据单元(单位)是比特)
到达目的地后,对方设备会将上面的顺序反向的操作一遍,最后呈现出来。
实践
手机调试adb
adb devices
C:\Users\zhanglibin01\AndroidStudioProjects\MyApplication>adb devices
adb server is out of date. killing...
* daemon started successfully *
List of devices attached
721QACRP454SS device
adb shell ifconfig
C:\Users\zhanglibin01\AndroidStudioProjects\MyApplication>adb shell ifconfig
adb server is out of date. killing...
* daemon started successfully *
rmnet_ipa0 Link encap:UNSPEC
UP RUNNING MTU:2000 Metric:1
RX packets:463887 errors:0 dropped:0 overruns:0 frame:0
TX packets:685918 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1195143022 TX bytes:81626149
rmnet_data7 Link encap:UNSPEC
inet6 addr: fe80::97a9:1bd7:4e19:8933/64 Scope: Link
UP RUNNING MTU:1300 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:772 TX bytes:1047
dummy0 Link encap:UNSPEC
inet6 addr: fe80::7038:c0ff:fec3:8af3/64 Scope: Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 TX bytes:210
rmnet_data0 Link encap:UNSPEC
inet addr:10.23.58.127 Mask:255.255.255.0
inet6 addr: 240e:ff:b41c:f72f:2ee0:1a69:b144:6293/64 Scope: Global
inet6 addr: fe80::2ee0:1a69:b144:6293/64 Scope: Link
UP RUNNING PROMISC ALLMULTI MTU:1300 Metric:1
RX packets:1122270 errors:0 dropped:0 overruns:0 frame:0
TX packets:685904 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1181671398 TX bytes:81625102
lo Link encap:UNSPEC
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope: Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:139768 errors:0 dropped:0 overruns:0 frame:0
TX packets:139768 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2268954616 TX bytes:2268954616
adb connect
通过 IP 地址连接设备。
adb connect
必须保证都在同一wifi下
失败:
C:\Users\zhanglibin01\AndroidStudioProjects\MyApplication>adb connect 172.18.236.87
adb server is out of date. killing…
- daemon started successfully *
cannot connect to 172.18.236.87:5555: 鐢变簬杩炴帴鏂瑰湪涓€娈垫椂闂村悗娌℃湁姝g‘绛斿鎴栬繛鎺ョ殑涓绘満娌℃湁鍙嶅簲锛岃繛鎺ュ
皾璇曞け璐ャ€?(10060)
修改连接wifi成功:
C:\Users\zhanglibin01\AndroidStudioProjects\MyApplication>adb connect 172.18.236.87
adb server is out of date. killing…
- daemon started successfully *
connected to 172.18.236.87:5555