第一篇文章

本文介绍了GPRS核心网的基本功能及组成,详细解释了GPRS管道协议(GTP)的工作原理,包括GTP-U、GTP-C和GTP'的不同用途。同时阐述了GGSN和SGSN两种GSN节点在网络中的作用。
  GPRS核心网是GPRS(general packet radio service)系统的核心部分,GPRS的作用在于传输IP包,广泛应用于2G的GSM和3G的WCDMA网络。 

 

1、GPRS核心网基本功能 

GPRS核心网提供移动管理、会话管理和传输GSM和WCDMA网络中的IP包,其他功能还包括计费等。 



2、 GPRS管道协议 

GPRS管道协议(GPRS tunneling protocol)是定义IP的GPRS核心网协议,主要用于GSM和WCDMA网络,允许终端用户从一个地方移动到另一个地方时保持与Internet的连接。通过将SGSN(serving GPRS support node)中的用户数据传递到GGSN来处理用户会话,GPRS核心网使用三种形式的GTP协议: 
GTP-U  对每个PDP上下文(packet data protocol context),用单独的管道来传输用户数据 GTP-C 
  • 用于控制 
  • 建立和删除PDP上下文 
  • 认证GSN可达性 
  • 更新,例如用户从一个SGSN移动到另一个SGSN 


GTP’  传输计费数据 
GGSN和SGSN(合称GSN)使用UDP2123端口侦听GTP-C报文,UDP端口2152侦听GTP-U报文。 

  计费网关(charging gateway function, CGF)使用TCP或UDP端口3386侦听GSN发送的GTP’协议的报文。GPRS核心网发送计费信息给CGF,包括PDP上下文激活时间,终端用户已传输的数据量。 


3、 GSN 

GSN是一个网络节点,用于支持GSM网络使用GPRS。GSN具有Gn接口,并支持GTP协议。有两种类型的GSN,成为GGSN和SGSN。 
GGSN(gateway GPRS Support Node)是GPRS网络中的关键部分,用于GPRS网络和外部分组交换网络(Internet, X.25, wimax)之间的交互。 
从外部网络看,GGSN就是一个子网的路由器,因为GGSN对外部网络隐藏了GPRS的底层结构。当GGSN接收到一个指定用户的数据时,检查用户是否是活动的。如果是,GGSN将数据转发给SGSN来服务用户,如果用户是不活动的,则丢弃数据包。反过来,GGSN将用户的数据包向外传递出去。 
GGSN使得GPRS/UMTS网络中的终端具有了移动的能力,它在GPRS网络中的角色类似与移动IP网络的Home Agent。GGSN保持PDU(packet date units)数据到SGSN路由可达,来服务移动终端(MS, mobile station)。 
GGSN将来自SGSN的GPRS分组转换成外部网络对应的格式,然后发送给对应的分组数据网络。反过来,GGSN将外部网络的数据转换成GSM地址格式的报文,再发送给对应的SGSN。因此,GGSN存储了用户当前SGSN的地址及其位置寄存器的profile。GGSN负责当前连接的用户终端(user equipment, UE)的IP地址分配和默认路由,GGSN还具有认证和计费的功能。 
SGSN(serving GPRS support node)  SGSN用户收发用户的分组数据包,其功能包括分组路由和传输,移动管理,逻辑链路管理,认证和计费。SGSN的位置寄存器(location register, LR)存储了SGSN中注册的所有用户的位置信息(当前小区,VLR)和个人信息(IMSI, 地址)等。  主要功能有: 

  • 解析来自GGSN的GTP协议报文(下行) 
  • 封装发往GGSN的IP报文(上行) 
  • 移动管理 
  • 计费  

http://en.wikipedia.org/wiki/GPRS_Core_Network
### 使用 uiautomator2 打开小红书并点击第一篇文章 要通过 `uiautomator2` 实现打开小红书应用并点击其首页的第一篇文章功能,可以按照以下方式编写脚本。以下是详细的说明以及代码示例。 #### 1. 连接设备 首先需要连接 Android 设备至 Python 脚本环境。这可以通过 `uiautomator2.connect()` 方法完成[^2]。该方法会返回一个表示当前已连接设备的对象。 #### 2. 启动目标应用程序 使用 `app_start(package_name)` 函数启动指定的应用程序包名。对于小红书而言,通常的包名为 `com.xingin.xhs` 或其他可能的变体(具体取决于版本)。如果不确定包名,可以在手机设置中的“应用管理”部分查找。 #### 3. 查找并操作控件 利用 `uiautomator2` 提供的选择器机制定位页面上的第一个文章元素。一般情况下,列表项可通过类名或者资源 ID 来识别。例如,假设每篇帖子都有统一的资源 ID,则可以直接调用 `.child_by_instance(resourceId="post_item", instance=0).click()` 完成点击动作[^2]。 下面是完整的实现代码: ```python import uiautomator2 as u2 # 初始化设备连接 d = u2.connect() # 输出设备基本信息以确认连接成功 print(d.info) # 启动小红书应用 (替换为实际的小红书包名) package_name = "com.xingin.xhs" d.app_start(package_name) # 等待界面加载完毕后再执行下一步操作 d.wait_timeout = 10.0 # 设置最大等待时间为10秒 if d(text="推荐").exists: # 假设存在标签页名称叫"推荐" d(text="推荐").click() # 切换到推荐页面 # 寻找第一页的第一个可点击的文章卡片 first_article = None try: first_article = d(className="android.widget.FrameLayout")[0] except IndexError: print("未找到任何文章") if first_article is not None: first_article.click() else: print("无法找到符合条件的目标组件") ``` 此段脚本实现了从启动应用直到尝试访问首条动态链接的过程。需要注意的是,由于不同版本间 UI 结构可能存在差异,在正式部署前需针对特定机型做适当调整优化。 --- ####
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值