3.3 优缺点
- 优点:速度快
- 缺点:消息易丢失(特别是 网络较差时)
3.4 应用场景(对应应用层协议)
要求通信速度高
如:
域名转换:DNS
协议
文件传输:FTP
协议
网络管理:SNMP
协议
远程文件服务器:NFS
协议
3.5 报文段格式
- UDP的报文段共有2个字段:数据字段 & 首部字段
- 下面主要介绍首部(8字节、4个字段)
3.6 TCP、UDP协议的区别
4. HTTP协议
- 简介
- 关于其工作方式、报文段等知识,请看文章:这是一份全面& 详细 HTTP知识讲解
5. Socket
5.1 简介
- 即套接字,是应用层 与
TCP/IP
协议族通信的中间软件抽象层,表现为一个封装了 TCP / IP协议族 的编程接口(API)
Socket
不是一种协议,而是一个编程调用接口(API
),属于传输层(主要解决数据如何在网络中传输)- 即:通过
Socket
,我们才能在Andorid平台上通过TCP/IP
协议进行开发- 对用户来说,只需调用Socket去组织数据,以符合指定的协议,即可通信
- 成对出现,一对套接字:
Socket ={(IP地址1:PORT端口号),(IP地址2:PORT端口号)}
- 一个
Socket
实例 唯一代表一个主机上的一个应用程序的通信链路
5.2 其他知识
关于Socket
的原理、机制过程 & 使用方式,具体请看文章:Android:这是一份很详细的Socket使用攻略
6. 其他知识
6.1 在浏览器中输入url
地址 ->> 显示主页的过程
打开一个网页,整个过程会使用哪些协议
6.2 IP地址(IPv4地址)
-
定义
连接在Internet
中的每一台主机(或 路由器)的全球唯一的标识符 -
组成
IP地址 = 32位 = 网络号 + 主机号;即IP地址::={<网络号>,<主机号>}
其中:
- 网络号:标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。
- 主机号:标志该主机(或路由器)。一个主机号在它面前的网络号所指明的网络范围必须是唯一的。
不同类型的IP地址,其主机号 & 网络号所占字节数不同;故:一个IP地址在整个网络范围内是唯一的
- 分类
传统的IP地址是分类的地址,分为A,B,C,D,E五类
区别在于网络号 & 主机号占的字节数不同
- 特别注意:在各类IP地址中,有一些IP地址用于特殊用途,不能用于做主机IP地址
6.3 ICMP协议
- 定义
Internet Control Message Protocol
,即 网际控制报文协议
- 属于IP层协议
- 注:ICMP报文不是高层协议,而是作为IP层数据报的数据,加上数据报首部,组成IP数据报发出去
- 作用
更有效地转发IP数据包 & 提高交付成功的机会
同时允许主机 / 路由器报告差错 & 异常情况
-
分类
ICMP
差错报告报文 &ICMP
询问报文 -
主要应用
PING(分组网间探测)、Traceroute(跟踪1个分组从源点到终点的路径,原理 = 从源主机向目的主机发送一连串的IP数据报)
下面,将主要介绍Ping
的过程
6.4 Ping的过程
- 定义
Packet InterNet Groper
,即分组网间探测
- 是
ICMP
报文的1个重要应用:使用了IPCM回送请求 & 回送回答报文
- 是应用层直接使用网络层ICMP的1个例子,无经过传输层的TCP、UDP
-
作用
测试2个主机的连通性 -
原理
- 向目的主机发送多个ICMP回送请求报文
- 根据 目的主机返回的ICMP回送回答报文中的时间戳,从而计算出往返时间
- 最终显示的结果:发送到目的主机的IP地址、发送 & 收到 & 丢失的分组数、往返时间的最小、最大 & 平均值
- 过程
假设有两台主机:
(目的主机)PC1:IP = 192.168.1.1
(源主机)PC2:IP = 192.168.1.2
6.5 路由器与交换机的区别
6.6 Cookie 与 Session
- 简介
- 区别 & 对比
6.7 Cookie 与 Token
- 简介
- 基于
Cookie
的身份验证 & 验证流程
- 基于
Token
的身份验证 & 验证流程
7. 总结
- 本文全面讲解了 开发的基础知识:计算机网络
本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
最后
题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料。
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
【Android进阶学习视频】、【全套Android面试秘籍】
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
-NrzkIya7-1715355545462)]
【Android进阶学习视频】、【全套Android面试秘籍】
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!