Linux:网络基础

层状结构下的网络协议,我们认为同层协议都可以认为自己在和对方直接通信,忽略底层
计算机如何看待协议
代码逻辑上
一个协议有对应的功能
数据上:
收到数据后,每一层需要拿到数据后,要把上一层协议相关的数据进行去除

网络协议

网络解决的问题是牵扯到数据双方的,

  • 一定存在一个数据的发送方和一个数据接收方;
  • 网络解决的就是不同机器之间,不同进程的进程间通信问题

网络协议:两个机器通信,就要用到相同的数据格式

  • 网络协议就是解决网络双方,发送的网络数据格式问题;
  • 网络协议本质上对发送和接收数据的格式做出了约定;
  • 在整个网络协议栈中并不是只有一个,并且有协议分层

OSI七层模型

物理层路由器,交换机
数据链路层
网络层
传输层
会话层
表示层
应用层
  • 这是一个理论模型,并没有广泛应用,应用的是TCP/IP五层/四层模型
  • 按五层就算物理层,按四层就不算物理层
  • 会话,表示,应用
典型协议与设备作用
应用层HTTP,DNS程序员在该层写代码
传输层UDP,TCP端与端之间的传输
网络层IP,路由器地址管理和路由选择,给谁发消息,定位位置
数据链路层以太网协议;典型设备交换机,驱动程序提供相邻设备之间的传输
物理层集线路由器二进制数据和光电信号的相互转化

内核实现了传输层和网络层

  • 程序员写的代码就是应用层;
  • 剩下几层在内核当中网络协议栈就将代码写好了;
  • 程序员只需在应用层调用网络协议栈中的接口;
  • 程序员和网络协议栈中的传输层进行交互,调用的是传输层接口

网络协议栈=传输层+网络层+数据链路层+物理层

网络传输流程

数据的封装与分用
在这里插入图片描述
网络数据的传输流程:指的是数据的封装与分用

  • 我们产生的数据都是应用层数据;
  • 应用层数据在传输时,一定是经过自己 机器的网络协议栈层层封装后,才进入网络传输
  • 该数据到达对方机器后,也是经过对方网络机器的协议栈,经层层分用后到达应用层
  • 对端机器的应用层程序才能拿到数据

每一层协议都有自己的报头字段,发送时就会加上本层协议数据
发送时的过程就是在封装数据
收到数据是解包的过程

IP地址

  • IP是在网络中标识一台主机,在网络中传输的数据会包含两个要素
  • 源端IP和目的端IP,这两个信息标识了数据从哪来到哪去
  • 目的端IP的作用:网络中的路由器,会辨别这个目的主机IP属于哪个网络,然后规划路径,将数据发送到对应的网络中
  • 源端地址让对方知道数据来源于哪里
  • 通过端口告诉数据给哪个进程处理

机器获取的IP地址是动态的

  • 本质:ip地址是一个4字节,32位的无符号整数
    uint_t类型最大是42亿多
    现在数字不够了,所以使用ipv6,uint_8 - - -128位的数据
  • ipv4不兼容ipv6
  • 解决ip不够用
    使用DHCP技术:分配地址,谁上网给谁分配地址
    NAT技术:主要用于私网的组件,私网中的大量主机可以使用同一个公网地址进行上网

在这里插入图片描述

  • 表现:用“点分十进制”的字符串来表示ip地址,以点分隔数字,每个数字表示一个字节,范围是0~255

192.168.0.1的二进制为:
1100 0000 . 1010 1000 . 0000 0000 . 0000 0001

MAC地址

  • 作用:数据链路层相连的设备进行互相识别(如机器和路由器相互识别)
    数据从A机器发送给B机器,B机器IP地址是变化的,所以采用MAC地址
  • 本质:长度为48位,6个字节
  • 表现形式:用6给个16进制数字加上冒号的形式来表示;
    例如: 08:00:27:03:fb:19

MAC地址和网卡相关,由网卡厂商在生产网卡时就给该网卡绑定了一个唯一的MAC地址,一般不可修改

端口

  • 作用:在一台机器上,一个端口唯一标识一个进程,
    当网络数据到达网络协议栈后进行分用时,通过端口确定当前网络协议栈接收的网络数据是属于哪个进程的
  • 本质:是一个2字节的16位无符号整数,范围是0~65535
  • 注意:一个端口只能被一个进程所绑定,一个进程可以绑定多个端口

IP+端口就可以在网络当中唯一定位一台主机当中的进程;
IP是确定网络中的哪一台主机,端口确定主机上的哪个进程;
网络数据必须存在IP和端口

知名端口:0~1024,这个范围内的端口已经被一些知名的协议或者程序使用了

HTTP协议用的80号端口
HTTPS协议用的443号端口
ssh协议用的22号端口

局域网通信原理

以太网是局域网的通信标准

  • 每一台主机要有唯一的标识,也就是主机对应的mac地址
  • 碰撞域:任何一台主机在任何时候都可以发消息,
    这种局域网的信息会发生干扰,无法准确收到消息
  • 每一台主机要识别碰撞,遇见有消息传递就暂时不发送,等这个消息发送完毕后再发自己的

使用同一个以太网通信,等于多个进程访问同一临界资源

下一站去哪里,由最终目的地决定的

MAC是局域网中标识主机的
IP是广域网中标识主机的

数据包在添加报头时,要考虑未来解包的时候,将自己的有效载荷交付给上层的哪一个协议,这个靠一个字段决定的
报头的封装和解析也是通过字段决定

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值