零基础网络编程基础(OSI七层模型与TCP/IP五层模型)

Author:老九
计算机专业
可控之事 沉重冷静 不可控之事 乐观面对
[email protected]
☺️

❓ ❤️ ☕️ ❗️
————————————————
版权声明:本文为CSDN博主「浦上青天」的原创文章

文章目录

  • 网络编程
    • 网络协议
  • 网络协议分层
  • IP地址
  • MAC地址
  • OSI七层模型
  • TCP/IP五层或者四层模型
  • 对比两个模型
  • 数据的封装和分用
  • 网络传输的基本流程
  • 网络编程 套接字(socket)

知识点

网络编程

网络协议

协议的意思就是字面意思,双方(通信双方)达成的一种共识、就是一种约定,通信双方都认可这样的约定之后,才能正确传输信息
就好比谍战片的时候的密码本,我们将信息按照密码本写好,再按协议翻译
计算机之间的传输媒介是光信号和电信号,通过”频率“和”强弱“来表示0和1这样的信息,要想传递各种不同的信息,就需要约定好双方的数据格式

网络协议分层

原因

  • 分层能够避免某个协议庞大复杂
  • 分层之后,协议之间”解耦合“,上层协议不需要理解下册协议的细节实现,相当于封装
  • 分层之后,任意层次的协议都可以灵活替换,方便协议的更新

IP地址

  • IP协议有两个版本,IPv4和IPv6
  • IP地址在IP协议中,用来标识网络中不同主机的地址
  • 对于IPv4来说,IP地址是4个字节,32位比特整数
  • 我们通常使用”点分十进制“的字符串标识IP 地址,用点分割的每个数字 表示一个字节,范围0-255
  • IP地址相对于MAC地址,它是不变的,仅仅就是出发地和目的地

MAC地址

  • MAC地址用来识别数据链路层中的相连的结点
  • 长度为48位,即6个字节,一般使用16进制数加上冒号的形式来表示
  • 在网卡出厂的时候就确定了,不能修改,mac地址通常是唯一的(在虚拟机中的mac地址不是真实的mac地址,可能会冲突,也有些网卡支持用户配置mac地址)
  • mac地址相对于IP地址是变化的

OSI七层模型

  • OSI(Open System Interconnection,开放系统互联),七层网络模型是一个逻辑上的定义,太复杂了,所以不能用于实际
  • 把网络从逻辑上分为了7层,每一层都有相对应的物理设备
  • OSI七层模型是一种框架性的设计方法,其最主要的功能就是帮助不同类型的主机实现数据传输
  • 最大的优点就是将服务,接口,协议这三个概念明确区分,通过七个层次化的结构模型使不同的网络之间实现可靠通讯

1.应用层位操作系统或者网络应用程序提供访问服务的接口
2.表示层提供数据格式和转换服务
3.会话层建立端的连接并提供访问验证和会话管理
4.传输层提供应用进程之间的逻辑通信
5.网络层为数据在结点之间传递创建逻辑联络,并分组转发数据
6.链路层在通信之间建立来南路通信
7.物理层为数据端设备提供原始的比特流传输的通络
零基础网络编程基础(OSI七层模型与TCP/IP五层模型)_第1张图片

TCP/IP五层或者四层模型

  • TCP/IP是一组协议的代名词,它还包括许多协议,组成TCP/IP五层协议
  • TCP/IP通讯协议采用了5层,每一层都呼叫它下一层所提供的网络来完成自己的需求

1.应用层:应用程序直接打交道的协议(实际开发中涉及最多的部分,甚至需要你自己设计应用层协议)
2.传输层:端到端之间的传输(他只关注起点和终点)
3.网络层:负责点到点之间的传输(需要规划传输的路径)
4.数据链路层:负责相邻点之间点具体的如何去传输
5.物理层:负责形成比特流在网络通信的基础硬件设施上通过基站和光纤等具体的硬件传输,和软件不相关

举个简单的例子
1.我们在网络上购物,我们浏览页面将物品加入到购物车,去付款填地址电话,这就是应用层
2.然后卖家根据你填的信息发快递,这就好比传输层
3.快递小哥具体规划路线,路径最快最便捷,网络层
4.例如货确定了,直接从上海到西安乘飞机还是高铁是数据链路层的功能
5.我的快递可能在高速公路运着,或者在飞机上运着,过程就好比物理层

对于一台主机,它的操作系统内核实现了从传输层到物理层的功能
对于一台路由器,他实现了网络层到物理层的功能
对于一台交换机,它实现了数据链路层到物理层的功能
对于集线器,只实现了物理层

对比两个模型

零基础网络编程基础(OSI七层模型与TCP/IP五层模型)_第2张图片

数据的封装和分用

1.封装:发快递需要打包
2.分用:拆快递

零基础网络编程基础(OSI七层模型与TCP/IP五层模型)_第3张图片

  • 不同的协议层对数据包有不同的称谓没传输层叫段(segment)网络层叫做数据报(datagram)链路层叫做帧(frame)
  • 应用层数据通过协议栈发送到网络层时,每层协议都要加上一个数据首部(header),称为封装
  • 首部信息中包含了上层协议是什么等信息
  • 数据封装成帧后发送到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的”上层协议字段“将数据交给对应的上层协议处理
    零基础网络编程基础(OSI七层模型与TCP/IP五层模型)_第4张图片

网络传输的基本流程

零基础网络编程基础(OSI七层模型与TCP/IP五层模型)_第5张图片

网络编程 套接字(socket)

socket是一组API,实现网络编程~
服务器(server)——客户端(client)
服务器就像餐馆,客户端就像来餐馆吃饭的人
点餐就像给服务器发送请求(Request),服务器返回数据就是响应(Response)
主动发起的一方,叫做客户端
被动接受请求的一方,叫做服务器
但是餐馆无法确定客人啥时候来吃饭,只能一大早就开门,很晚才关门,服务器也无法确定客户端啥时候来发起请求,所以只能7*24小时工作

先赞后看,养成习惯!!!^ _ ^♥♥♥
每天都更新知识点哦!!!
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘记关注我哦!

你可能感兴趣的:(网络,网络,tcp/ip,网络协议)