一、各层结构和功能,及都有哪些协议
OSI体系结构为7层,这里我们按TCP/IP体系结构讲五层来讲。
物理层 >>>数据链路层>>>网络层>>>运输层>>>应用层(表示层,会话层)
1.1、应用层
应用层任务:通过应用进程间的通信交互来完成特定的网络应用
应用层协议:应用进程间的通信交互规则
报文:应用层交互的数据单元
支持的协议有:
-
域名系统DNS(Domain Name System)
-
万维网HTTP协议 (HyperText Transfer Protocol)
-
电子邮件的SMTP协议
域名系统DNS:将域名和IP地址相互映射的分布式数据库,能够方便用户快捷访问。比如github,如果你再日本访问,是访问日本的服务器,在中国访问的是中国服务器。所以说他是一个分布式的。 域名协议的作用:将域名转换为IP地址,以找到对应的主机
HTTP协议:超文本传输协议,WWW(万维网)都遵守这个协议。最初的目的是为了发布和接收HTML页面。
应用层大白话 : 这里可以理解为计算机之间的翻译过程,将数据进行二进制编码
1.2、运输层
运输层任务:提供通用的数据传输服务供两台主机进程间的通信
运输层协议:运输层数据传输服务规则
传输层有复用和分用功能;
复用:一台主机可以开启多条线程,多个应用进程可同时使用传输服务
分用:传输层接收消息,根据消息的头部信息交给正确的Socket,也就是交给相应的应用进程
支持的协议有:
-
TCP (Transmission Control Protocol)>>> 传输控制协议;面向连接,提供可靠的数据传输服务
-
UDP (User Datagram Protocol)>>> 用户数据协议;面向无连接,不保证数据传输的可靠性 (TCP和UDP的将放在后面详细讲)
运输层大白话 : 传输层将上层数据分割成诸多数据段,方便解决出错,且为每段数据封装,头部带有端口号
1.3、网络层
网络层任务:选择合适的网间路由和交换节点,实现终端节点之间的通信。
网络层协议:网络层传输规则
支持的协议:
-
IP协议 >>> 把运输层产生的报文和用户数据封装成组合数据包进行传输
-
ARP协议 >>> 地址解析协议
-
RARP协议 >>> 逆地址解析协议
网络层大白话 : 网络层将上层数据再度封装为IP数据报,报头带有IP地址,用于标识网络逻辑地址
1.4、数据链路层
数据链路层:将数据封装成数据帧,然后在各个链路上传输
丢帧:数据链路层的控制信息在接收端能够检测数据帧中有误差错,如果有误那么丢弃这帧,以免继续传输浪费资源。如果需要更正数据,那么就要采用可靠传输协议纠错。(这就说明数据链路层不仅可以检错还能纠错)
数据链路层大白话 : 数据链路层将上传数据再度封装成数据帧,其MAC头部包含一个重要的MAC地址信息。可以理解为固化在硬件里的物理地址
1.5、物理层
物理层:实现相邻计算机节点之间比特流的透明传输
物理层大白话 : 将上层数据转成电信号在网络中传输
1.6、补充点
常见硬件设备与五层模型的对应关系
应用层:计算机(其实计算机是融合OSI七层于一身的)
传输层:防火墙
网络层:路由器(严格讲和我们家里所用的家用路由器不一致,一般在机房可以见到)
数据链路层:交换机(例如家里的光猫)
物理层:网卡
二、TCP三次握手和四次挥手
TCP三次握手简单示意图:
2.1、为什么要三次握手?
最后
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
最后文末放上一个福利:GitHub地址
PS:我GitHub中有大量高阶Android学习视频资料和面试资料包~
欢迎大家一起交流讨论啊~
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-E2zEJtt8-1710964553960)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-UH3AEbUl-1710964553960)]