
大家好呀
我是浪前
今天讲解的是网络篇的第二章:UDP协议的封装分用
我们的协议最开始是OSI七层网络协议
这个OSI 七层网络协议 是计算机的大佬写的,但是这个协议一共有七层,太多了太麻烦了,于是我们就把这个七层网络协议就简化为五层了
UDP协议的封装分用全过程
TCP/IP 五层网络协议
举一个例子:
我在淘宝店铺买了一个刷子:
商家发货就要去关注我的收件人地址和电话,发件人地址和电话(这个就是传输层要去关注包裹传输的起点和终点)
商家要把这个包裹交给快递公司:
这个TCP/IP协议一共有五层:
应用层:传输的数据在应用程序中如何使用
程序在拿到数据之后,要用数据去干什么,解决什么问题(程序员最关注的一层)**
负责我买到这个刷子是用来干什么的?
刷床?刷沙发?打小孩?
传输层:关注的是通信的起点和终点
负责关注网络数据包的起点和终点(从哪里来到哪里去),是端到端的传输
负责关注通信的起点和终点,关注网路数据包的起点和终点是端到端的传输
网络层:关注的是通信中的路径规划
负责关注起点到终点之间要走哪一条路(路径规划)
确定传输的路线: 上海 - 南京 - 无锡 - 西安
规划出哪一条路径最好?
考虑传输效率?传输成本?传输时间最短?传输过程最方便?
网络层关注的是通信过程中的路径规划,
数据链路层:负责两个相邻的节点之间的传输和通信细节,即数据传输情况 :
上海到南京 是用飞机空运来运输
南京到无锡市用铁路运输
无锡到西安使用大货车进行运输
物理层:网络通信过程中的硬件设备,基础设施
通信过程中的物理运输 公路-铁路-航线
为什么要写四层:
因为不算物理层就是四层,为什么?
因为物理层是纯硬件的
说是五层,但是下面这四层都是在操作系统内核,硬件,驱动程序中已经实现好了(计算机内置了)
我们作为程序员在网络编程过程中能够影响到的也就只有应用层了
应用层对应到应用程序,也就是程序员写的代码软件,需要手动实现
传输层和网络层都是操作系统内核,都是在操作系统的内核中实现的,这两层都是现成的,不需要手动实现
数据链路层和物理层是驱动程序+硬件来实现的
硬件厂商提供了硬件,都会配上一个驱动程序
有了这个驱动程序,系统才可以很好地操作这个硬件
网络设备所在分层
对于一台主机,
它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四 层;
对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层;路由器工作在网络层
对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;交换机工作在数据链路层
对于集线器,它只实现了物理层
上面是一个经典的笔试题。
上述的路由器和交换机指的是经典的路由器和交换机
封装和分用
封装和分用描述了网络通信过程中基本的数据传输流程
封装和分用是网络传输数据过程中,最核心的流程
封装的全过程:
例子如下所示:
A 通过QQ给B发送了一个hello:

这个操作会出现什么流程?
发送方:
1: 发送方A的应用层(应用程序) QQ:
QQ从消息输入框中获取到用户A输入的hello,hello是一个字符串
QQ就要把这个字符串构成一个应用层的数据包
QQ这样的程序内部


746

被折叠的 条评论
为什么被折叠?



